diff options
18 files changed, 178 insertions, 113 deletions
diff --git a/build.gradle b/build.gradle index 22a59db90..8853ba910 100644 --- a/build.gradle +++ b/build.gradle @@ -16,7 +16,7 @@ apply plugin: 'org.spongepowered.mixin' apply plugin: 'java' group 'me.shedaniel' -version '2.0.0.9' +version '2.0.0.10' archivesBaseName = 'RoughlyEnoughItems' sourceCompatibility = 1.8 @@ -26,11 +26,8 @@ repositories { mavenCentral() maven { url 'https://www.dimdev.org/maven/' } maven { url 'https://www.jitpack.io' } -} - -mixin { - defaultObfuscationEnv notch - add sourceSets.main, 'mixins.roughlyenoughitems.refmap.json' + maven { url 'https://repo.spongepowered.org/maven/' } + maven { url "http://repo.strezz.org/artifactory/list/Strezz-Central" } } dependencies { @@ -38,6 +35,11 @@ dependencies { implementation 'com.google.code.gson:gson:2.8.5' } +mixin { + defaultObfuscationEnv notch + add sourceSets.main, 'mixins.roughlyenoughitems.refmap.json' +} + minecraft { version = '1.13.2' mappings = 'snapshot_20181130' diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java index 62b59a9fc..84ca49c6d 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java @@ -3,20 +3,11 @@ package me.shedaniel.rei; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import me.shedaniel.rei.api.IRecipePlugin; -import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.ConfigHelper; -import me.shedaniel.rei.client.RecipeHelper; import me.shedaniel.rei.listeners.IListener; -import me.shedaniel.rei.network.CreateItemsMessage; -import me.shedaniel.rei.network.DeleteItemsMessage; -import me.shedaniel.rei.plugin.DefaultPlugin; import net.minecraft.util.ResourceLocation; -import net.minecraft.util.registry.IRegistry; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.dimdev.rift.listener.MessageAdder; -import org.dimdev.rift.network.Message; -import org.dimdev.riftloader.listener.InitializationListener; import java.util.LinkedList; import java.util.List; diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsInit.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsInit.java index 3db31334c..5a1801fb0 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsInit.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsInit.java @@ -2,8 +2,8 @@ package me.shedaniel.rei; import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.RecipeHelper; -import me.shedaniel.rei.network.CreateItemsMessage; -import me.shedaniel.rei.network.DeleteItemsMessage; +import me.shedaniel.rei.network.CreateItemsPacket; +import me.shedaniel.rei.network.DeleteItemsPacket; import me.shedaniel.rei.plugin.DefaultPlugin; import net.minecraft.util.registry.IRegistry; import org.dimdev.rift.listener.MessageAdder; @@ -15,7 +15,7 @@ import org.spongepowered.asm.mixin.Mixins; import static me.shedaniel.rei.RoughlyEnoughItemsCore.CREATE_ITEMS_PACKET; import static me.shedaniel.rei.RoughlyEnoughItemsCore.DELETE_ITEMS_PACKET; -public class RoughlyEnoughItemsInit implements InitializationListener, MessageAdder { +public class RoughlyEnoughItemsInit implements InitializationListener { @Override public void onInitialization() { @@ -34,10 +34,4 @@ public class RoughlyEnoughItemsInit implements InitializationListener, MessageAd RoughlyEnoughItemsCore.registerPlugin(RoughlyEnoughItemsCore.DEFAULT_PLUGIN, new DefaultPlugin()); } - @Override - public void registerMessages(IRegistry<Class<? extends Message>> registry) { - registry.put(DELETE_ITEMS_PACKET, DeleteItemsMessage.class); - registry.put(CREATE_ITEMS_PACKET, CreateItemsMessage.class); - } - } diff --git a/src/main/java/me/shedaniel/rei/client/ClientHelper.java b/src/main/java/me/shedaniel/rei/client/ClientHelper.java index 4668f552a..3afefc48b 100644 --- a/src/main/java/me/shedaniel/rei/client/ClientHelper.java +++ b/src/main/java/me/shedaniel/rei/client/ClientHelper.java @@ -2,6 +2,7 @@ package me.shedaniel.rei.client; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; +import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.IRecipeCategory; import me.shedaniel.rei.api.IRecipeDisplay; import me.shedaniel.rei.gui.ContainerGuiOverlay; @@ -9,11 +10,13 @@ import me.shedaniel.rei.gui.widget.ConfigWidget; import me.shedaniel.rei.gui.widget.RecipeViewingWidget; import me.shedaniel.rei.listeners.ClientLoaded; import me.shedaniel.rei.listeners.IMixinGuiContainer; -import me.shedaniel.rei.network.CreateItemsMessage; -import me.shedaniel.rei.network.DeleteItemsMessage; +import me.shedaniel.rei.listeners.IMixinKeyBinding; +import me.shedaniel.rei.network.CreateItemsPacket; +import me.shedaniel.rei.network.DeleteItemsPacket; import net.minecraft.client.Minecraft; import net.minecraft.client.MouseHelper; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.resources.I18n; import net.minecraft.client.settings.KeyBinding; import net.minecraft.client.util.InputMappings; import net.minecraft.enchantment.Enchantment; @@ -21,7 +24,6 @@ import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.network.EnumPacketDirection; import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import net.minecraft.util.registry.IRegistry; @@ -84,14 +86,14 @@ public class ClientHelper implements ClientLoaded, KeyBindingAdder { } public static void sendDeletePacket() { - DeleteItemsMessage message = new DeleteItemsMessage(); - Minecraft.getInstance().getConnection().sendPacket(message.toPacket(EnumPacketDirection.CLIENTBOUND)); + DeleteItemsPacket message = new DeleteItemsPacket(); + Minecraft.getInstance().getConnection().sendPacket(message); } public static boolean tryCheatingStack(ItemStack cheatedStack) { try { - CreateItemsMessage message = new CreateItemsMessage(cheatedStack.copy()); - Minecraft.getInstance().getConnection().sendPacket(message.toPacket(EnumPacketDirection.CLIENTBOUND)); + CreateItemsPacket message = new CreateItemsPacket(cheatedStack.copy()); + Minecraft.getInstance().getConnection().sendPacket(message); return true; } catch (Exception e) { return false; @@ -167,9 +169,21 @@ public class ClientHelper implements ClientLoaded, KeyBindingAdder { public Collection<? extends KeyBinding> getKeyBindings() { String category = "key.rei.category"; List<KeyBinding> keyBindings = Lists.newArrayList(); - keyBindings.add(RECIPE = new KeyBinding(RECIPE_KEYBIND.toString().replaceAll(":", "."), InputMappings.Type.KEYSYM, 82, category)); - keyBindings.add(USAGE = new KeyBinding(USAGE_KEYBIND.toString().replaceAll(":", "."), InputMappings.Type.KEYSYM, 85, category)); - keyBindings.add(HIDE = new KeyBinding(HIDE_KEYBIND.toString().replaceAll(":", "."), InputMappings.Type.KEYSYM, 79, category)); + keyBindings.add(RECIPE = createKeyBinding(RECIPE_KEYBIND, InputMappings.Type.KEYSYM, 82, category)); + keyBindings.add(USAGE = createKeyBinding(USAGE_KEYBIND, InputMappings.Type.KEYSYM, 85, category)); + keyBindings.add(HIDE = createKeyBinding(HIDE_KEYBIND, InputMappings.Type.KEYSYM, 79, category)); + addCategoryIfMissing(RECIPE, category); return keyBindings; } + + private void addCategoryIfMissing(KeyBinding keyBinding, String category) { + if (!((IMixinKeyBinding) keyBinding).hasCategory(category)) + ((IMixinKeyBinding) keyBinding).addCategory(category); + } + + private KeyBinding createKeyBinding(ResourceLocation location, InputMappings.Type inputType, int keyCode, String category) { + RoughlyEnoughItemsCore.LOGGER.info("Registering: key." + location.toString().replaceAll(":", ".") + " in " + category); + return new KeyBinding("key." + location.toString().replaceAll(":", "."), inputType, keyCode, category); + } + } diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ConfigWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/ConfigWidget.java index 60b184150..93e41c655 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/ConfigWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/ConfigWidget.java @@ -115,7 +115,7 @@ public class ConfigWidget extends GuiScreen { @Override public void render(int int_1, int int_2, float float_1) { - drawBackground(0); + drawWorldBackground(0); super.render(int_1, int_2, float_1); widgets.forEach(widget -> { RenderHelper.disableStandardItemLighting(); diff --git a/src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java index 060526947..88f3ca694 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java @@ -36,7 +36,7 @@ public abstract class CraftableToggleButtonWidget extends ButtonWidget { public void draw(int mouseX, int mouseY, float partialTicks) { super.draw(mouseX, mouseY, partialTicks); - RenderHelper.enableStandardItemLighting(); + RenderHelper.enableGUIStandardItemLighting(); this.itemRenderer.zLevel = 0.0F; this.itemRenderer.renderItemAndEffectIntoGUI(new ItemStack(Blocks.CRAFTING_TABLE), x + 2, y + 2); this.itemRenderer.zLevel = 0.0F; diff --git a/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java index 25d3a4881..e2d6a6bdb 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/ItemSlotWidget.java @@ -65,7 +65,7 @@ public class ItemSlotWidget extends Gui implements HighlightableWidget { } if (itemStack.isEmpty()) return; - RenderHelper.enableStandardItemLighting(); + RenderHelper.enableGUIStandardItemLighting(); ItemRenderer itemRenderer = Minecraft.getInstance().getItemRenderer(); itemRenderer.zLevel = 200.0F; itemRenderer.renderItemAndEffectIntoGUI(itemStack, x, y); diff --git a/src/main/java/me/shedaniel/rei/gui/widget/RecipeViewingWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/RecipeViewingWidget.java index f9a027951..7cbd416b8 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/RecipeViewingWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/RecipeViewingWidget.java @@ -271,7 +271,7 @@ public class RecipeViewingWidget extends GuiScreen { @Override public void drawDefaultBackground() { - drawBackground(0); + drawWorldBackground(0); GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F); RenderHelper.disableStandardItemLighting(); this.mc.getTextureManager().bindTexture(CHEST_GUI_TEXTURE); diff --git a/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java index f74975a1b..ea9a895b2 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java @@ -78,7 +78,7 @@ public class TabWidget extends Gui implements HighlightableWidget { this.drawTexturedModalRect(bounds.x, bounds.y + 2, selected ? 28 : 0, 192, 28, (selected ? 30 : 27)); this.zLevel = 100.0F; this.itemRenderer.zLevel = 100.0F; - RenderHelper.enableStandardItemLighting(); + RenderHelper.enableGUIStandardItemLighting(); this.itemRenderer.renderItemAndEffectIntoGUI(getItemStack(), l, i1); this.itemRenderer.renderItemOverlays(Minecraft.getInstance().fontRenderer, getItemStack(), l, i1); GlStateManager.disableLighting(); diff --git a/src/main/java/me/shedaniel/rei/listeners/IMixinKeyBinding.java b/src/main/java/me/shedaniel/rei/listeners/IMixinKeyBinding.java new file mode 100644 index 000000000..d8d4e4f44 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/listeners/IMixinKeyBinding.java @@ -0,0 +1,11 @@ +package me.shedaniel.rei.listeners; + +public interface IMixinKeyBinding { + + public boolean addCategory(String keyBindingCategory, int id); + + public boolean addCategory(String keyBindingCategory); + + public boolean hasCategory(String keyCategory); + +} diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinGuiContainerCreative.java b/src/main/java/me/shedaniel/rei/mixin/MixinGuiContainerCreative.java index fc038fce9..126dce9ab 100644 --- a/src/main/java/me/shedaniel/rei/mixin/MixinGuiContainerCreative.java +++ b/src/main/java/me/shedaniel/rei/mixin/MixinGuiContainerCreative.java @@ -17,8 +17,6 @@ public abstract class MixinGuiContainerCreative extends InventoryEffectRenderer @Shadow private static int selectedTabIndex; @Shadow - private boolean field_2888; - @Shadow private boolean field_195377_F; public MixinGuiContainerCreative(Container inventorySlotsIn) { diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinKeyBinding.java b/src/main/java/me/shedaniel/rei/mixin/MixinKeyBinding.java new file mode 100644 index 000000000..5c5f13993 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/mixin/MixinKeyBinding.java @@ -0,0 +1,35 @@ +package me.shedaniel.rei.mixin; + +import me.shedaniel.rei.listeners.IMixinKeyBinding; +import net.minecraft.client.settings.KeyBinding; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +import java.util.Map; + +@Mixin(KeyBinding.class) +public class MixinKeyBinding implements IMixinKeyBinding { + + @Shadow @Final private static Map<String, Integer> CATEGORY_ORDER; + + @Override + public boolean addCategory(String keyBindingCategory, int id) { + if (!CATEGORY_ORDER.containsKey(keyBindingCategory)) { + CATEGORY_ORDER.put(keyBindingCategory, id); + return true; + } + return false; + } + + @Override + public boolean addCategory(String keyBindingCategory) { + return addCategory(keyBindingCategory, CATEGORY_ORDER.size() + 1); + } + + @Override + public boolean hasCategory(String keyCategory) { + return CATEGORY_ORDER.containsKey(keyCategory); + } + +} diff --git a/src/main/java/me/shedaniel/rei/network/CreateItemsMessage.java b/src/main/java/me/shedaniel/rei/network/CreateItemsMessage.java deleted file mode 100644 index 4d1f2c3b9..000000000 --- a/src/main/java/me/shedaniel/rei/network/CreateItemsMessage.java +++ /dev/null @@ -1,38 +0,0 @@ -package me.shedaniel.rei.network; - -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.text.ChatType; -import net.minecraft.util.text.TextComponentTranslation; -import org.dimdev.rift.network.Message; -import org.dimdev.rift.network.ServerMessageContext; - -public class CreateItemsMessage extends Message { - - private ItemStack stack; - - public CreateItemsMessage(ItemStack stack) { - this.stack = stack; - } - - @Override - public void write(PacketBuffer buffer) { - buffer.writeItemStack(stack); - } - - @Override - public void read(PacketBuffer buffer) { - stack = buffer.readItemStack(); - } - - @Override - public void process(ServerMessageContext context) { - EntityPlayerMP player = context.getSender(); - if (player.inventory.addItemStackToInventory(stack.copy())) - player.sendMessage(new TextComponentTranslation("text.rei.cheat_items", stack.getDisplayName().getFormattedText(), stack.getCount(), player.getName()), ChatType.SYSTEM); - else - player.sendMessage(new TextComponentTranslation("text.rei.failed_cheat_items"), ChatType.SYSTEM); - } - -} diff --git a/src/main/java/me/shedaniel/rei/network/CreateItemsPacket.java b/src/main/java/me/shedaniel/rei/network/CreateItemsPacket.java new file mode 100644 index 000000000..003ea09fe --- /dev/null +++ b/src/main/java/me/shedaniel/rei/network/CreateItemsPacket.java @@ -0,0 +1,49 @@ +package me.shedaniel.rei.network; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetHandlerPlayServer; +import net.minecraft.network.Packet; +import net.minecraft.network.PacketBuffer; +import net.minecraft.network.play.INetHandlerPlayServer; +import net.minecraft.util.text.ChatType; +import net.minecraft.util.text.TextComponentTranslation; +import org.dimdev.rift.network.Message; +import org.dimdev.rift.network.ServerMessageContext; + +import java.io.IOException; + +public class CreateItemsPacket implements Packet<INetHandlerPlayServer> { + + private ItemStack stack; + + public CreateItemsPacket() { + } + + public CreateItemsPacket(ItemStack stack) { + this.stack = stack; + } + + @Override + public void readPacketData(PacketBuffer packetBuffer) throws IOException { + stack = ItemStack.read(packetBuffer.readCompoundTag()); + } + + @Override + public void writePacketData(PacketBuffer packetBuffer) throws IOException { + NBTTagCompound tag = new NBTTagCompound(); + stack.write(tag); + packetBuffer.writeCompoundTag(tag); + } + + @Override + public void processPacket(INetHandlerPlayServer iNetHandlerPlayServer) { + NetHandlerPlayServer server = (NetHandlerPlayServer) iNetHandlerPlayServer; + EntityPlayerMP player = server.player; + if (player.inventory.addItemStackToInventory(stack.copy())) + player.sendMessage(new TextComponentTranslation("text.rei.cheat_items", stack.getDisplayName().getFormattedText(), stack.getCount(), player.getScoreboardName()), ChatType.SYSTEM); + else player.sendMessage(new TextComponentTranslation("text.rei.failed_cheat_items"), ChatType.SYSTEM); + } + +} diff --git a/src/main/java/me/shedaniel/rei/network/DeleteItemsMessage.java b/src/main/java/me/shedaniel/rei/network/DeleteItemsMessage.java deleted file mode 100644 index dc982e9f6..000000000 --- a/src/main/java/me/shedaniel/rei/network/DeleteItemsMessage.java +++ /dev/null @@ -1,27 +0,0 @@ -package me.shedaniel.rei.network; - -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import org.dimdev.rift.network.Message; -import org.dimdev.rift.network.ServerMessageContext; - -public class DeleteItemsMessage extends Message { - - @Override - public void write(PacketBuffer buffer) { - - } - - @Override - public void read(PacketBuffer buffer) { - - } - - @Override - public void process(ServerMessageContext context) { - EntityPlayerMP player = context.getSender(); - if (!player.inventory.getItemStack().isEmpty()) - player.inventory.setItemStack(ItemStack.EMPTY); - } -} diff --git a/src/main/java/me/shedaniel/rei/network/DeleteItemsPacket.java b/src/main/java/me/shedaniel/rei/network/DeleteItemsPacket.java new file mode 100644 index 000000000..503f8ce66 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/network/DeleteItemsPacket.java @@ -0,0 +1,34 @@ +package me.shedaniel.rei.network; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.network.NetHandlerPlayServer; +import net.minecraft.network.Packet; +import net.minecraft.network.PacketBuffer; +import net.minecraft.network.play.INetHandlerPlayServer; + +import java.io.IOException; + +public class DeleteItemsPacket implements Packet<INetHandlerPlayServer> { + + @Override + public void readPacketData(PacketBuffer packetBuffer) throws IOException { + + } + + @Override + public void writePacketData(PacketBuffer packetBuffer) throws IOException { + + } + + @Override + public void processPacket(INetHandlerPlayServer iNetHandlerPlayServer) { + NetHandlerPlayServer server = (NetHandlerPlayServer) iNetHandlerPlayServer; + EntityPlayerMP player = server.player; + + if (!player.inventory.getItemStack().isEmpty()) { + player.inventory.setItemStack(ItemStack.EMPTY); + } + } + +} diff --git a/src/main/resources/riftmod.json b/src/main/resources/riftmod.json index 09332479a..761e3bab0 100644 --- a/src/main/resources/riftmod.json +++ b/src/main/resources/riftmod.json @@ -1,12 +1,13 @@ { "id": "roughlyenoughitems", "name": "RoughlyEnoughItems", - "version": "2.0.0.9", + "version": "2.0.0.10", "authors": [ "Danielshe" ], "listeners": [ - "me.shedaniel.rei.RoughlyEnoughItemsInit" + "me.shedaniel.rei.RoughlyEnoughItemsInit", + "me.shedaniel.rei.client.ClientHelper" ], "url": "https://shedaniel.me", "description": "To allow players to view items and recipes." diff --git a/src/main/resources/roughlyenoughitems.client.json b/src/main/resources/roughlyenoughitems.client.json index ec138e7c3..77e4857fe 100755 --- a/src/main/resources/roughlyenoughitems.client.json +++ b/src/main/resources/roughlyenoughitems.client.json @@ -1,6 +1,9 @@ { "required": true, + "minVersion": "0.7.7", + "target": "@env(DEFAULT)", "package": "me.shedaniel.rei.mixin", + "refmap": "mixins.roughlyenoughitems.refmap.json", "compatibilityLevel": "JAVA_8", "mixins": [ "MixinGuiContainer", @@ -9,9 +12,7 @@ "MixinGuiCrafting", "MixinGuiContainerCreative", "MixinPotionBrewing", - "MixinGuiRecipeBook" - ], - "injectors": { - "defaultRequire": 1 - } + "MixinGuiRecipeBook", + "MixinKeyBinding" + ] } |
