Essentials balance api

HappyIceGriefYT

Premium
Сборщик
Дизайнер
Hosting
Сообщения
287
Решения
3
Помогите нужно чтобы игрок кода писал команду ему выдавало 10$ (/eco give $player 10) как реализовать через Essentials API? (Я пишу плагин)
 
Решение
Добавь плагин 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);
Добавь плагин 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);
 
Добавь плагин 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, да. Вот пример:

Код:
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." в консоль
 
Код главного класса
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);
        }
    }

}
Всё верно?
 
Последнее редактирование модератором:
[OFFTOPIC]
[OFFTOPIC]Для кода используй кнопку Код, читать текстом неудобно[/OFFTOPIC]
Сделать кодом? или так сможете посмотреть?[/OFFTOPIC]
Авто объединение сообщений:

[OFFTOPIC]Ты в IDE пишешь? Почему нет каркаса обработчика команд?[/OFFTOPIC]
В IDE
 
Последнее редактирование модератором:
Код:
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 плагин с командами
 
[OFFTOPIC]сейчас скину, потерпи[/OFFTOPIC]
Авто объединение сообщений:

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;
    }
}
 
[OFFTOPIC]сейчас скину, потерпи[/OFFTOPIC]
Авто объединение сообщений:

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;
    }
}
 
оно должно повторяться каждые 20 секунд секунду??
30
Авто объединение сообщений:

[OFFTOPIC]
[OFFTOPIC]лучше Intellij IDEA идешки не знаю,
Community качай[/OFFTOPIC]
У меня и так эта IDE[/OFFTOPIC]
Авто объединение сообщений:

[OFFTOPIC]
оно должно повторяться каждые 20 секунд секунду??
Как в этой проге в .jar сделать?[/OFFTOPIC]
 
Последнее редактирование модератором:
Время указывается в тиках. 30 секунд = 30 * 20

Как в этой проге в .jar сделать?
[OFFTOPIC]Гугли, тут я уже тебе помочь не могу. У тебя много проблем с простыми методами, тут уже нужно жабку подучивать[/OFFTOPIC]
 
Назад
Сверху Снизу