1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем sasha2003, 25 фев 2017.

  1. xDark

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

    Баллы:
    96
    На странице Vault все написано.
    [​IMG]

    EconomyResponse response = economy.withrawMoney(name, amount);
    if (!response.isTransactionSuccess()) {
    // ошибка
    }
     
  2. Автор темы
    sasha2003

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

    Баллы:
    76
    Спасибо огромное!
     
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Ты все перепутал

    1. Main.econ.withdrawPlayer(Игрок, сумма); - снять
    2. Main.econ.depositPlayer(Игрок сумма); - добавить
     
  4. Jonny462

    Jonny462 Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    Jonny462
    Хватит удалять сообщения, если тебя цитировали. Не красиво так тема выглядит.
     
  5. Lisenochek

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

    Баллы:
    76
    Имя в Minecraft:
    Lisenochek
    Таки шо тут у нас:

    Код:
    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));

    Либо я тупой, либо автор сверхразум.
     
  6. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Соре, а чем тебе рандом не нравится?
     
  7. Bohdan_Hrytsak

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

    Баллы:
    76
    Имя в Minecraft:
    NegaTiV
    ну а зачем переменую создавать ?
    Код:
    if(rnd.nextInt(210)==73)
    
     
  8. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    А что, сильно роль играет?
     
  9. Bohdan_Hrytsak

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

    Баллы:
    76
    Имя в Minecraft:
    NegaTiV
    Сервер на байт менше памяти жрать будет.
     
  10. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Это восхитительно! А стоило ли об этом говорить как о гавнокоде?
     
  11. Dereku

    Dereku Старожил Пользователь

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Хех)))
    Код:
    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%");
        }
    }
    Скорее первое. К тому же, нет в его коде дикого говна (хоть и точка с запятой после ифов позабавила, но тут сказывается отсутствие опыта в погромировании на жабке) - лишь индусские дебри, которые, повторюсь, из-за отсутствия опыта в погромировании на жабке.
     
    Последнее редактирование: 1 мар 2017
  12. Blc_Dragon

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

    Баллы:
    76
    я все еще не понимаю, зачем в рандоме используется проверка на равенство
     
  13. CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    Плюсик сюда. Шанс можно легче организовать.
     
  14. Blc_Dragon

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

    Баллы:
    76
    для великих рандомайзеров.

    int num = rnd.nextInt(100);

    if (num<=21) то шанс 21%
    if (num<=75) то шанс 75%
     
  15. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    щас лисеночек скажет что это гавнокод ибо ты инициализируешь переменную
     
  16. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Это как раз таки разумный подход, ибо юзается в 2х местах. Хотя скажу вам по секрету, в бинарнике все равно будет как минимум одна переменная.
    А если вы тревожитесь по поводу размера, всегда есть обфускаторы кода, где вам оптимизируют переменные до вида a b c d .
     
  17. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Так я и говорю, что инициализировать плохо - бред
     
  18. CoolBoy

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

    Баллы:
    96
    Имя в Minecraft:
    Xezard
    Бывают рандомы, которые сначала инициализируют 10 переменных, а потом юзают их в евенте. Это - быдлокод.
    Инициализация переменных только перед непосредственным использованием. Ну и создавать переменную для использования в одном месте тоже глупо, если код исполняется часто. :)
     
  19. IcedwinterZ

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

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    Код:
    int percent = rnd.nextInt(210);
                    if(percent == 73) {
    
    Так это гавнокод или что?
     
  20. Blc_Dragon

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

    Баллы:
    76
    несомненно говнокод, только говнокод он не из-за инициализации переменной, а из-за того, что шанс того, что этот if будет true = 0,47%, т.е. очень низкий
     

Поделиться этой страницей