Essentials balance api

HappyIceGriefYT

Пользователь
Помогите нужно чтобы игрок кода писал команду ему выдавало 10$ (/eco give $player 10) как реализовать через Essentials API? (Я пишу плагин)
 

Baroness's Dev

Разработчик
Пользователь
Добавь плагин Vault в библиотеку своего плагина, после чего пропиши в классе обработки команды:

Java:
public static void init() {
        RegisteredServiceProvider<Economy> reg = Bukkit.getServicesManager().getRegistration(Economy.class);
        if (reg != null) {
            eco = reg.getProvider();
        }
    }
В методе OnEnable вызови этот метод:
Java:
классКоманды.init();
Перед обработкой обязательно добавь

Java:
if (eco == null) {
            getLogger().info(ChatColor.DARK_RED + "Link with Vault failed.");
            return true;
        }
Теперь ты можешь делать что угодно с экономикой. Например,

Java:
Player p = (Player) sender;
eco.depositPlayer(p, 10);
 

HappyIceGriefYT

Пользователь
Добавь плагин Vault в библиотеку своего плагина, после чего пропиши в классе обработки команды:

Java:
public static void init() {
        RegisteredServiceProvider<Economy> reg = Bukkit.getServicesManager().getRegistration(Economy.class);
        if (reg != null) {
            eco = reg.getProvider();
        }
    }
В методе OnEnable вызови этот метод:
Java:
классКоманды.init();
Перед обработкой обязательно добавь

Java:
if (eco == null) {
            getLogger().info(ChatColor.DARK_RED + "Link with Vault failed.");
            return true;
        }
Теперь ты можешь делать что угодно с экономикой. Например,

Java:
Player p = (Player) sender;
eco.depositPlayer(p, 10);
Перед обработкой обязательно добавь, это в класс команды?
 

Baroness's Dev

Разработчик
Пользователь
HappyIceGriefYT, да. Вот пример:

Код:
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (sender instanceof Player) {
                if (eco == null) {
                getLogger().info(ChatColor.DARK_RED + "Link with Vault failed.");
                return;
            }
            //твой код
        }
    return true;
    }
Авто объединение сообщений:

Если плагина Vault вдруг не окажется или что-то пойдет не так, плагин не будет вызывать ошибку, а просто напишет "Link with Vault failed." в консоль
 

HappyIceGriefYT

Пользователь
Код главного класса
Java:
package MeemMc;

import org.bukkit.Bukkit;

public class HMM {

    public void onEnable {
        getCommand("beg").setExecutor(new beg());

        beg.init();

        Bukkit.getPluginManager().registerEvents(new Handler(), this);

        bukkit.getLogger().info("This plugin get started")
    }


}
Код plugin.yml
Код:
name: MeemMc
version: 1.0.0
main: MeemMc.HMM
depend: [Vault, Essentials]
commands:
  beg:
    description: Попрашайнечество
    usage: /beg
Код класса команды
Java:
package MeemMc;

import org.bukkit.command.Command;
import org.bukkit.CommandExecutor;
import org.bukkit.CommandSender;

public class Handler implements commandExecutor {

if(eco ==null) {
        getLogger().info(ChatColor.DARK_RED + "Link with Vault failed.");
        return true;
    }

    public static void init() {
        RegisteredServiceProvider<Economy> reg = Bukkit.getServicesManager().getRegistration(Economy.class);
        if (reg != null) {
            eco = reg.getProvider();
        }
    }

    public commands(MeemMc plugin) {
       this.plugin = plugin;
        @Ovveride
        public void run () {
            Player p = (Player) sender;
            eco.depositPlayer(p, 10);
            runTaskAsyncTimer(plugin, 0,30);
        }
    }

}
Всё верно?
 
Последнее редактирование модератором:

Baroness's Dev

Разработчик
Пользователь
offtop Для кода используй кнопку Код, читать текстом неудобно
 

Baroness's Dev

Разработчик
Пользователь
offtop Ты в IDE пишешь? Почему нет каркаса обработчика команд?
 

