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

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

Discussion in 'Разработка плагинов для новичков' started by asdqwertypro, Jan 3, 2017.

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

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

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

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

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

    Code:
    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");
            }
        }
    }
     
    Last edited: Jan 4, 2017
  4. jusik

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

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

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

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

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

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

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

    Trophy Points:
    76
    а ну ок
     
  8. alexandrage

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

    Trophy Points:
    173
    Skype:
    alexandr0116
  9. Автор темы
    asdqwertypro

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

    Trophy Points:
    76
    Code:
    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 Администратор

    Trophy Points:
    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 Активный участник Пользователь

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

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

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

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

    Trophy Points:
    76
    Code:
     
    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 Администратор

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

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

    Trophy Points:
    76
    ааай блин! у меня бошка уже болит! что? так сложно сказать?[DOUBLEPOST=1483540153,1483540094][/DOUBLEPOST]
    Code:
    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 Активный участник Пользователь

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

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

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

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

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

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

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

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

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

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

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

Share This Page