1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем asdqwertypro, 3 янв 2017.

  1. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    ответишь ты или нет?
    Где ты откопал в моих кодах сей метод?
    А я понял, ты решил развести сральник в этой теме, вместо своей
     
  2. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    ахха, красава. че не 1.4.7?
     
  3. TheZefirrkka

    TheZefirrkka Активный участник Пользователь

    Баллы:
    76
    Даю вам совет, удаляйте ядро 1.8, ставьте 1.8.8 =)
     
  4. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Так то один из наименее затратных по ресусрсам костылей будет спавн какойнить энтити на координатах рг, и от нее плясать сим методом.
    (ну хз, вдруг захочешь плагин на 1.5.2 сваять :D c: )
     
  5. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Так и через форку можно было сделать, а потом через wg апи проверить на каких регионах моб.
     
  6. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    что за форка (я так то еще ньюби, не шарю в сленге)
     
  7. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Уже давно подключен 1.11.2. Вечно вы динозаврите.
    for он же foreach, хотя в жабе низя foreach писать.
     
  8. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    А, спасибо. (я просто так и не выучил php, он в долгом ящике. вообще не разу не встречал языков с таким вариантом.)

    И кстати твой метод будет перебирать всех энтитей в мире(если я правильно понял то, что ты хотел сказать). Это же затратно по ресам. Не проще ли расчитать мидл рг, спавнить там ентити, получать коллекцию через энтити гет, удалять заспавненую ентити => работаем с коллекцией. пруфит
     
  9. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Сорян что расстраиваю твою сказку.

    Код:
        public List getNearbyEntities(double x, double y, double z)
        {
            List notchEntityList = entity.world.getEntities(entity, entity.getBoundingBox().grow(x, y, z), null);
            List bukkitEntityList = new ArrayList(notchEntityList.size());
            net.minecraft.server.v1_11_R1.Entity e;
            for(Iterator iterator = notchEntityList.iterator(); iterator.hasNext(); bukkitEntityList.add(e.getBukkitEntity()))
                e = (net.minecraft.server.v1_11_R1.Entity)iterator.next();
    
            return bukkitEntityList;
        }
    Та самая форка :D.
     
  10. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    мы же про древние ядра, а-ля 1.5.2 ( ну я про них по крайней мере)
     
  11. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Та там аж 2 форки в таком методе. getBoundingBox еще по всем ентити проходится. Так что быстрее гет мир гет ентити точно не будет.
     
  12. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    окей. (люблю понимать что есть еще много того, о чем я даже не догадываюсь)
     
  13. TheZefirrkka

    TheZefirrkka Активный участник Пользователь

    Баллы:
    76
    1.100 просмотров, что вы есть такое?
     
  14. Sonicxd2

    Sonicxd2 Активный участник Пользователь

    Баллы:
    76
    Стоит сменить название темы на: "Флудилка по баккиту и не только"
     
  15. Автор темы
    asdqwertypro

    asdqwertypro Активный участник Пользователь

    Баллы:
    76
    я проверил у себя... короче скоко бы кто кого не убивал всё одно и то же... я там посмотрю чо за код мож чо пойму поменяю...
     
  16. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    хммм, ну ок ща буду тестить
    а ты тюрьму создал, умник?
    а листенер зарегистрировал?
     
  17. Автор темы
    asdqwertypro

    asdqwertypro Активный участник Пользователь

    Баллы:
    76
    ещё вчера создал так прост нефиг делать было её там указывать нужно?
    ну незнаю. короче еклипс не орёт не на что, кога убивает поx кто и поx кого то высвечивает одно и то же сообщение что ты кровожадное животное и никому не денег ни срока
    а, и ещё пишет 2 раза
    upload_2017-1-5_8-16-54.png
     
  18. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    у меня один раз пишет
     
  19. Автор темы
    asdqwertypro

    asdqwertypro Активный участник Пользователь

    Баллы:
    76
    может го в скайп? мы тут писать по 100 раз ещё будим! го там чтобы сразу ответ за ответом а не 20 секунд + 5 минут ждать пока читатель проверит
    а пишет разное ну тип если убийцу убили то чо происходит? у меня плевать кого убили всегда одно и то же: пишет 2 раза и ничего более.
    мне кажется или там тупо не добавляется группа убийцы? т. е. там игрок убивает кого-то и тупо никем не становится
     
  20. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Кароч я разобрался.

    У меня было много лажи, вот исправленно
    Код:
    private boolean setupEssentials() {
            if (getServer().getPluginManager().getPlugin("Essentials") == null) {
                return false;
                }
          
            ess = (Essentials) getServer().getPluginManager().getPlugin("Essentials");
            return true;
        }
    public YamlConfiguration getUserConfig(Player user){
            File uf = new File(getDataFolder(), "userdata"+File.separator+user.getName()+".yml");
            File folder =new File(getDataFolder(), "userdata");
            if (!folder.exists()) folder.mkdirs();
            YamlConfiguration uconfig;
            if (!uf.exists()) {
                getLogger().log(Level.SEVERE, "User file is not exists. Creating one new");
                try {
                    uf.createNewFile();
                    uconfig = YamlConfiguration.loadConfiguration(uf);
                    uconfig.set("killer", false);
                    uconfig.set("time", 0);
                    saveUserFile(uconfig, uf);
                } catch (IOException e) {
                    getLogger().log(Level.SEVERE, "Error while creating new user file");
                    e.printStackTrace();
                }
            }
            uconfig = YamlConfiguration.loadConfiguration(uf);
            return uconfig;
        }
        public void saveUserFile(YamlConfiguration uconfig, File uf){
            File folder =new File(getDataFolder(), "userdata");
            if (!folder.exists()) folder.mkdirs();
            try {
                uconfig.save(uf);
            } catch (IOException e) {
                getLogger().log(Level.SEVERE, "Error while saving user file \"" +uf.getName()+"\"");
                e.printStackTrace();
            }
        }
    Код:
    @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.saveUserFile(killedconf, new File(plugin.getDataFolder(), "userdata"+File.separator+killed.getName()+".yml"));
                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.saveUserFile(killerconf, new File(plugin.getDataFolder(), "userdata"+File.separator+killer.getName()+".yml"));
            }  
        }  
    
        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.8);
                killer.sendMessage("Т.к. вы тоже убийца то ваш срок был уменьшен на 20%");
                plugin.saveUserFile(killerconf, new File(plugin.getDataFolder(), "userdata"+File.separator+killer.getName()+".yml"));
            }
        }
    
    
        private void jailKilled(Player killed, int time) {
            Collection<String> jails = new ArrayList<>();
            try {
                jails = plugin.ess.getJails().getList();
            } catch (Exception e) {
                e.printStackTrace();
            }
            if (jails==null) return;
            for (String s:jails){
                try {
                    Bukkit.dispatchCommand(Bukkit.getServer().getConsoleSender(), "jail "+killed.getName()+" "+s+" "+Integer.toString(time)+"m");
                    killed.sendMessage("Вас поймали и посадили в тюрьму на срок "+ Integer.toString(time)+" минут");
                    killed.sendMessage("Когда вас выпустят, с вас будут сняты все обвинения. Удачного времяпрепровождения ;)");
                    break;
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
     
    Последнее редактирование: 5 янв 2017

Поделиться этой страницей