aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorUnknown <shekwancheung0528@gmail.com>2018-12-31 13:12:25 +0800
committerUnknown <shekwancheung0528@gmail.com>2018-12-31 13:12:25 +0800
commitfee12aa0885da204ec874cd5ada371c42501c873 (patch)
tree880596f5f463e08762a56b1cb1d7008aaed1899d /src
parent1b14c5142bb49db9af078b5c753bc22ce35a40cc (diff)
downloadRoughlyEnoughItems-fee12aa0885da204ec874cd5ada371c42501c873.tar.gz
RoughlyEnoughItems-fee12aa0885da204ec874cd5ada371c42501c873.tar.bz2
RoughlyEnoughItems-fee12aa0885da204ec874cd5ada371c42501c873.zip
packetadder wip
Diffstat (limited to 'src')
-rwxr-xr-xsrc/main/java/me/shedaniel/ClientListener.java26
-rwxr-xr-xsrc/main/java/me/shedaniel/Core.java47
-rwxr-xr-xsrc/main/java/me/shedaniel/api/IREIPlugin.java4
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/GuiItemList.java98
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/REIRenderHelper.java63
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/RecipeContainer.java7
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/RecipeGui.java99
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/widget/Button.java33
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/widget/Control.java50
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/widget/REISlot.java57
-rw-r--r--src/main/java/me/shedaniel/gui/widget/Tab.java17
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/widget/TextBox.java8
-rwxr-xr-xsrc/main/java/me/shedaniel/gui/widget/WidgetArrow.java22
-rwxr-xr-xsrc/main/java/me/shedaniel/impl/REIRecipeManager.java22
-rwxr-xr-xsrc/main/java/me/shedaniel/library/KeyBindManager.java10
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/CharInput.java2
-rw-r--r--src/main/java/me/shedaniel/listenerdefinitions/ClientTickable.java5
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/DoneLoading.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/DrawContainer.java6
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/GuiCickListener.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/GuiKeyDown.java2
-rw-r--r--src/main/java/me/shedaniel/listenerdefinitions/IEvent.java4
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/IMixinContainerGui.java (renamed from src/main/java/me/shedaniel/listenerdefinitions/IMixinGuiContainer.java)4
-rw-r--r--src/main/java/me/shedaniel/listenerdefinitions/KeybindHandler.java7
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/MinecraftResize.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/MouseScrollListener.java2
-rw-r--r--src/main/java/me/shedaniel/listenerdefinitions/PacketAdder.java21
-rw-r--r--src/main/java/me/shedaniel/listenerdefinitions/PotionCraftingAdder.java6
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/PreLoadOptions.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/listenerdefinitions/RecipeLoadListener.java4
-rwxr-xr-xsrc/main/java/me/shedaniel/listeners/DrawContainerListener.java40
-rwxr-xr-xsrc/main/java/me/shedaniel/listeners/InitListener.java21
-rw-r--r--src/main/java/me/shedaniel/mixins/MixinBrewingRecipeRegistry.java22
-rwxr-xr-xsrc/main/java/me/shedaniel/mixins/MixinDoneLoading.java11
-rwxr-xr-xsrc/main/java/me/shedaniel/mixins/MixinGuiContainer.java46
-rw-r--r--src/main/java/me/shedaniel/mixins/MixinGuiContainerCreative.java77
-rwxr-xr-xsrc/main/java/me/shedaniel/mixins/MixinKeyboardListener.java10
-rw-r--r--src/main/java/me/shedaniel/mixins/MixinMinecraftClient.java40
-rwxr-xr-xsrc/main/java/me/shedaniel/mixins/MixinMinecraftResize.java19
-rw-r--r--src/main/java/me/shedaniel/mixins/MixinPotionBrewing.java21
-rwxr-xr-xsrc/main/java/me/shedaniel/mixins/MixinRecipeManager.java16
-rwxr-xr-xsrc/main/java/me/shedaniel/mixins/SettingsMixin.java14
-rwxr-xr-xsrc/main/java/me/shedaniel/network/CheatPacket.java30
-rwxr-xr-xsrc/main/java/me/shedaniel/network/DeletePacket.java31
-rw-r--r--src/main/java/me/shedaniel/plugin/RandomRecipe.java6
-rw-r--r--src/main/java/me/shedaniel/plugin/TestRandomCategory.java3
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/VanillaPlugin.java59
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/crafting/VanillaCraftingCategory.java17
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/crafting/VanillaShapedCraftingRecipe.java10
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/crafting/VanillaShapelessCraftingRecipe.java14
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceCategory.java16
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/furnace/VanillaFurnaceRecipe.java14
-rw-r--r--src/main/java/me/shedaniel/plugin/potion/VanillaPotionCategory.java32
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/potion/VanillaPotionRecipe.java2
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/smoker/VanillaSmokerCategory.java89
-rwxr-xr-xsrc/main/java/me/shedaniel/plugin/smoker/VanillaSmokerRecipe.java43
-rwxr-xr-xsrc/main/resources/assets/roughlyenoughitems/.modassetroot (renamed from src/main/resources/assets/almostenoughitems/.modassetroot)0
-rwxr-xr-xsrc/main/resources/assets/roughlyenoughitems/lang/en_us.json (renamed from src/main/resources/assets/almostenoughitems/lang/en_us.json)1
-rwxr-xr-xsrc/main/resources/assets/roughlyenoughitems/lang/fr_fr.json (renamed from src/main/resources/assets/almostenoughitems/lang/fr_fr.json)0
-rwxr-xr-xsrc/main/resources/assets/roughlyenoughitems/textures/gui/recipecontainer.png (renamed from src/main/resources/assets/almostenoughitems/textures/gui/recipecontainer.png)bin3577 -> 3577 bytes
-rwxr-xr-xsrc/main/resources/fabric.mod.json19
-rwxr-xr-x[-rw-r--r--]src/main/resources/roughlyenoughitems.client.json (renamed from src/main/resources/mixins.roughlyenoughitems.json)19
62 files changed, 820 insertions, 556 deletions
diff --git a/src/main/java/me/shedaniel/ClientListener.java b/src/main/java/me/shedaniel/ClientListener.java
index d6c4017c7..7d7d2f65b 100755
--- a/src/main/java/me/shedaniel/ClientListener.java
+++ b/src/main/java/me/shedaniel/ClientListener.java
@@ -9,12 +9,12 @@ import me.shedaniel.listenerdefinitions.RecipeLoadListener;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
-import net.minecraft.init.Items;
import net.minecraft.item.Item;
-import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
-import net.minecraft.util.NonNullList;
-import net.minecraft.util.registry.IRegistry;
+import net.minecraft.item.Items;
+import net.minecraft.recipe.RecipeManager;
+import net.minecraft.util.DefaultedList;
+import net.minecraft.util.registry.Registry;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
@@ -43,24 +43,24 @@ public class ClientListener implements DoneLoading, RecipeLoadListener {
}
private void buildItemList() {
- if (!IRegistry.ITEM.isEmpty())
- IRegistry.ITEM.forEach(this::processItem);
- if (!IRegistry.ENCHANTMENT.isEmpty())
- IRegistry.ENCHANTMENT.forEach(enchantment -> {
- for(int i = enchantment.getMinLevel(); i < enchantment.getMaxLevel(); i++) {
+ if (!Registry.ITEM.isEmpty())
+ Registry.ITEM.forEach(this::processItem);
+ if (Registry.ENCHANTMENT.stream().count() > 0)
+ Registry.ENCHANTMENT.forEach(enchantment -> {
+ for(int i = enchantment.getMinimumLevel(); i < enchantment.getMaximumLevel(); i++) {
ItemStack stack = new ItemStack(Items.ENCHANTED_BOOK);
Map<Enchantment, Integer> map = new HashMap<>();
map.put(enchantment, i);
- EnchantmentHelper.setEnchantments(map, stack);
+ EnchantmentHelper.set(map, stack);
processItemStack(stack);
}
});
}
private void processItem(Item item) {
- NonNullList<ItemStack> items = NonNullList.create();
+ DefaultedList<ItemStack> items = DefaultedList.create();
try {
- item.fillItemGroup(item.getGroup(), items);
+ item.addStacksForDisplay(item.getItemGroup(), items);
items.forEach(stackList::add);
} catch (NullPointerException e) {
// if (item == Items.ENCHANTED_BOOK) {
@@ -75,7 +75,7 @@ public class ClientListener implements DoneLoading, RecipeLoadListener {
}
@Override
- public void recipesLoaded(net.minecraft.item.crafting.RecipeManager recipeManager) {
+ public void recipesLoaded(RecipeManager recipeManager) {
REIRecipeManager.instance().RecipesLoaded(recipeManager);
}
}
diff --git a/src/main/java/me/shedaniel/Core.java b/src/main/java/me/shedaniel/Core.java
index 61f985db1..b5c28f61b 100755
--- a/src/main/java/me/shedaniel/Core.java
+++ b/src/main/java/me/shedaniel/Core.java
@@ -1,22 +1,32 @@
package me.shedaniel;
+import me.shedaniel.library.KeyBindManager;
+import me.shedaniel.listenerdefinitions.IEvent;
+import me.shedaniel.listenerdefinitions.PacketAdder;
+import me.shedaniel.listeners.DrawContainerListener;
+import me.shedaniel.listeners.ResizeListener;
import me.shedaniel.network.CheatPacket;
import me.shedaniel.network.DeletePacket;
-import net.minecraft.network.EnumPacketDirection;
-import org.dimdev.rift.listener.PacketAdder;
+import me.shedaniel.plugin.VanillaPlugin;
+import net.fabricmc.api.ModInitializer;
+import net.minecraft.network.NetworkSide;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
/**
* Created by James on 7/27/2018.
*/
-public class Core implements PacketAdder {
+public class Core implements ModInitializer, PacketAdder {
@Override
public void registerHandshakingPackets(PacketRegistrationReceiver receiver) {
}
@Override
public void registerPlayPackets(PacketRegistrationReceiver receiver) {
- receiver.registerPacket(EnumPacketDirection.SERVERBOUND, CheatPacket.class);
- receiver.registerPacket(EnumPacketDirection.SERVERBOUND, DeletePacket.class);
+ receiver.registerPacket(NetworkSide.SERVER, CheatPacket.class);
+ receiver.registerPacket(NetworkSide.SERVER, DeletePacket.class);
}
@Override
@@ -29,5 +39,32 @@ public class Core implements PacketAdder {
}
+ private static List<IEvent> events = new LinkedList<>();
+
+ @Override
+ public void onInitialize() {
+ registerEvents();
+ }
+
+ private void registerEvents() {
+ registerEvent(new DrawContainerListener());
+ registerEvent(new ResizeListener());
+ registerEvent(new KeyBindManager());
+ registerEvent(new VanillaPlugin());
+ registerEvent(new ClientListener());
+ }
+
+ public static void registerEvent(IEvent event) {
+ events.add(event);
+ }
+
+ public static <T> List<T> getListeners(Class<T> listenerInterface) {
+ List<T> list = new ArrayList<>();
+ events.forEach(iEvent -> {
+ if (listenerInterface.isAssignableFrom(iEvent.getClass()))
+ list.add(listenerInterface.cast(iEvent));
+ });
+ return list;
+ }
}
diff --git a/src/main/java/me/shedaniel/api/IREIPlugin.java b/src/main/java/me/shedaniel/api/IREIPlugin.java
index 98060163d..bc80f40c9 100755
--- a/src/main/java/me/shedaniel/api/IREIPlugin.java
+++ b/src/main/java/me/shedaniel/api/IREIPlugin.java
@@ -1,9 +1,11 @@
package me.shedaniel.api;
+import me.shedaniel.listenerdefinitions.IEvent;
+
/**
* Created by James on 7/27/2018.
*/
-public interface IREIPlugin {
+public interface IREIPlugin extends IEvent {
public void register();
}
diff --git a/src/main/java/me/shedaniel/gui/GuiItemList.java b/src/main/java/me/shedaniel/gui/GuiItemList.java
index f23ab9f85..b4f913c7c 100755
--- a/src/main/java/me/shedaniel/gui/GuiItemList.java
+++ b/src/main/java/me/shedaniel/gui/GuiItemList.java
@@ -1,21 +1,23 @@
package me.shedaniel.gui;
+import com.mojang.blaze3d.platform.GlStateManager;
import me.shedaniel.ClientListener;
+import me.shedaniel.Core;
import me.shedaniel.gui.widget.Button;
import me.shedaniel.gui.widget.Control;
import me.shedaniel.gui.widget.REISlot;
import me.shedaniel.gui.widget.TextBox;
-import me.shedaniel.listenerdefinitions.IMixinGuiContainer;
-import net.minecraft.client.MainWindow;
-import net.minecraft.client.Minecraft;
-import net.minecraft.client.gui.inventory.GuiContainer;
-import net.minecraft.client.renderer.GlStateManager;
-import net.minecraft.entity.player.EntityPlayer;
+import me.shedaniel.listenerdefinitions.IMixinContainerGui;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.client.gui.ContainerGui;
+import net.minecraft.client.network.ClientPlayerEntity;
+import net.minecraft.client.util.Window;
import net.minecraft.item.ItemStack;
-import net.minecraft.util.ResourceLocation;
+import net.minecraft.text.TextComponent;
+import net.minecraft.text.TranslatableTextComponent;
+import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper;
-import net.minecraft.util.registry.IRegistry;
-import net.minecraft.util.text.TextComponentTranslation;
+import net.minecraft.util.registry.Registry;
import java.awt.*;
import java.util.ArrayList;
@@ -27,7 +29,7 @@ import java.util.stream.Stream;
public class GuiItemList extends Drawable {
public static final int FOOTERSIZE = 44;
- private GuiContainer overlayedGui;
+ private ContainerGui overlayedGui;
private static int page = 0;
private ArrayList<REISlot> displaySlots;
protected ArrayList<Control> controls;
@@ -42,7 +44,7 @@ public class GuiItemList extends Drawable {
private int oldGuiLeft = 0;
private boolean cheatMode = false;
- public GuiItemList(GuiContainer overlayedGui) {
+ public GuiItemList(ContainerGui overlayedGui) {
super(calculateRect(overlayedGui));
displaySlots = new ArrayList<>();
controls = new ArrayList<>();
@@ -52,9 +54,9 @@ public class GuiItemList extends Drawable {
}
public boolean canCheat() {
- EntityPlayer player = Minecraft.getInstance().player;
+ ClientPlayerEntity player = MinecraftClient.getInstance().player;
if (cheatMode) {
- if (!player.hasPermissionLevel(1)) {
+ if (!player.allowsPermissionLevel(1)) {
cheatClicked(0);
return false;
}
@@ -63,26 +65,25 @@ public class GuiItemList extends Drawable {
return false;
}
- private static Rectangle calculateRect(GuiContainer overlayedGui) {
- MainWindow res = REIRenderHelper.getResolution();
- int startX = (((IMixinGuiContainer) overlayedGui).getGuiLeft() + ((IMixinGuiContainer) overlayedGui).getXSize()) + 10;
+ private static Rectangle calculateRect(ContainerGui overlayedGui) {
+ Window res = REIRenderHelper.getResolution();
+ int startX = (((IMixinContainerGui) overlayedGui).getGuiLeft() + ((IMixinContainerGui) overlayedGui).getXSize()) + 10;
int width = res.getScaledWidth() - startX;
return new Rectangle(startX, 0, width, res.getScaledHeight());
}
protected void resize() {
- MainWindow res = REIRenderHelper.getResolution();
+ Window res = REIRenderHelper.getResolution();
- if (overlayedGui != Minecraft.getInstance().currentScreen) {
- if (Minecraft.getInstance().currentScreen instanceof GuiContainer) {
- overlayedGui = (GuiContainer) Minecraft.getInstance().currentScreen;
-
+ if (overlayedGui != MinecraftClient.getInstance().currentGui) {
+ if (MinecraftClient.getInstance().currentGui instanceof ContainerGui) {
+ overlayedGui = (ContainerGui) MinecraftClient.getInstance().currentGui;
} else {
needsResize = true;
return;
}
}
- oldGuiLeft = ((IMixinGuiContainer) overlayedGui).getGuiLeft();
+ oldGuiLeft = ((IMixinContainerGui) overlayedGui).getGuiLeft();
rect = calculateRect(overlayedGui);
page = 0;
buttonLeft = new Button(rect.x, rect.y + 3, 16, 20, "<");
@@ -122,7 +123,7 @@ public class GuiItemList extends Drawable {
private void calculateSlots() {
int x = rect.x, y = rect.y + 20;
- MainWindow res = REIRenderHelper.getResolution();
+ Window res = REIRenderHelper.getResolution();
displaySlots.clear();
int xOffset = 0, yOffset = 0, row = 0, perRow = 0, currentX = 0, currentY = 0;
while (true) {
@@ -165,13 +166,13 @@ public class GuiItemList extends Drawable {
return;
if (needsResize == true)
resize();
- if (oldGuiLeft != ((IMixinGuiContainer) overlayedGui).getGuiLeft())
+ if (oldGuiLeft != ((IMixinContainerGui) overlayedGui).getGuiLeft())
resize();
GlStateManager.pushMatrix();
updateButtons();
controls.forEach(Control::draw);
String header = String.format("%s/%s", page + 1, ((int) Math.floor(view.size() / displaySlots.size())) + 1);
- Minecraft.getInstance().fontRenderer.drawStringWithShadow(header, rect.x + (rect.width / 2) - (Minecraft.getInstance().fontRenderer.getStringWidth(header) / 2), rect.y + 10, -1);
+ MinecraftClient.getInstance().fontRenderer.drawWithShadow(header, rect.x + (rect.width / 2) - (MinecraftClient.getInstance().fontRenderer.getStringWidth(header) / 2), rect.y + 10, -1);
GlStateManager.popMatrix();
}
@@ -217,10 +218,10 @@ public class GuiItemList extends Drawable {
private String getCheatModeText() {
if (cheatMode) {
- TextComponentTranslation cheat = new TextComponentTranslation("text.rei.cheat", new Object[]{null});
+ TextComponent cheat = new TranslatableTextComponent("text.rei.cheat", new Object[]{null});
return cheat.getFormattedText();
}
- TextComponentTranslation noCheat = new TextComponentTranslation("text.rei.nocheat", new Object[]{null});
+ TextComponent noCheat = new TranslatableTextComponent("text.rei.nocheat", new Object[]{null});
return noCheat.getFormattedText();
}
@@ -228,24 +229,27 @@ public class GuiItemList extends Drawable {
String searchText = searchBox.getText();
view.clear();
List<ItemStack> stacks = new ArrayList<>();
- Arrays.stream(searchText.split("\\|")).forEachOrdered(s -> {
- List<SearchArgument> arguments = new ArrayList<>();
- while (s.startsWith(" ")) s = s.substring(1);
- while (s.endsWith(" ")) s = s.substring(0, s.length());
- if (s.startsWith("@-") || s.startsWith("-@"))
- arguments.add(new SearchArgument(SearchArgument.ArgumentType.MOD, s.substring(2), false));
- else if (s.startsWith("@"))
- arguments.add(new SearchArgument(SearchArgument.ArgumentType.MOD, s.substring(1), true));
- else if (s.startsWith("#-") || s.startsWith("-#"))
- arguments.add(new SearchArgument(SearchArgument.ArgumentType.TOOLTIP, s.substring(2), false));
- else if (s.startsWith("#"))
- arguments.add(new SearchArgument(SearchArgument.ArgumentType.TOOLTIP, s.substring(1), true));
- else if (s.startsWith("-"))
- arguments.add(new SearchArgument(SearchArgument.ArgumentType.TEXT, s.substring(1), false));
- else
- arguments.add(new SearchArgument(SearchArgument.ArgumentType.TEXT, s, true));
- ClientListener.stackList.stream().filter(itemStack -> filterItem(itemStack, arguments)).forEachOrdered(stacks::add);
- });
+ if (ClientListener.stackList == null && !Registry.ITEM.isEmpty())
+ Core.getListeners(ClientListener.class).forEach(ClientListener::onDoneLoading);
+ if (ClientListener.stackList != null)
+ Arrays.stream(searchText.split("\\|")).forEachOrdered(s -> {
+ List<SearchArgument> arguments = new ArrayList<>();
+ while (s.startsWith(" ")) s = s.substring(1);
+ while (s.endsWith(" ")) s = s.substring(0, s.length());
+ if (s.startsWith("@-") || s.startsWith("-@"))
+ arguments.add(new SearchArgument(SearchArgument.ArgumentType.MOD, s.substring(2), false));
+ else if (s.startsWith("@"))
+ arguments.add(new SearchArgument(SearchArgument.ArgumentType.MOD, s.substring(1), true));
+ else if (s.startsWith("#-") || s.startsWith("-#"))
+ arguments.add(new SearchArgument(SearchArgument.ArgumentType.TOOLTIP, s.substring(2), false));
+ else if (s.startsWith("#"))
+ arguments.add(new SearchArgument(SearchArgument.ArgumentType.TOOLTIP, s.substring(1), true));
+ else if (s.startsWith("-"))
+ arguments.add(new SearchArgument(SearchArgument.ArgumentType.TEXT, s.substring(1), false));
+ else
+ arguments.add(new SearchArgument(SearchArgument.ArgumentType.TEXT, s, true));
+ ClientListener.stackList.stream().filter(itemStack -> filterItem(itemStack, arguments)).forEachOrdered(stacks::add);
+ });
view.addAll(stacks.stream().distinct().collect(Collectors.toList()));
page = 0;
fillSlots();
@@ -253,7 +257,7 @@ public class GuiItemList extends Drawable {
private boolean filterItem(ItemStack itemStack, List<SearchArgument> arguments) {
String mod = getMod(itemStack);
- List<String> toolTipsList = REIRenderHelper.getOverlayedGui().getItemToolTip(itemStack);
+ List<String> toolTipsList = REIRenderHelper.getOverlayedGui().getStackTooltip(itemStack);
String toolTipsMixed = toolTipsList.stream().skip(1).collect(Collectors.joining()).toLowerCase();
String allMixed = Stream.of(itemStack.getDisplayName().getString(), toolTipsMixed).collect(Collectors.joining()).toLowerCase();
for(SearchArgument searchArgument : arguments.stream().filter(searchArgument -> !searchArgument.isInclude()).collect(Collectors.toList())) {
@@ -295,7 +299,7 @@ public class GuiItemList extends Drawable {
private String getMod(ItemStack stack) {
if (stack != null && !stack.isEmpty()) {
- ResourceLocation location = IRegistry.ITEM.getKey(stack.getItem());
+ Identifier location = Registry.ITEM.getId(stack.getItem());
return location.getNamespace();