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

куда это нужно вписывать? в главный файл? или создавать новый?
В главном классе, где у тебя extends JavaPlugin и public void onEnable(){...}
И вот ниже простой пример использования. В моем коде я заюзал интеракт ивент в качестве примера.
Main plugin; это ссылка на главный класс, где у тебя onEnable(){...}

Java:
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");
        }
    }
}
 
Последнее редактирование:
ГДЕ ОШИБКА СКА?!??! ГДЕ, А!??! ПРЕДУПРЕЖДЕНИЕ ЭТО НЕ ОШИБКА! У ТЕБЯ ПЛАГИН НЕ КОМПИЛИТСЯ ИЛИ ЧТО? ЧЕМ ТЕБЯ СТАРЫЙ МЕТОД НЕ УСТРОИЛ!?!?!?!??!
а вообще вот получше
Java:
    @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");
                Main.econ.withdrawPlayer(killer, 100000);
                killer.sendMessage("Вы убили игрока и получили группу убйица, с вашего счёта списано 10000");
            }
            if (PermissionsEx.getUser(killed).inGroup("killer")) {
                PermissionsEx.getUser(killer).addGroup("killer");
                PermissionsEx.getUser(killed).removeGroup("killer");
                Main.econ.depositPlayer(killer, 10000);
                killer.sendMessage("Вы убили киллера и получили 10000$ вместе с рангом убийца");
            }
        }
    }
Забей, я тебе уже нормальный код скинул

я уже исправил, я понял, что ошибся -_-, код выше изменённый уже норм.

НЕТ, СКА, ААА, ТТЕБЯ ЭКЛИПС ПРОСТО ПРЕДУПРЕЖДАЕТ, ЭТО НИЧЕГО НЕ ДАЁТ, ПРОСТО ИГНОРИРУЙ, ПРОСТО ЭТОТ МЕТОД УСТАРЕЛ, ЕСТЬ НОВЫЙ МЕТОД, НО СТАРЫЙ РАБОТАЕТ, ЗАГУГЛИ, С ПРЕДУПРЕЖДЕНИЯМИ У ТЕБЯ ВСЁ СКОМПИЛИТСЯ!!11!!
Уе6ите ему плиз
180px-Hate.jpg
 
куда это нужно вписывать? в главный файл? или создавать новый?
getServer().getPluginManager().registerEvents(new EventListener(this), this); EventListener ошибку выдаёт. либо как фиксить либо... это типо ссылка на класс где будет считать всё там... так?
 
И да, не забудь подключить Vault в библиотеках.
getServer().getPluginManager().registerEvents(new EventListener(this), this); EventListener ошибку выдаёт. либо как фиксить либо... это типо ссылка на класс где будет считать всё там... так?
У меня этот класс с ивентами, сам класс скинул выше.
 
А вот так я подключаю ексекуторы команд.
getCommand("example").setExecutor(new CommandListener(this));
https://github.com/alexandrage/Example/blob/master/src/Example/CommandListener.java
https://github.com/alexandrage/Example/blob/master/src/plugin.yml
example собственно команда.
Java:
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 ошибку выдаёт как фиксить?
 
Java:
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 ошибку выдаёт как фиксить?
Ты забыл конструктор.

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

test plugin;
public EventListener(test instance) {
this.plugin = instance;
}
this.plugin.econ.depositPlayer(killer, 10000);
И ты забил ифку гет баланс больще равно, у игрока может не хватать денег.
И финалить игрока тут не имеет смысла.
это не я писал ну ок... куда этот
test plugin;
public EventListener(test instance) {
this.plugin = instance;
}
this.plugin.econ.depositPlayer(killer, 10000);
вписывать?
 
Я же скидывал выше оба класса. Смотри по ним.
Java:
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

Я же скидывал выше оба класса. Смотри по ним.
ты тут?
 
Java:
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


ты тут?
Смотри внимательно мои классы.
 
Смотри внимательно мои классы.
ааай блин! у меня бошка уже болит! что? так сложно сказать?
Смотри внимательно мои классы.
Java:
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 везде подписан... так вроде не было у меня это нормально? или чо?
 
капец ты баран, я тебе это все написал уже. еще 5 часов назад. как таких даунов земля носит.
public class KillMob implements Listener{

После этой строки пишешь
Java:
private Название_главного_класса Первое_Любое_слово_чаще_всего_используют_слово_plugin//тогда у тебя будет использование Первое_Любое_Слово.econ.depositPlayer(killer, 10000);
public KillMob(Название_главного_класса Второе_Любое_слово/*может совпадать с первым*/){
   this.Второе_Любое_Слово = Первое_Любое_Слово;
}

В главнном классе регистрируем слушатель
Java:
Bukkit.getPluginManager().registerEvents(new KillMob(this), this);

А еще раз свой код напишешь без BB кода "code", то я тебе отвечаь не буду.

ВВ код "code" делается так
Посмотреть вложение 44332
Не забудь в главном классе зарегить vault (подклюай vault как ядро сервера\как пекс подключал)

Создаешь поле

public static Economy econ = null;

в методе onEnable пишешь:
Java:
if (!setupEconomy() ) {
            Bukkit.getConsoleSender().sendMessage(String.format("[%s] - Disabled due to no Vault dependency found!", getDescription().getName()));
            getServer().getPluginManager().disablePlugin(this);
            return;
            }

не забывай в главном классе создать метод setupEconomy()

делается так:
Java:
private boolean setupEconomy() {
        if (getServer().getPluginManager().getPlugin("Vault") == null) {
        return false;
        }
        RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
        if (rsp == null) {
        return false;
        }
        econ = rsp.getProvider();
        return econ != null;
        }
 
А это нормально что он всему серверу ставит одну переменную?
 
капец ты баран, я тебе это все написал уже. еще 5 часов назад. как таких даунов земля носит.
вот почему у меня eclipse вечно орёт на econ? что за хрень? я весь день этот сраный econ пофиксить не могу!
 
вот почему у меня eclipse вечно орёт на econ? что за хрень? я весь день этот сраный econ пофиксить не могу!
ну наверное кто то идиотик. у меня не орет.
ааай блин! у меня бошка уже болит! что? так сложно сказать?

Java:
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 везде подписан... так вроде не было у меня это нормально? или чо?
это твой класс?
 
Ты ваулт подключил?
вроде да я подключал его так: test - properties - Libraries - add external JARs - Vault.gar
ну наверное кто то идиотик. у меня не орет.

это твой класс?
это главный вродь не помню...
ну наверное кто то идиотик. у меня не орет.

это твой класс?
Java:
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(){
        if (!setupEconomy() ) {
            Bukkit.getConsoleSender().sendMessage(String.format("[%s] - Disabled due to no Vault dependency found!", getDescription().getName()));
            getServer().getPluginManager().disablePlugin(this);
            return;
            }
        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;
    }
}
//вот новый я его уже перекодил
 
Назад
Верх