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

  • Автор темы Автор темы 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 а тут отступы убирает
 

Вложения

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

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

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

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

И пожелание - используй тег
Код:
[php][/php]
с подсветкой синтаксиса удобней читать код на форуме
я пытался сделать с material но столкнулся с проблемой, что там нет пороха, он относится к items и у меня не получалось сделать адекватный список через items.
 
Назад
Верх