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

Помогите Со списком перестает работать детект предмета в варке

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

  1. Автор темы
    Pa4ok

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

    Баллы:
    66
    Делаю плагин для запрета варки отдельных зелий и просто фиксов варки сделал детект инградиента в варке, все работает, если в конфиге true а в варке порох, то он отменяет варение и выкидывает порох около варки, но при добавлении списка для всех инградиентов детектить перестает
    help
    package ru.pa4ok.brewfix;
    import java.io.File;
    import org.bukkit.Bukkit;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.configuration.file.YamlConfiguration;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.java.JavaPlugin;
    import ru.pa4ok.brewfix.potions.IngredientList;
    import ru.pa4ok.brewfix.Potions;

    public class Main extends JavaPlugin implements Listener
    {
    FileConfiguration config = getConfig();
    private FileConfiguration msg;
    public static Main instance = null;
    // -----------------------------------------------------------------------------------------------------------------

    @Override
    public void onLoad()
    {
    instance = this;
    this.getLogger().info("BrewFix by Pa4ok is stating...");
    }
    public void onEnable()
    {
    this.saveDefaultConfig();
    this.saveResource("msg.yml", false);
    this.msg = YamlConfiguration.loadConfiguration(new File(this.getDataFolder() + File.separator + "msg.yml"));

    this.getServer().getPluginCommand("brewfixreload").setExecutor(new ConfigReload());
    Bukkit.getServer().getPluginManager().registerEvents(new BrewningStand(), this);
    Bukkit.getServer().getPluginManager().registerEvents(new Potions(), this);

    Potions.blackListIngredients = IngredientList.ingredientlist();

    this.getLogger().info("BrewFix by Pa4ok started!");
    }
    public void onDisable()
    {
    this.getLogger().info("BrewFix by Pa4ok disabled.");
    }

    // -----------------------------------------------------------------------------------------------------------------

    public boolean configCheck (String s)
    {
    return config.getBoolean(s);
    }


    public String configMsg (String s)
    {
    return msg.getString(s);
    }

    public void update()
    {
    reloadConfig();
    this.config = this.getConfig();
    this.msg = YamlConfiguration.loadConfiguration(new File(this.getDataFolder() + File.separator + "msg.yml"));

    Potions.blackListIngredients = IngredientList.ingredientlist();
    }
    }
    package ru.pa4ok.brewfix;
    import java.util.ArrayList;
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.BrewEvent;
    import org.*********ventory.ItemStack;
    import ru.pa4ok.brewfix.potions.IngredientList;
    public class Potions implements Listener
    {
    public static ArrayList<Short> blackListPotions = new ArrayList<Short>();
    public static ArrayList<Short> blackListIngredients = new ArrayList<Short>();

    @EventHandler
    public void brewCansel (BrewEvent e)
    {
    ItemStack[] BrewDrop = e.getContents().getContents();
    if (BrewDrop[3] != null)
    {
    if (blackListIngredients.contains(BrewDrop[3].getTypeId())) // проверка на инградиент
    {

    e.getContents().setIngredient(new ItemStack(Material.AIR));
    Bukkit.getWorld(e.getBlock().getWorld().getName()).dropItemNaturally(e.getBlock().getLocation(), BrewDrop[3]); // Дроп итема
    e.setCancelled(true); // Отменить событие
    return;
    }
    }
    }
    }
    package ru.pa4ok.brewfix.potions;
    import java.util.ArrayList;
    import ru.pa4ok.brewfix.Main;
    public class IngredientList
    {

    public static ArrayList<Short> list = new ArrayList<Short>();

    public static ArrayList<Short> ingredientlist()
    {
    list.clear();
    if (Main.instance.configCheck("Ingredients.gunpowder") == true)
    {
    list.add((short)289);
    }
    return list;
    }


    }
    BrewningStand:
    craft: false
    getFromCreative: false
    click: false
    blockPlace: false
    Ingredients:
    gunpowder: true
    Тут не все классы я выбрал только те что используются для того что перестало работать
    Хелп, я уже пол дня сижу не вдупляю, эклипс не на что не орет кроме "BrewDrop[3].getTypeId()" там пишет нежелательно так делать, но без списка работало, так что не в этом дело
    Вот все в txt а тут отступы убирает
     

    Вложения:

    • config.txt
      Размер файла:
      138 байт
      Просмотров:
      1
    • IngredientList.txt
      Размер файла:
      394 байт
      Просмотров:
      0
    • Main.txt
      Размер файла:
      2,2 КБ
      Просмотров:
      0
    • Potions.txt
      Размер файла:
      1,3 КБ
      Просмотров:
      0
  2. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Слишком много классов и конфигов, сложно понять.
    Для начала - если ты на 1.7+ - вибрасывай ID, в 1.13 их удалили, используй Material.
    Попробуй сделать дебаг. (проверь достает ли оно данные с конфига, есть ли ID в списке)

    И сейчас точно кто-то придёт говорить о переменных с большой буквы и о этих присвоениях статиков в главном классе.

    И пожелание - используй тег
    Код:
    [php][/php]
    с подсветкой синтаксиса удобней читать код на форуме
     
  3. Автор темы
    Pa4ok

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

    Баллы:
    66
    я пытался сделать с material но столкнулся с проблемой, что там нет пороха, он относится к items и у меня не получалось сделать адекватный список через items.
     

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