HappyIceGriefYT

Пользователь
offtop
offtop Для кода используй кнопку Код, читать текстом неудобно
Сделать кодом? или так сможете посмотреть?

Авто объединение сообщений:

offtop Ты в IDE пишешь? Почему нет каркаса обработчика команд?
В IDE
 
Последнее редактирование модератором:

Baroness's Dev

Разработчик
Пользователь
Код:
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    return true;
}

//каркас команды
 

HappyIceGriefYT

Пользователь
Код:
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    return true;
}

//каркас команды
Это куда добавить?
Авто объединение сообщений:

Код:
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    return true;
}

//каркас команды
Просто 1 плагин с командами
 

Baroness's Dev

Разработчик
Пользователь
offtop сейчас скину, потерпи

Авто объединение сообщений:

Java:
import net.milkbowl.vault.economy.Economy;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.RegisteredServiceProvider;

import static org.bukkit.Bukkit.getLogger;

public class Handler implements CommandExecutor {

    public static Economy eco;

    public static void init() {
        RegisteredServiceProvider<Economy> reg = Bukkit.getServicesManager().getRegistration(Economy.class);
        if (reg != null) {
            eco = reg.getProvider();
        }
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (sender instanceof Player) {
            if (eco == null) {
                getLogger().info(ChatColor.DARK_RED + "Link with Vault failed.");
                return true;
            }
            //твой таск
        }
        return true;
    }
}
 

HappyIceGriefYT

Пользователь
offtop Посоветуйте нормальный IDE (Кроме Eclipse)
 
Последнее редактирование модератором:

HappyIceGriefYT

Пользователь
offtop сейчас скину, потерпи

Авто объединение сообщений:

Java:
import net.milkbowl.vault.economy.Economy;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.RegisteredServiceProvider;

import static org.bukkit.Bukkit.getLogger;

public class Handler implements CommandExecutor {

    public static Economy eco;

    public static void init() {
        RegisteredServiceProvider<Economy> reg = Bukkit.getServicesManager().getRegistration(Economy.class);
        if (reg != null) {
            eco = reg.getProvider();
        }
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (sender instanceof Player) {
            if (eco == null) {
                getLogger().info(ChatColor.DARK_RED + "Link with Vault failed.");
                return true;
            }
            //твой таск
        }
        return true;
    }
}
Теперь всё верно?
Java:
import net.milkbowl.vault.economy.Economy;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.RegisteredServiceProvider;

import static org.bukkit.Bukkit.getLogger;

public class Handler implements CommandExecutor {

    public static Economy eco;

    public static void init() {
        RegisteredServiceProvider<Economy> reg = Bukkit.getServicesManager().getRegistration(Economy.class);
        if (reg != null) {
            eco = reg.getProvider();
        }
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (sender instanceof Player) {
            if (eco == null) {
                getLogger().info(ChatColor.DARK_RED + "Link with Vault failed.");
                return true;
            }
            new BukkitRunnable(){
                @Ovveride
                public void run(){
                    Player p = (Player) sender;
                    eco.depositPlayer(p, 10);
                }
            }.runTaskAsyncTimer(plugin, 0, 20);
        }
        return true;
    }
}
 

HappyIceGriefYT

Пользователь
оно должно повторяться каждые 20 секунд секунду??
30
Авто объединение сообщений:

offtop
offtop лучше Intellij IDEA идешки не знаю,
Community качай
У меня и так эта IDE

Авто объединение сообщений:

offtop
оно должно повторяться каждые 20 секунд секунду??
Как в этой проге в .jar сделать?
 
Последнее редактирование модератором:

Baroness's Dev

Разработчик
Пользователь
Время указывается в тиках. 30 секунд = 30 * 20

Как в этой проге в .jar сделать?
offtop Гугли, тут я уже тебе помочь не могу. У тебя много проблем с простыми методами, тут уже нужно жабку подучивать
 

Комнаты в чате

Верх Низ