Работоспособность данного кода

Версия Minecraft
1.12.2
API
Forge
Читал главу о луте в учебнике. Нужно было сделать возможно спавна своего предмета во всех генерируемых сундуках, но мне было лень писать if или там свитч что-кто любит, и написал это:
Java:
public class EventsHandler {
    @SubscribeEvent
    public void onLoot(LootTableLoadEvent e) {
                    String[] world = e.getName().getResourcePath().split("/");
                    if(world[0].equals("chests")){
                            ResourceLocation loc = new ResourceLocation("RusCoins", world[0]+"_RusCoins");
                            LootTable customLootTable = e.getLootTableManager().getLootTableFromLocation(loc);
                            e.setTable(customLootTable);
                }
                    world = null;

        }

    }
Я пока не тестил мод, просто хотел спросить заранее, будет ли нормально работать мод? Мало ли
 
Последнее редактирование:
Решение
test = null; world = null;
Это зачем?
if(world[0].equals("chests")){
Лучше использовать test.startsWith("chests")
ResourceLocation loc = new ResourceLocation("RusCoins", test+"_RusCoins");
Вот тут вылетит ошибка. Никакого camelCase или Pascal_Case и пр. в ResourceLocation, только "chests/simple_dungeon_ruscoin" и всё в таком виде.
1,329
104
225
test = null; world = null;
Это зачем?
if(world[0].equals("chests")){
Лучше использовать test.startsWith("chests")
ResourceLocation loc = new ResourceLocation("RusCoins", test+"_RusCoins");
Вот тут вылетит ошибка. Никакого camelCase или Pascal_Case и пр. в ResourceLocation, только "chests/simple_dungeon_ruscoin" и всё в таком виде.
 
@SuperCatMaster насчёт "'это зачем?" - просто странная привычка, я стараюсь от неё избавиться.

Насчёт startsWith спасибо, забыл об этом.

Насчёт "Вот тут вылетит ошибка", спасибо

Изменил код:

Java:
 String test = e.getName().getResourcePath()+"_ruscoins";
                    if(test.startsWith(("chests"))){
                            ResourceLocation loc = new ResourceLocation("RusCoins", test);
                            LootTable customLootTable = e.getLootTableManager().getLootTableFromLocation(loc);
                            e.setTable(customLootTable);
                }
 
1,329
104
225
String test = e.getName().getResourcePath()+"_ruscoins";
Конкатацию лучше делать внутри условия, чтобы лишние действия не производить (сейчас это плюсуется даже к тем же торгам жителей).
ResourceLocation loc = new ResourceLocation("RusCoins", test);
modid тоже должен быть согласно диапазону пути (и лучше созать константу внутри глав. класса/класса с перменными, откуда будешь брать экземпляр каждый раз, как понадобится modid).
 
Сверху