Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

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

  1. Автор темы
    asdqwertypro

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

    Баллы:
    76
    куда это нужно вписывать? в главный файл? или создавать новый?
     
  2. Хостинг MineCraft
    <
  3. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    В главном классе, где у тебя extends JavaPlugin и public void onEnable(){...}[DOUBLEPOST=1483532171,1483532012][/DOUBLEPOST]И вот ниже простой пример использования. В моем коде я заюзал интеракт ивент в качестве примера.
    Main plugin; это ссылка на главный класс, где у тебя onEnable(){...}

    Код:
    package Example;
    
    import java.io.IOException;
    
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerInteractEvent;
    public class EventListener implements Listener {
    
        Main plugin;
        public EventListener(Main instance) {
            this.plugin = instance;
        }
    
        @EventHandler
        public void on(PlayerInteractEvent e) throws IOException {
            Player p = e.getPlayer();
            if(this.plugin.economy.getBalance(p)>=100) {
                this.plugin.economy.withdrawPlayer(p, 100);
                for(String group : this.plugin.permission.getPlayerGroups(p)) {
                    this.plugin.permission.playerRemoveGroup(p, group);
                }
                this.plugin.permission.playerAddGroup(p, "newgroup");
            }
        }
    }
     
    Последнее редактирование: 4 янв 2017
  4. jusik

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

    Баллы:
    66
    Skype:
    louky94096
    Имя в Minecraft:
    Jusik
    [​IMG]
     
  5. Автор темы
    asdqwertypro

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

    Баллы:
    76
    getServer().getPluginManager().registerEvents(new EventListener(this), this); EventListener ошибку выдаёт. либо как фиксить либо... это типо ссылка на класс где будет считать всё там... так?
     
  6. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    И да, не забудь подключить Vault в библиотеках.[DOUBLEPOST=1483532659,1483532591][/DOUBLEPOST]
    У меня этот класс с ивентами, сам класс скинул выше.
     
  7. Автор темы
    asdqwertypro

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

    Баллы:
    76
    а ну ок
     
  8. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
  9. Автор темы
    asdqwertypro

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

    Баллы:
    76
    Код:
    package test.main;
    
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.PlayerDeathEvent;
    
    import ru.tehkode.permissions.bukkit.PermissionsEx;
    
    public class EventListener implements Listener {
        @EventHandler
        public void onDeath(final PlayerDeathEvent e) {
            final Player killed = e.getEntity();
            if (killed.getKiller() instanceof Player) {
                final Player killer = killed.getKiller();
                if(!PermissionsEx.getUser(killer).inGroup("killer")){
                    PermissionsEx.getUser(killer).addGroup("killer");
                    test.econ.withdrawPlayer(killer, 100000);
                    killer.sendMessage("Вы убили игрока и получили группу убйица, с вашего счёта списано 10000");
                }
                if (PermissionsEx.getUser(killed).inGroup("killer")) {
                    PermissionsEx.getUser(killer).addGroup("killer");
                    PermissionsEx.getUser(killed).removeGroup("killer");
                    test.econ.depositPlayer(killer, 10000);
                    killer.sendMessage("Вы убили киллера и получили 10000$ вместе с рангом убийца");
                }
            }
        }
    }
    //там где econ ошибку выдаёт как фиксить?
     
  10. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Ты забыл конструктор.

    test plugin;
    public EventListener(test instance) {
    this.plugin = instance;
    }
    this.plugin.econ.depositPlayer(killer, 10000);
    И ты забил ифку гет баланс больще равно, у игрока может не хватать денег.[DOUBLEPOST=1483533824,1483533581][/DOUBLEPOST]И финалить игрока тут не имеет смысла.
     
  11. Автор темы
    asdqwertypro

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

    Баллы:
    76
    это не я писал ну ок... куда этот
    test plugin;
    public EventListener(test instance) {
    this.plugin = instance;
    }
    this.plugin.econ.depositPlayer(killer, 10000);
    вписывать?
     
  12. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Я же скидывал выше оба класса. Смотри по ним.
     
  13. Автор темы
    asdqwertypro

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

    Баллы:
    76
    Код:
     
    package test.main;
    
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.PlayerDeathEvent;
    
    import ru.tehkode.permissions.bukkit.PermissionsEx;
    
    public class EventListener implements Listener {
        test plugin;
        public EventListener(test instance) {
        this.plugin = instance;
        }
        @EventHandler
        public void onDeath(final PlayerDeathEvent e) {
            Player killed = e.getEntity();
            if (killed.getKiller() instanceof Player) {
                Player killer = killed.getKiller();
                if(!PermissionsEx.getUser(killer).inGroup("killer")){
                    PermissionsEx.getUser(killer).addGroup("killer");
                    test.econ.withdrawPlayer(killer, 100000);
                    killer.sendMessage("Вы убили игрока и получили группу убйица, с вашего счёта списано 10000");
                }
                if (PermissionsEx.getUser(killed).inGroup("killer")) {
                    PermissionsEx.getUser(killer).addGroup("killer");
                    PermissionsEx.getUser(killed).removeGroup("killer");
                    test.econ.depositPlayer(killer, 10000);
                    killer.sendMessage("Вы убили киллера и получили 10000$ вместе с рангом убийца");
                }
            }
        }
    } //теперь то я всё правильно сделал? у меня всё ещё там ошибка в econ
    [DOUBLEPOST=1483537309,1483536428][/DOUBLEPOST]
    ты тут?
     
  14. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Смотри внимательно мои классы.
     
  15. Автор темы
    asdqwertypro

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

    Баллы:
    76
    ааай блин! у меня бошка уже болит! что? так сложно сказать?[DOUBLEPOST=1483540153,1483540094][/DOUBLEPOST]
    Код:
    package test.main;
    
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import org.bukkit.plugin.RegisteredServiceProvider;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import net.milkbowl.vault.economy.Economy;
    import net.milkbowl.vault.permission.Permission;
    
    
    
    public class test extends JavaPlugin {
    
        public Permission permission = null;
        public Economy economy = null;
    
        private boolean setupPermissions() {
            RegisteredServiceProvider<Permission> permissionProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.permission.Permission.class);
            if (permissionProvider != null) {
                permission = permissionProvider.getProvider();
            }
            return (permission != null);
        }
    
        private boolean setupEconomy() {
            RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
            if (economyProvider != null) {
                economy = economyProvider.getProvider();
            }
    
            return (economy != null);
        }
       
        boolean allow = false;
       
        public void onEnable(){
            setupPermissions();
            setupEconomy();
            getServer().getPluginManager().registerEvents(new EventListener(this), this);
           
            getLogger().info("enabled! yeah.");
           
            Bukkit.getPluginManager().registerEvents(new testfor(), this);
            Bukkit.getPluginManager().registerEvents(new KillMob(), this);
            Bukkit.getPluginManager().registerEvents(new block(), this);
            Bukkit.getPluginManager().registerEvents(new killplayer(), this);
            getCommand("info").setExecutor(new Commands(this));
           
        }
       
        public void onDisable(){
           
            getLogger().info("disabled! fuck.");
        }
        public boolean onCommand(CommandSender sender, Command cmd, String lbl,String[] args){
            if(cmd.getName().equalsIgnoreCase("togglekillspam")){
                allow = !allow;
                if(allow) sender.sendMessage(ChatColor.DARK_RED + "ВЫ ЧУДОВИЩЕ! вам пофиг на животных!");
                else sender.sendMessage(ChatColor.DARK_GREEN + "ты решил знать о своей вине?");
                return true;
            }
            return false;
        }
    }
    //у меня там null везде подписан... так вроде не было у меня это нормально? или чо?
     
  16. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    капец ты баран, я тебе это все написал уже. еще 5 часов назад. как таких даунов земля носит.
     
  17. Автор темы
    asdqwertypro

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

    Баллы:
    76
    с последним этапом проблема: он снова ругается на econ
     
  18. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    Ты ваулт подключил?
     
  19. Sonicxd2

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

    Баллы:
    76
    А это нормально что он всему серверу ставит одну переменную?
     
  20. Автор темы
    asdqwertypro

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

    Баллы:
    76
    вот почему у меня eclipse вечно орёт на econ? что за хрень? я весь день этот сраный econ пофиксить не могу!
     
  21. Fenix78563

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

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    ну наверное кто то идиотик. у меня не орет.
    это твой класс?
     

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