Помогите группы игроков

во - 1:
я хз как так сделать :3
во - 2:
я подумал... killer это же группа в pex... а донатеры то как? они же будут терять привилегию при убийстве!
В пексе можно выдавать несколько групп. А вот мусора там накопится не хилое количество, что приведет к отставанию сервера.
 
ок люблю просерать время своей жизни )))) хотя возможно потом когда то однажды это поможет мне создать топ сервер... мечтать не вредно :D
 
С твоими то познаниями? Скорее топ шлак.
ой да ладно тебе... со временем научусь! командным блокам ведь как то научился? и ничего не учил: не английский не команды... просто качал команды потом стало интересно как работает потом начал потихоньку разбираться и заодно случайно учить английский (я его не учил но я его выучил!) и так допёрло до уровня профи в командах! и до уровня нуба в eclipse :D а вообще я обычно быстро учусь если интересно (хотя так все вроде... незнаю) короче потихонечку да стану норм eclipse-ром )))
С твоими то познаниями? Скорее топ шлак.
сам то скоко учил яву и эклипс?
 
ой да ладно тебе... со временем научусь! командным блокам ведь как то научился? и ничего не учил: не английский не команды... просто качал команды потом стало интересно как работает потом начал потихоньку разбираться и заодно случайно учить английский (я его не учил но я его выучил!) и так допёрло до уровня профи в командах! и до уровня нуба в eclipse :D а вообще я обычно быстро учусь если интересно (хотя так все вроде... незнаю) короче потихонечку да стану норм eclipse-ром )))

сам то скоко учил яву и эклипс?
Не замерял. Но моих нубских познаний хватало, чтоб здувать всяких авардкрафтов и хаоскрафтов. P.s да, я изучал жабу с реверс-инжиниринга.
 
открою секрет, я начал кодить плагины < месяца назад. до этого что такое эклипс не знал. и с явой не работал

Да кстати, вопрос. если убийца убил убийцу то что с убийцы снять статус киллера, или например срок урезать? если урезать строк то на сколько?
 
Не замерял. Но моих нубских познаний хватало, чтоб здувать всяких авардкрафтов и хаоскрафтов. P.s да, я изучал жабу с реверс-инжиниринга.
я хотел крафт добавить но там какая то ошибка + нигде не было гайда как сделать такой предмет... короче я хотел сделать cat gun как в гаджетах на minigames серверах и короче я хз как сделать чтобы эта пушка стреляла шарами с котами решил забить... я ещё вернусь к этой теме....
открою секрет, я начал кодить плагины < месяца назад. до этого что такое эклипс не знал. и с явой не работал

Да кстати, вопрос. если убийца убил убийцу то что с убийцы снять статус киллера, или например срок урезать? если урезать строк то на сколько?
ну... убийца это как никак приступник... пускай срок урежут на 20% там же можно с процентами работать?
я хотел крафт добавить но там какая то ошибка + нигде не было гайда как сделать такой предмет... короче я хотел сделать cat gun как в гаджетах на minigames серверах и короче я хз как сделать чтобы эта пушка стреляла шарами с котами решил забить... я ещё вернусь к этой теме....

ну... убийца это как никак приступник... пускай срок урежут на 20% там же можно с процентами работать?
а, и денег не дадут ещё типо премия... убийце...
 
я хотел крафт добавить но там какая то ошибка + нигде не было гайда как сделать такой предмет... короче я хотел сделать cat gun как в гаджетах на minigames серверах и короче я хз как сделать чтобы эта пушка стреляла шарами с котами решил забить... я ещё вернусь к этой теме....

ну... убийца это как никак приступник... пускай срок урежут на 20% там же можно с процентами работать?

а, и денег не дадут ещё типо премия... убийце...
там можно все. если знать как.
 
там можно все. если знать как.
мда... прям всё... даже сделать так чтобы у себя прописал команду и майнплекс крашнулся :D ладно шучу но стопудово есть там что-то, чего нельзя сделать.
 
мда... прям всё... даже сделать так чтобы у себя прописал команду и майнплекс крашнулся :D ладно шучу но стопудово есть там что-то, чего нельзя сделать.
ты понял о чем я...
 
и ивент финалить тоже нету смысла
Его крч гавном обливают, а он на позитиве и думает, что он станет мега кодером и создаст качественный сервер...
P.S.
setGroup(String s) - выдать(выставить) группу s
addGroup(String s) - добавить группу s
 
и ивент финалить тоже нету смысла
Его крч гавном обливают, а он на позитиве и думает, что он станет мега кодером и создаст качественный сервер...
P.S.
setGroup(String s) - выдать(выставить) группу s
addGroup(String s) - добавить группу s
это вместо pex ставить? типо не группа killer а просто s ???
 
это вместо pex ставить? типо не группа killer а просто s ???
s это стринг в методе
это вместо pex ставить? типо не группа killer а просто s ???
я специально сложно для тебя объясняю, что бы ты уже понял и начал учить джаву(выучи хоть немного, хоть про переменные посмотри, поможет оч сильно!)
 
s это стринг в методе

я специально сложно для тебя объясняю, что бы ты уже понял и начал учить джаву(выучи хоть немного, хоть про переменные посмотри, поможет оч сильно!)
ок про переменные... посмотрю но хз пойму ли?
 
ну нет... я бы хотел заморочиться и сделать шоб за каждое убийство + 10 мин. к сроку.
я подумал... killer это же группа в pex... а донатеры то как? они же будут терять привилегию при убийстве!

Вроде как сделал, но не тестировал. протестируешь сам.

Инструкция по установке ибо ты тупенький.
Добавляем как стороннюю библиотеку essentials (ибо я делал для него)

создаем поле. public Essentials ess; (это писать на следующей строчке после public Economy econ=null;)
Создаем метод setupEssentials()
Java:
private boolean setupEssentials() {
    if (getServer().getPluginManager().getPlugin("Essentials") == null) {
        return false;
    }
    return true;
}
В методе onEnable() добавляем
Java:
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. Многое может быть красным и еклипс будет кричать"это ошибка, ох, ах, как жить". Прежде чем реветь попробуй симпортировать. если несколько импортов предложит, то пришли скрин и спроси что импортировать. если нет импортов - то скрины в помощь опять же. Удачи
я не проверял на работоспособность, если кто то заметит лажу в коде\консоли - то тапочки пишем вниз ↓
 
Вроде как сделал, но не тестировал. протестируешь сам.

Инструкция по установке ибо ты тупенький.
Добавляем как стороннюю библиотеку essentials (ибо я делал для него)

создаем поле. public Essentials ess; (это писать на следующей строчке после public Economy econ=null;)
Создаем метод setupEssentials()
Java:
private boolean setupEssentials() {
    if (getServer().getPluginManager().getPlugin("Essentials") == null) {
        return false;
    }
    return true;
}
В методе onEnable() добавляем
Java:
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 есть везде
 
754 просмотра за 1 день, рекорд раздела...
 
Назад
Верх