Помогите Не работает код

Да


Не подскажешь, как через Vault снимать с игрока деньги?
В плагине!
На странице Vault все написано.
zPfm1tp.png

EconomyResponse response = economy.withrawMoney(name, amount);
if (!response.isTransactionSuccess()) {
// ошибка
}
 
Код:
Регистрируем Экономику в главном классе:
public static Economy econ = null;

private boolean setupEconomy() {
        if(this.getServer().getPluginManager().getPlugin("Vault") == null) {
            return false;
        } else {
            RegisteredServiceProvider rsp = this.getServer().getServicesManager().getRegistration(Economy.class);
            if(rsp == null) {
                return false;
            } else {
                econ = (Economy)rsp.getProvider();
                return econ != null;
            }
        }
    }

При влючении плагина проверяем плагины на существования Vault:
if (!this.setupEconomy()) {
            Bukkit.getLogger().severe(String.format("[%s] - Disabled due to no Vault dependency found!", new Object[]{this.getDescription().getName()}));
            this.getServer().getPluginManager().disablePlugin(this);
        } else {
Bukkit.getPluginManager().registerEvents(test, this);



Далее используем в любых классах следующее:
Main.econ.withdrawPlayer(Игрок, сумма); - Увеличение суммы баланса игрока.
Main.econ.depositPlayer(Игрок сумма); - Удаление суммы с баланса игрока.

Этот способ как по мне легче.
Ты все перепутал

  1. Main.econ.withdrawPlayer(Игрок, сумма); - снять
  2. Main.econ.depositPlayer(Игрок сумма); - добавить
 
Хватит удалять сообщения, если тебя цитировали. Не красиво так тема выглядит.
 
Таки шо тут у нас:

Код:
public void on(BlockBreakEvent e) {
        Player p = e.getPlayer();
        if (p.hasPermission("boostkey.1.0")) {
                int percent = rnd.nextInt(210);
                if(percent == 73) {
                    if(!(e.getBlock().getType() == Material.LEAVES)) {
                        ItemStack book = new ItemStack(Material.GHAST_TEAR);
                        ItemMeta meta = book.getItemMeta();
                        meta.setDisplayName(ChatColor.GREEN + "Ключ");
                        @SuppressWarnings("rawtypes")
                        List<String> lore = new ArrayList();
                        lore.add(ChatColor.BLACK + "key");
                        meta.setLore(lore);
                        book.setItemMeta(meta);
                  
                        p.sendMessage(ChatColor.GOLD + "Вы нашли ключ");
                        p.getInventory().addItem(new ItemStack(book));
                    }
                }
            }

Ага, давайте искать говнокод:
Бля, без комментариев...
Код:
                int percent = rnd.nextInt(210);
                if(percent == 73) {

Бля, зачем постоянно создавать стак:
Код:
ItemStack book = new ItemStack(Material.GHAST_TEAR);
                        ItemMeta meta = book.getItemMeta();
                        meta.setDisplayName(ChatColor.GREEN + "Ключ");
                        @SuppressWarnings("rawtypes")
                        List<String> lore = new ArrayList();
                        lore.add(ChatColor.BLACK + "key");
                        meta.setLore(lore);
                        book.setItemMeta(meta);

Интересно, о чем думал автор, который создал уже стак, но при добавлении объявляет новый:
Код:
p.getInventory().addItem(new ItemStack(book));


Либо я тупой, либо автор сверхразум.
 
Хех)))
Java:
private final List<Material> denied = Arrays.asList(new Material[]{Material.LEAVES});
private final ItemStack itemStackKey = new ItemStack(Material.GHAST_TEAR) {
    {
        ItemMeta itemMeta = itemStackKey.getItemMeta();
        itemMeta.setDisplayName(ChatColor.GREEN + "Ключ");
        itemMeta.setLore(Arrays.asList(new String[]{ChatColor.BLACK + "key"}));
        itemStackKey.setItemMeta(itemMeta);
    }
};

@EventHandler
public void on(BlockBreakEvent e) {
    Player p = e.getPlayer();
    if (denied.contains(e.getBlock().getType())) {
        return;
    }
    if (p.hasPermission("boostkey.1.0") && rnd.nextInt(210) == 73) {
        p.getInventory().addItem(itemStackKey.clone());
        p.sendMessage(ChatColor.GOLD + "Вы нашли ключ");
    }
    if (p.hasPermission("boostkey.1.5") && rnd.nextInt(160) == 21) {
        p.getInventory().addItem(itemStackKey.clone());
        p.sendMessage(ChatColor.GOLD + "Вы нашли ключ. Шанс: " + ChatColor.RED + "1.5%");
    }
}

Либо я тупой, либо автор сверхразум.
Скорее первое. К тому же, нет в его коде дикого говна (хоть и точка с запятой после ифов позабавила, но тут сказывается отсутствие опыта в погромировании на жабке) - лишь индусские дебри, которые, повторюсь, из-за отсутствия опыта в погромировании на жабке.
 
Последнее редактирование:
я все еще не понимаю, зачем в рандоме используется проверка на равенство
 
для великих рандомайзеров.

int num = rnd.nextInt(100);

if (num<=21) то шанс 21%
if (num<=75) то шанс 75%
 
щас лисеночек скажет что это гавнокод ибо ты инициализируешь переменную
Это как раз таки разумный подход, ибо юзается в 2х местах. Хотя скажу вам по секрету, в бинарнике все равно будет как минимум одна переменная.
А если вы тревожитесь по поводу размера, всегда есть обфускаторы кода, где вам оптимизируют переменные до вида a b c d .
 
Это как раз таки разумный подход, ибо юзается в 2х местах. Хотя скажу вам по секрету, в бинарнике все равно будет как минимум одна переменная.
А если вы тревожитесь по поводу размера, всегда есть обфускаторы кода, где вам оптимизируют переменные до вида a b c d .
Так я и говорю, что инициализировать плохо - бред
 
Так я и говорю, что инициализировать плохо - бред
Бывают рандомы, которые сначала инициализируют 10 переменных, а потом юзают их в евенте. Это - быдлокод.
Инициализация переменных только перед непосредственным использованием. Ну и создавать переменную для использования в одном месте тоже глупо, если код исполняется часто. :)
 
Бывают рандомы, которые сначала инициализируют 10 переменных, а потом юзают их в евенте. Это - быдлокод.
Инициализация переменных только перед непосредственным использованием. Ну и создавать переменную для использования в одном месте тоже глупо, если код исполняется часто. :)
Код:
int percent = rnd.nextInt(210);
                if(percent == 73) {
Так это гавнокод или что?
 
Код:
int percent = rnd.nextInt(210);
                if(percent == 73) {
Так это гавнокод или что?
несомненно говнокод, только говнокод он не из-за инициализации переменной, а из-за того, что шанс того, что этот if будет true = 0,47%, т.е. очень низкий
 
Назад
Верх