diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2018-12-31 13:12:25 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2018-12-31 13:12:25 +0800 |
| commit | fee12aa0885da204ec874cd5ada371c42501c873 (patch) | |
| tree | 880596f5f463e08762a56b1cb1d7008aaed1899d /src | |
| parent | 1b14c5142bb49db9af078b5c753bc22ce35a40cc (diff) | |
| download | RoughlyEnoughItems-fee12aa0885da204ec874cd5ada371c42501c873.tar.gz RoughlyEnoughItems-fee12aa0885da204ec874cd5ada371c42501c873.tar.bz2 RoughlyEnoughItems-fee12aa0885da204ec874cd5ada371c42501c873.zip | |
packetadder wip
Diffstat (limited to 'src')
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(); |
