Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
ой да ладно тебе... со временем научусь! командным блокам ведь как то научился? и ничего не учил: не английский не команды... просто качал команды потом стало интересно как работает потом начал потихоньку разбираться и заодно случайно учить английский (я его не учил но я его выучил!) и так допёрло до уровня профи в командах! и до уровня нуба в eclipse а вообще я обычно быстро учусь если интересно (хотя так все вроде... незнаю) короче потихонечку да стану норм eclipse-ром )))
ой да ладно тебе... со временем научусь! командным блокам ведь как то научился? и ничего не учил: не английский не команды... просто качал команды потом стало интересно как работает потом начал потихоньку разбираться и заодно случайно учить английский (я его не учил но я его выучил!) и так допёрло до уровня профи в командах! и до уровня нуба в eclipse а вообще я обычно быстро учусь если интересно (хотя так все вроде... незнаю) короче потихонечку да стану норм eclipse-ром )))
я хотел крафт добавить но там какая то ошибка + нигде не было гайда как сделать такой предмет... короче я хотел сделать cat gun как в гаджетах на minigames серверах и короче я хз как сделать чтобы эта пушка стреляла шарами с котами решил забить... я ещё вернусь к этой теме....
я хотел крафт добавить но там какая то ошибка + нигде не было гайда как сделать такой предмет... короче я хотел сделать cat gun как в гаджетах на minigames серверах и короче я хз как сделать чтобы эта пушка стреляла шарами с котами решил забить... я ещё вернусь к этой теме....
ну... убийца это как никак приступник... пускай срок урежут на 20% там же можно с процентами работать?
я хотел крафт добавить но там какая то ошибка + нигде не было гайда как сделать такой предмет... короче я хотел сделать cat gun как в гаджетах на minigames серверах и короче я хз как сделать чтобы эта пушка стреляла шарами с котами решил забить... я ещё вернусь к этой теме....
ну... убийца это как никак приступник... пускай срок урежут на 20% там же можно с процентами работать?
и ивент финалить тоже нету смысла Его крч гавном обливают, а он на позитиве и думает, что он станет мега кодером и создаст качественный сервер...
P.S.
setGroup(String s) - выдать(выставить) группу s
addGroup(String s) - добавить группу s
и ивент финалить тоже нету смысла Его крч гавном обливают, а он на позитиве и думает, что он станет мега кодером и создаст качественный сервер...
P.S.
setGroup(String s) - выдать(выставить) группу s
addGroup(String s) - добавить группу s
if (!setupEssentials()) {
Bukkit.getConsoleSender().sendMessage(String.format("[%s] - Disabled due to no Essentias found!", getDescription().getName()));
getServer().getPluginManager().disablePlugin(this);
return;
}
Так же создаем два метода работы с конфигами. Это пригодится позже.
Вот эти методы:
Java:
public YamlConfiguration getUserConfig(Player user){
File uf = new File(getDataFolder(), "userdata"+File.separator+user.getName());
if (!uf.exists()) {
getLogger().log(Level.SEVERE, "User file is not exists. Creating one new");
try {
uf.createNewFile();
} catch (IOException e) {
getLogger().log(Level.SEVERE, "Error while creating new user file");
e.printStackTrace();
}
}
YamlConfiguration uconfig = YamlConfiguration.loadConfiguration(uf);
uconfig.set("killer", "false");
uconfig.set("time", 0);
saveUserFile(uconfig, uf);
return uconfig;
}
public void saveUserFile(YamlConfiguration uconfig, File uf){
try {
uconfig.save(uf);
} catch (IOException e) {
getLogger().log(Level.SEVERE, "Error while saving user file \"" +uf.getName()+"\"");
e.printStackTrace();
}
}
С главным классом закончили.
Старый ивент можно убрать. т.к. теперь есть свой конфиг, то и статус убийцы отныне хранится там. Это несомненно будет лучше, ибо засирать пекс лишним ну не стоит.
Теперь ставим туда новый ивент.
Java:
@EventHandler
public void onDeath(final PlayerDeathEvent e) {
Player killed = e.getEntity();
Player killer = killed.getKiller();
if (killer==null) return;
YamlConfiguration killerconf = plugin.getUserConfig(killer);
YamlConfiguration killedconf = plugin.getUserConfig(killed);
if (killedconf.getBoolean("killer")){
jailKilled(killed, killedconf.getInt("time"));
killedconf.set("killer", "false");
killedconf.set("time", 0);
plugin.save(killedconf, new File(plugin.getDataFolder(), "userdata"+File.separator+killed.getName()));
plugin.econ.depositPlayer(killer, 100);
killer.sendMessage("Вы убили киллера поэтому его отправили в тюрьму");
updateKiller(killer);
}else{
if (!killerconf.getBoolean("killer")) killer.sendMessage("Вы стали убийцей! Кровожадное животное!");
else killer.sendMessage("Сколько можно лить крови? Бессердечная скотина! Тебе это припомнят, учти!");
killerconf.set("killer", "true");
killerconf.set("time", killerconf.getInt("time")+10);
plugin.save(killerconf, new File(plugin.getDataFolder(), "userdata"+File.separator+killer.getName()));
}
}
И так же добавляем два новых метода:
Java:
private void updateKiller(Player killer) {
plugin.econ.depositPlayer(killer, 100);
killer.sendMessage("Вы убили киллера и получили 100$");
YamlConfiguration killerconf = plugin.getUserConfig(killer);
if (killerconf.getBoolean("killer")){
killerconf.set("time", (int)killerconf.getInt("time")*0.2);
killer.sendMessage("Т.к. вы тоже убийца то ваш срок был уменьшен на 20%");
plugin.save(killerconf, new File(plugin.getDataFolder(), "userdata"+File.separator+killer.getName()));
}
}
private void jailKilled(Player killed, int time) {
Collection<String> jails = null;
try {
jails = plugin.ess.getJails().getList();
} catch (Exception e) {
e.printStackTrace();
}
if (jails==null) return;
for (String s:jails){
try {
plugin.ess.getUser(killed).setJail(s);
plugin.ess.getUser(killed).setJailTimeout(time*60*20);
killed.sendMessage("Вас поймали и посадили в тюрьму на срок "+ Integer.toString(time));
killed.sendMessage("Когда вас выпустят, с вас будут сняты все обвинения. Удачного времяпрепровождения ;)");
} catch (Exception e) {
e.printStackTrace();
}
}
}
P.S. Многое может быть красным и еклипс будет кричать"это ошибка, ох, ах, как жить". Прежде чем реветь попробуй симпортировать. если несколько импортов предложит, то пришли скрин и спроси что импортировать. если нет импортов - то скрины в помощь опять же. Удачи я не проверял на работоспособность, если кто то заметит лажу в коде\консоли - то тапочки пишем вниз ↓
if (!setupEssentials()) {
Bukkit.getConsoleSender().sendMessage(String.format("[%s] - Disabled due to no Essentias found!", getDescription().getName()));
getServer().getPluginManager().disablePlugin(this);
return;
}
Так же создаем два метода работы с конфигами. Это пригодится позже.
Вот эти методы:
Java:
public YamlConfiguration getUserConfig(Player user){
File uf = new File(getDataFolder(), "userdata"+File.separator+user.getName());
if (!uf.exists()) {
getLogger().log(Level.SEVERE, "User file is not exists. Creating one new");
try {
uf.createNewFile();
} catch (IOException e) {
getLogger().log(Level.SEVERE, "Error while creating new user file");
e.printStackTrace();
}
}
YamlConfiguration uconfig = YamlConfiguration.loadConfiguration(uf);
uconfig.set("killer", "false");
uconfig.set("time", 0);
saveUserFile(uconfig, uf);
return uconfig;
}
public void saveUserFile(YamlConfiguration uconfig, File uf){
try {
uconfig.save(uf);
} catch (IOException e) {
getLogger().log(Level.SEVERE, "Error while saving user file \"" +uf.getName()+"\"");
e.printStackTrace();
}
}
С главным классом закончили.
Старый ивент можно убрать. т.к. теперь есть свой конфиг, то и статус убийцы отныне хранится там. Это несомненно будет лучше, ибо засирать пекс лишним ну не стоит.
Теперь ставим туда новый ивент.
Java:
@EventHandler
public void onDeath(final PlayerDeathEvent e) {
Player killed = e.getEntity();
Player killer = killed.getKiller();
if (killer==null) return;
YamlConfiguration killerconf = plugin.getUserConfig(killer);
YamlConfiguration killedconf = plugin.getUserConfig(killed);
if (killedconf.getBoolean("killer")){
jailKilled(killed, killedconf.getInt("time"));
killedconf.set("killer", "false");
killedconf.set("time", 0);
plugin.save(killedconf, new File(plugin.getDataFolder(), "userdata"+File.separator+killed.getName()));
plugin.econ.depositPlayer(killer, 100);
killer.sendMessage("Вы убили киллера поэтому его отправили в тюрьму");
updateKiller(killer);
}else{
if (!killerconf.getBoolean("killer")) killer.sendMessage("Вы стали убийцей! Кровожадное животное!");
else killer.sendMessage("Сколько можно лить крови? Бессердечная скотина! Тебе это припомнят, учти!");
killerconf.set("killer", "true");
killerconf.set("time", killerconf.getInt("time")+10);
plugin.save(killerconf, new File(plugin.getDataFolder(), "userdata"+File.separator+killer.getName()));
}
}
И так же добавляем два новых метода:
Java:
private void updateKiller(Player killer) {
plugin.econ.depositPlayer(killer, 100);
killer.sendMessage("Вы убили киллера и получили 100$");
YamlConfiguration killerconf = plugin.getUserConfig(killer);
if (killerconf.getBoolean("killer")){
killerconf.set("time", (int)killerconf.getInt("time")*0.2);
killer.sendMessage("Т.к. вы тоже убийца то ваш срок был уменьшен на 20%");
plugin.save(killerconf, new File(plugin.getDataFolder(), "userdata"+File.separator+killer.getName()));
}
}
private void jailKilled(Player killed, int time) {
Collection<String> jails = null;
try {
jails = plugin.ess.getJails().getList();
} catch (Exception e) {
e.printStackTrace();
}
if (jails==null) return;
for (String s:jails){
try {
plugin.ess.getUser(killed).setJail(s);
plugin.ess.getUser(killed).setJailTimeout(time*60*20);
killed.sendMessage("Вас поймали и посадили в тюрьму на срок "+ Integer.toString(time));
killed.sendMessage("Когда вас выпустят, с вас будут сняты все обвинения. Удачного времяпрепровождения ;)");
} catch (Exception e) {
e.printStackTrace();
}
}
}
P.S. Многое может быть красным и еклипс будет кричать"это ошибка, ох, ах, как жить". Прежде чем реветь попробуй симпортировать. если несколько импортов предложит, то пришли скрин и спроси что импортировать. если нет импортов - то скрины в помощь опять же. Удачи
Я тебе больше открою - сие есть азы программирования. переменные есть в каждом языке. а вот их типы от языка к языку рознятся. но такие стандартные как int, String, Char, Double, boolean есть везде
На данном сайте используются cookie-файлы, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших cookie-файлов.