6 Commits
19 changed files with 115 additions and 105 deletions
+2
View File
@@ -23,3 +23,5 @@ run
# Files from Forge MDK # Files from Forge MDK
forge*changelog.txt forge*changelog.txt
/mcmodsrepo
+5 -4
View File
@@ -4,24 +4,25 @@ buildscript {
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '4.1.+', changing: true classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true
} }
} }
apply plugin: 'net.minecraftforge.gradle' apply plugin: 'net.minecraftforge.gradle'
// Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. // Only edit below this line, the above code adds and enables the necessary things for Forge to be setup.
apply plugin: 'eclipse' apply plugin: 'eclipse'
apply plugin: 'maven-publish' apply plugin: 'maven-publish'
apply from: 'https://raw.githubusercontent.com/SizableShrimp/Forge-Class-Remapper/main/classremapper.gradle'
version = '1.0.3' version = '1.0.3'
group = 'de.skate702.craftingkeys' // http://maven.apache.org/guides/mini/guide-naming-conventions.html group = 'de.skate702.craftingkeys' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = 'craftingkeys' archivesBaseName = 'craftingkeys'
sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly. sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = JavaLanguageVersion.of(17)
compileJava.options.encoding = "UTF-8" compileJava.options.encoding = "UTF-8"
println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch'))
minecraft { minecraft {
mappings channel: 'snapshot', version: '20201028-1.16.3' mappings channel: 'official', version: '1.19'
runs { runs {
client { client {
workingDirectory project.file('run') workingDirectory project.file('run')
@@ -68,7 +69,7 @@ minecraft {
sourceSets.main.resources { srcDir 'src/generated/resources' } sourceSets.main.resources { srcDir 'src/generated/resources' }
dependencies { dependencies {
minecraft 'net.minecraftforge:forge:1.16.5-36.2.20' minecraft 'net.minecraftforge:forge:1.19-41.0.62'
} }
// Example for how to get properties into the manifest for reading by the runtime.. // Example for how to get properties into the manifest for reading by the runtime..
+1 -1
View File
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip
@@ -1,12 +1,11 @@
package de.skate702.craftingkeys; package de.skate702.craftingkeys;
import net.minecraft.client.gui.screen.EnchantmentScreen; import net.minecraft.client.gui.screens.inventory.EnchantmentScreen;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.screen.inventory.*;
import net.minecraftforge.event.TickEvent; import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.ExtensionPoint; import net.minecraftforge.fml.IExtensionPoint;
import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import de.skate702.craftingkeys.manager.*; import de.skate702.craftingkeys.manager.*;
@@ -16,6 +15,14 @@ import de.skate702.craftingkeys.util.Util;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import net.minecraft.client.gui.screens.inventory.AnvilScreen;
import net.minecraft.client.gui.screens.inventory.BrewingStandScreen;
import net.minecraft.client.gui.screens.inventory.CraftingScreen;
import net.minecraft.client.gui.screens.inventory.DispenserScreen;
import net.minecraft.client.gui.screens.inventory.FurnaceScreen;
import net.minecraft.client.gui.screens.inventory.InventoryScreen;
import net.minecraft.client.gui.screens.inventory.MerchantScreen;
/** /**
* The Main Class of the Mod with the important onTick-Method. Some Methods are * The Main Class of the Mod with the important onTick-Method. Some Methods are
* based on the open-source Inventory Tweaks. Big Thanks for that! * based on the open-source Inventory Tweaks. Big Thanks for that!
@@ -37,7 +44,7 @@ public class CraftingKeys {
instance = this; instance = this;
MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(this);
ModLoadingContext.get().registerExtensionPoint(ExtensionPoint.DISPLAYTEST, () -> Pair.of(() -> "client side mod only", (remoteversionstring,networkbool) -> networkbool)); ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> "client side mod only", (remote, isServer) -> isServer));
Logger.info("load(e)", "Registered Mod."); Logger.info("load(e)", "Registered Mod.");
} }
@@ -51,55 +58,55 @@ public class CraftingKeys {
@SubscribeEvent @SubscribeEvent
public void onTick(TickEvent.ClientTickEvent tick) { public void onTick(TickEvent.ClientTickEvent tick) {
Screen currentScreen = Util.client.currentScreen; Screen currentScreen = Util.client.screen;
if (currentScreen != null) { if (currentScreen != null) {
if (currentScreen instanceof CraftingScreen) { if (currentScreen instanceof CraftingScreen) {
ContainerManager con = CraftingManager.getInstance( ContainerManager con = CraftingManager.getInstance(
((CraftingScreen) currentScreen).getContainer()); ((CraftingScreen) currentScreen).getMenu());
con.acceptKey(); con.acceptKey();
} else if (currentScreen instanceof InventoryScreen) { } else if (currentScreen instanceof InventoryScreen) {
ContainerManager con = InventoryManager.getInstance( ContainerManager con = InventoryManager.getInstance(
((InventoryScreen) currentScreen).getContainer()); ((InventoryScreen) currentScreen).getMenu());
con.acceptKey(); con.acceptKey();
} else if (currentScreen instanceof MerchantScreen) { } else if (currentScreen instanceof MerchantScreen) {
ContainerManager con = VillagerManager.getInstance( ContainerManager con = VillagerManager.getInstance(
((MerchantScreen) currentScreen).getContainer()); ((MerchantScreen) currentScreen).getMenu());
con.acceptKey(); con.acceptKey();
} else if (currentScreen instanceof FurnaceScreen) { } else if (currentScreen instanceof FurnaceScreen) {
ContainerManager con = FurnaceManager.getInstance( ContainerManager con = FurnaceManager.getInstance(
((FurnaceScreen) currentScreen).getContainer()); ((FurnaceScreen) currentScreen).getMenu());
con.acceptKey(); con.acceptKey();
} else if (currentScreen instanceof DispenserScreen) { } else if (currentScreen instanceof DispenserScreen) {
ContainerManager con = DispenserManager.getInstance( ContainerManager con = DispenserManager.getInstance(
((DispenserScreen) currentScreen).getContainer()); ((DispenserScreen) currentScreen).getMenu());
con.acceptKey(); con.acceptKey();
} else if (currentScreen instanceof BrewingStandScreen) { } else if (currentScreen instanceof BrewingStandScreen) {
ContainerManager con = BrewingManager.getInstance( ContainerManager con = BrewingManager.getInstance(
((BrewingStandScreen) currentScreen).getContainer()); ((BrewingStandScreen) currentScreen).getMenu());
con.acceptKey(); con.acceptKey();
} else if (currentScreen instanceof EnchantmentScreen) { } else if (currentScreen instanceof EnchantmentScreen) {
ContainerManager con = EnchantmentManager.getInstance( ContainerManager con = EnchantmentManager.getInstance(
((EnchantmentScreen) currentScreen).getContainer()); ((EnchantmentScreen) currentScreen).getMenu());
con.acceptKey(); con.acceptKey();
} else if (currentScreen instanceof AnvilScreen) { } else if (currentScreen instanceof AnvilScreen) {
ContainerManager con = AnvilManager.getInstance( ContainerManager con = AnvilManager.getInstance(
((AnvilScreen) currentScreen).getContainer()); ((AnvilScreen) currentScreen).getMenu());
con.acceptKey(); con.acceptKey();
} }
@@ -2,7 +2,7 @@ package de.skate702.craftingkeys.config;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.util.InputMappings; import com.mojang.blaze3d.platform.InputConstants;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
@@ -22,12 +22,12 @@ public class Config {
private static int keyLowerLeft = KeyEvent.VK_Z; private static int keyLowerLeft = KeyEvent.VK_Z;
private static int keyLowerCenter = KeyEvent.VK_X; private static int keyLowerCenter = KeyEvent.VK_X;
private static int keyLowerRight = KeyEvent.VK_C; private static int keyLowerRight = KeyEvent.VK_C;
private static int keyStack = Minecraft.getInstance().gameSettings.keyBindSneak.getKey().getKeyCode(); private static int keyStack = Minecraft.getInstance().options.keyShift.getKey().getValue();
private static int keyInteract = Minecraft.getInstance().gameSettings.keyBindSprint.getKey().getKeyCode(); private static int keyInteract = Minecraft.getInstance().options.keySprint.getKey().getValue();
private static final int keyDrop = KeyEvent.VK_SPACE; private static final int keyDrop = KeyEvent.VK_SPACE;
public static boolean isKeyDown(int keyCode) { public static boolean isKeyDown(int keyCode) {
return InputMappings.isKeyDown(Minecraft.getInstance().getMainWindow().getHandle(), keyCode); return InputConstants.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), keyCode);
} }
public static boolean isKeyTopLeftPressed() { public static boolean isKeyTopLeftPressed() {
@@ -1,7 +1,7 @@
package de.skate702.craftingkeys.manager; package de.skate702.craftingkeys.manager;
import de.skate702.craftingkeys.util.Logger; import de.skate702.craftingkeys.util.Logger;
import net.minecraft.inventory.container.Container; import net.minecraft.world.inventory.AbstractContainerMenu;
/** /**
* Manages a Anvil GUI Inventory. * Manages a Anvil GUI Inventory.
@@ -14,7 +14,7 @@ public class AnvilManager extends ContainerManager {
* *
* @param container The container from a crafting GUI * @param container The container from a crafting GUI
*/ */
private AnvilManager(Container container) { private AnvilManager(AbstractContainerMenu container) {
super(container); super(container);
} }
@@ -24,7 +24,7 @@ public class AnvilManager extends ContainerManager {
* @param container A container from a GUI * @param container A container from a GUI
* @return manager-singleton * @return manager-singleton
*/ */
public static AnvilManager getInstance(Container container) { public static AnvilManager getInstance(AbstractContainerMenu container) {
if (instance == null) { if (instance == null) {
instance = new AnvilManager(container); instance = new AnvilManager(container);
} else { } else {
@@ -1,7 +1,7 @@
package de.skate702.craftingkeys.manager; package de.skate702.craftingkeys.manager;
import de.skate702.craftingkeys.util.Logger; import de.skate702.craftingkeys.util.Logger;
import net.minecraft.inventory.container.Container; import net.minecraft.world.inventory.AbstractContainerMenu;
/** /**
* Manages a Brewing Stand GUI Inventory. * Manages a Brewing Stand GUI Inventory.
@@ -15,7 +15,7 @@ public class BrewingManager extends ContainerManager {
* *
* @param container The container from a crafting GUI * @param container The container from a crafting GUI
*/ */
private BrewingManager(Container container) { private BrewingManager(AbstractContainerMenu container) {
super(container); super(container);
} }
@@ -25,7 +25,7 @@ public class BrewingManager extends ContainerManager {
* @param container A container from a GUI * @param container A container from a GUI
* @return manager-singleton * @return manager-singleton
*/ */
public static BrewingManager getInstance(Container container) { public static BrewingManager getInstance(AbstractContainerMenu container) {
if (instance == null) { if (instance == null) {
instance = new BrewingManager(container); instance = new BrewingManager(container);
} else { } else {
@@ -5,13 +5,13 @@ import de.skate702.craftingkeys.config.Config;
import de.skate702.craftingkeys.util.InputUtil; import de.skate702.craftingkeys.util.InputUtil;
import de.skate702.craftingkeys.util.Logger; import de.skate702.craftingkeys.util.Logger;
import de.skate702.craftingkeys.util.Util; import de.skate702.craftingkeys.util.Util;
import net.minecraft.block.Blocks; import net.minecraft.world.level.block.Blocks;
import net.minecraft.client.gui.screen.inventory.InventoryScreen; import net.minecraft.client.gui.screens.inventory.InventoryScreen;
import net.minecraft.client.settings.KeyBinding; import net.minecraft.client.KeyMapping;
import net.minecraft.inventory.container.Container; import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.inventory.container.Slot; import net.minecraft.world.inventory.Slot;
import net.minecraft.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.world.item.ItemStack;
/** /**
* Provides all needed methods to handle and manage a gui inventory. Does also provide frames for own implementations. * Provides all needed methods to handle and manage a gui inventory. Does also provide frames for own implementations.
@@ -21,14 +21,14 @@ public abstract class ContainerManager {
/** /**
* The Container to work with. * The Container to work with.
*/ */
Container container; AbstractContainerMenu container;
/** /**
* Creates a new ContainerManager with the given container. * Creates a new ContainerManager with the given container.
* *
* @param container The container to work with * @param container The container to work with
*/ */
ContainerManager(Container container) { ContainerManager(AbstractContainerMenu container) {
this.container = container; this.container = container;
} }
@@ -39,7 +39,7 @@ public abstract class ContainerManager {
public void acceptKey() { public void acceptKey() {
// Get hovered slot and goal slotIndex of pressed key (if pressed) // Get hovered slot and goal slotIndex of pressed key (if pressed)
Slot currentHoveredSlot = InputUtil.getSlotAtMousePosition(Util.client.currentScreen); Slot currentHoveredSlot = InputUtil.getSlotAtMousePosition(Util.client.screen);
int slotIndex = specificKeyToSlotIndex(); int slotIndex = specificKeyToSlotIndex();
// Handle accepted key // Handle accepted key
@@ -61,7 +61,7 @@ public abstract class ContainerManager {
!Util.isHoldingStack()) { // MOVE FROM SLOT !Util.isHoldingStack()) { // MOVE FROM SLOT
Logger.info("acceptKey()", "Key for index " + slotIndex + " pressed."); Logger.info("acceptKey()", "Key for index " + slotIndex + " pressed.");
onSpecificKeyPressed(currentHoveredSlot.slotNumber, slotIndex); onSpecificKeyPressed(currentHoveredSlot.index, slotIndex);
} else if (Util.isHoldingStack()) { // MOVE FROM HAND } else if (Util.isHoldingStack()) { // MOVE FROM HAND
@@ -98,7 +98,7 @@ public abstract class ContainerManager {
// Handles Interaction with items held // Handles Interaction with items held
// Stack up on hand if equal or small enough, else throw held stack away // Stack up on hand if equal or small enough, else throw held stack away
if (Util.isHoldingStack() && getItemStack(getInteractionSlotIndex()) != null && ( if (Util.isHoldingStack() && getItemStack(getInteractionSlotIndex()) != null && (
!Util.getHeldStack().isItemEqual(getItemStack(getInteractionSlotIndex())) !Util.getHeldStack().sameItem(getItemStack(getInteractionSlotIndex()))
|| Util.getHeldStack().getCount() + getItemStack(getInteractionSlotIndex()).getCount() || Util.getHeldStack().getCount() + getItemStack(getInteractionSlotIndex()).getCount()
> getItemStack(getInteractionSlotIndex()).getMaxStackSize())) { > getItemStack(getInteractionSlotIndex()).getMaxStackSize())) {
moveStackToInventory(-1); moveStackToInventory(-1);
@@ -159,32 +159,32 @@ public abstract class ContainerManager {
void handleNumKey(Slot currentHoveredSlot) { void handleNumKey(Slot currentHoveredSlot) {
// hotbar-slots are always the last 9 slots of the currently opened inventory // hotbar-slots are always the last 9 slots of the currently opened inventory
int hotbarStartIndex = Util.client.player.openContainer.getInventory().size() - 9 - 1; int hotbarStartIndex = Util.client.player.containerMenu.getItems().size() - 9 - 1;
if (Util.client.currentScreen instanceof InventoryScreen) { if (Util.client.screen instanceof InventoryScreen) {
hotbarStartIndex -= 1; hotbarStartIndex -= 1;
} }
int inputdelta; int inputdelta;
KeyBinding[] hotbar = Util.client.gameSettings.keyBindsHotbar; KeyMapping[] hotbar = Util.client.options.keyHotbarSlots;
if (Config.isKeyDown(hotbar[0].getKey().getKeyCode())) { if (Config.isKeyDown(hotbar[0].getKey().getValue())) {
inputdelta = 1; inputdelta = 1;
} else if (Config.isKeyDown(hotbar[1].getKey().getKeyCode())) { } else if (Config.isKeyDown(hotbar[1].getKey().getValue())) {
inputdelta = 2; inputdelta = 2;
} else if (Config.isKeyDown(hotbar[2].getKey().getKeyCode())) { } else if (Config.isKeyDown(hotbar[2].getKey().getValue())) {
inputdelta = 3; inputdelta = 3;
} else if (Config.isKeyDown(hotbar[3].getKey().getKeyCode())) { } else if (Config.isKeyDown(hotbar[3].getKey().getValue())) {
inputdelta = 4; inputdelta = 4;
} else if (Config.isKeyDown(hotbar[4].getKey().getKeyCode())) { } else if (Config.isKeyDown(hotbar[4].getKey().getValue())) {
inputdelta = 5; inputdelta = 5;
} else if (Config.isKeyDown(hotbar[5].getKey().getKeyCode())) { } else if (Config.isKeyDown(hotbar[5].getKey().getValue())) {
inputdelta = 6; inputdelta = 6;
} else if (Config.isKeyDown(hotbar[6].getKey().getKeyCode())) { } else if (Config.isKeyDown(hotbar[6].getKey().getValue())) {
inputdelta = 7; inputdelta = 7;
} else if (Config.isKeyDown(hotbar[7].getKey().getKeyCode())) { } else if (Config.isKeyDown(hotbar[7].getKey().getValue())) {
inputdelta = 8; inputdelta = 8;
} else if (Config.isKeyDown(hotbar[8].getKey().getKeyCode())) { } else if (Config.isKeyDown(hotbar[8].getKey().getValue())) {
inputdelta = 9; inputdelta = 9;
} else { } else {
return; return;
@@ -194,7 +194,7 @@ public abstract class ContainerManager {
// if there could not be meant another stack at mouse position. cool logic! // if there could not be meant another stack at mouse position. cool logic!
if (!Util.isHoldingStack()) { if (!Util.isHoldingStack()) {
if (currentHoveredSlot == null || !currentHoveredSlot.getHasStack()) { if (currentHoveredSlot == null || !currentHoveredSlot.hasItem()) {
Logger.info("handleNumKey()", "Trying output to hotbar speedup."); Logger.info("handleNumKey()", "Trying output to hotbar speedup.");
onInteractionKeyPressed(); onInteractionKeyPressed();
} }
@@ -306,13 +306,13 @@ public abstract class ContainerManager {
int movedAmount = Math.min(amount, sourceSize); int movedAmount = Math.min(amount, sourceSize);
// Clear goal slot (May fail on full inventory!); only available if not holdling // Clear goal slot (May fail on full inventory!); only available if not holdling
if (destination != null && !source.isItemEqual(destination) && srcIndex >= 0) { if (destination != null && !source.sameItem(destination) && srcIndex >= 0) {
moveStackToInventory(destIndex); moveStackToInventory(destIndex);
destination = getItemStack(destIndex); destination = getItemStack(destIndex);
} }
// Move some // Move some
if (destination == null || source.isItemEqual(destination)) { if (destination == null || source.sameItem(destination)) {
if (srcIndex >= 0) { if (srcIndex >= 0) {
leftClick(srcIndex); leftClick(srcIndex);
@@ -342,14 +342,14 @@ public abstract class ContainerManager {
*/ */
ItemStack getItemStack(int index) { ItemStack getItemStack(int index) {
if (index >= 0 && index < container.inventorySlots.size()) { if (index >= 0 && index < container.slots.size()) {
Slot slot = (Slot) (container.inventorySlots.get(index)); Slot slot = (Slot) (container.slots.get(index));
// NEW_1_11 No Null-Stacks anymore. Empty Stacks with air... // NEW_1_11 No Null-Stacks anymore. Empty Stacks with air...
ItemStack returnStack = (slot == null) ? null : slot.getStack(); ItemStack returnStack = (slot == null) ? null : slot.getItem();
if(returnStack.getCount() == 0 && returnStack.getItem() == Item.getItemFromBlock(Blocks.AIR)) { if(returnStack.getCount() == 0 && returnStack.getItem() == Item.byBlock(Blocks.AIR)) {
returnStack = null; returnStack = null;
} }
@@ -425,12 +425,12 @@ public abstract class ContainerManager {
private int calcInventoryDestination(ItemStack stackToMove) { private int calcInventoryDestination(ItemStack stackToMove) {
// First run: Try to find a nice stack to put items on additionally // First run: Try to find a nice stack to put items on additionally
for (int i = getInventoryStartIndex(); i < container.inventorySlots.size(); i++) { for (int i = getInventoryStartIndex(); i < container.slots.size(); i++) {
ItemStack potentialGoalStack = getItemStack(i); ItemStack potentialGoalStack = getItemStack(i);
if (potentialGoalStack != null && stackToMove != null) { if (potentialGoalStack != null && stackToMove != null) {
if (potentialGoalStack.isItemEqual(stackToMove)) { if (potentialGoalStack.sameItem(stackToMove)) {
if (potentialGoalStack.getCount() + stackToMove.getCount() <= stackToMove.getMaxStackSize()) { if (potentialGoalStack.getCount() + stackToMove.getCount() <= stackToMove.getMaxStackSize()) {
return i; return i;
} }
@@ -439,7 +439,7 @@ public abstract class ContainerManager {
} }
// Second run: Find a free slot // Second run: Find a free slot
for (int i = getInventoryStartIndex(); i < container.inventorySlots.size(); i++) { for (int i = getInventoryStartIndex(); i < container.slots.size(); i++) {
if (getItemStack(i) == null) { if (getItemStack(i) == null) {
return i; return i;
} }
@@ -493,7 +493,7 @@ public abstract class ContainerManager {
int rightClickData = (rightClick) ? 1 : 0; int rightClickData = (rightClick) ? 1 : 0;
CraftingKeys.proxy.sendSlotClick(Util.client.playerController, container.windowId, index, CraftingKeys.proxy.sendSlotClick(Util.client.gameMode, container.containerId, index,
rightClickData, 0, Util.client.player); rightClickData, 0, Util.client.player);
} }
@@ -1,7 +1,7 @@
package de.skate702.craftingkeys.manager; package de.skate702.craftingkeys.manager;
import de.skate702.craftingkeys.util.Logger; import de.skate702.craftingkeys.util.Logger;
import net.minecraft.inventory.container.Container; import net.minecraft.world.inventory.AbstractContainerMenu;
/** /**
* Manages a Crafting GUI Inventory. * Manages a Crafting GUI Inventory.
@@ -15,7 +15,7 @@ public class CraftingManager extends ContainerManager {
* *
* @param container The container from a crafting GUI * @param container The container from a crafting GUI
*/ */
private CraftingManager(Container container) { private CraftingManager(AbstractContainerMenu container) {
super(container); super(container);
} }
@@ -25,7 +25,7 @@ public class CraftingManager extends ContainerManager {
* @param container A container from a GUI * @param container A container from a GUI
* @return manager-singleton * @return manager-singleton
*/ */
public static CraftingManager getInstance(Container container) { public static CraftingManager getInstance(AbstractContainerMenu container) {
if (instance == null) { if (instance == null) {
instance = new CraftingManager(container); instance = new CraftingManager(container);
} else { } else {
@@ -1,7 +1,7 @@
package de.skate702.craftingkeys.manager; package de.skate702.craftingkeys.manager;
import de.skate702.craftingkeys.util.Logger; import de.skate702.craftingkeys.util.Logger;
import net.minecraft.inventory.container.Container; import net.minecraft.world.inventory.AbstractContainerMenu;
/** /**
* Manages a Dispenser GUI Inventory. * Manages a Dispenser GUI Inventory.
@@ -15,7 +15,7 @@ public class DispenserManager extends ContainerManager {
* *
* @param container The container from a crafting GUI * @param container The container from a crafting GUI
*/ */
private DispenserManager(Container container) { private DispenserManager(AbstractContainerMenu container) {
super(container); super(container);
} }
@@ -25,7 +25,7 @@ public class DispenserManager extends ContainerManager {
* @param container A container from a GUI * @param container A container from a GUI
* @return manager-singleton * @return manager-singleton
*/ */
public static DispenserManager getInstance(Container container) { public static DispenserManager getInstance(AbstractContainerMenu container) {
if (instance == null) { if (instance == null) {
instance = new DispenserManager(container); instance = new DispenserManager(container);
} else { } else {
@@ -1,7 +1,7 @@
package de.skate702.craftingkeys.manager; package de.skate702.craftingkeys.manager;
import de.skate702.craftingkeys.util.Logger; import de.skate702.craftingkeys.util.Logger;
import net.minecraft.inventory.container.Container; import net.minecraft.world.inventory.AbstractContainerMenu;
/** /**
* Manages a Enchantment Table GUI Inventory. * Manages a Enchantment Table GUI Inventory.
@@ -15,7 +15,7 @@ public class EnchantmentManager extends ContainerManager {
* *
* @param container The container from a crafting GUI * @param container The container from a crafting GUI
*/ */
private EnchantmentManager(Container container) { private EnchantmentManager(AbstractContainerMenu container) {
super(container); super(container);
} }
@@ -25,7 +25,7 @@ public class EnchantmentManager extends ContainerManager {
* @param container A container from a GUI * @param container A container from a GUI
* @return manager-singleton * @return manager-singleton
*/ */
public static EnchantmentManager getInstance(Container container) { public static EnchantmentManager getInstance(AbstractContainerMenu container) {
if (instance == null) { if (instance == null) {
instance = new EnchantmentManager(container); instance = new EnchantmentManager(container);
} else { } else {
@@ -1,7 +1,7 @@
package de.skate702.craftingkeys.manager; package de.skate702.craftingkeys.manager;
import de.skate702.craftingkeys.util.Logger; import de.skate702.craftingkeys.util.Logger;
import net.minecraft.inventory.container.Container; import net.minecraft.world.inventory.AbstractContainerMenu;
/** /**
* Manages a Furnace GUI Inventory. * Manages a Furnace GUI Inventory.
@@ -15,7 +15,7 @@ public class FurnaceManager extends ContainerManager {
* *
* @param container The container from a crafting GUI * @param container The container from a crafting GUI
*/ */
private FurnaceManager(Container container) { private FurnaceManager(AbstractContainerMenu container) {
super(container); super(container);
} }
@@ -25,7 +25,7 @@ public class FurnaceManager extends ContainerManager {
* @param container A container from a GUI * @param container A container from a GUI
* @return manager-singleton * @return manager-singleton
*/ */
public static FurnaceManager getInstance(Container container) { public static FurnaceManager getInstance(AbstractContainerMenu container) {
if (instance == null) { if (instance == null) {
instance = new FurnaceManager(container); instance = new FurnaceManager(container);
} else { } else {
@@ -1,7 +1,7 @@
package de.skate702.craftingkeys.manager; package de.skate702.craftingkeys.manager;
import de.skate702.craftingkeys.util.Logger; import de.skate702.craftingkeys.util.Logger;
import net.minecraft.inventory.container.Container; import net.minecraft.world.inventory.AbstractContainerMenu;
/** /**
* Manages a Inventory GUI Inventory. * Manages a Inventory GUI Inventory.
@@ -15,7 +15,7 @@ public class InventoryManager extends ContainerManager {
* *
* @param container The container from a crafting GUI * @param container The container from a crafting GUI
*/ */
private InventoryManager(Container container) { private InventoryManager(AbstractContainerMenu container) {
super(container); super(container);
} }
@@ -25,7 +25,7 @@ public class InventoryManager extends ContainerManager {
* @param container A container from a GUI * @param container A container from a GUI
* @return manager-singleton * @return manager-singleton
*/ */
public static InventoryManager getInstance(Container container) { public static InventoryManager getInstance(AbstractContainerMenu container) {
if (instance == null) { if (instance == null) {
instance = new InventoryManager(container); instance = new InventoryManager(container);
} else { } else {
@@ -2,7 +2,7 @@ package de.skate702.craftingkeys.manager;
import de.skate702.craftingkeys.util.Logger; import de.skate702.craftingkeys.util.Logger;
import net.minecraft.inventory.container.Container; import net.minecraft.world.inventory.AbstractContainerMenu;
/** /**
* Manages a Villager GUI Inventory. * Manages a Villager GUI Inventory.
@@ -16,7 +16,7 @@ public class VillagerManager extends ContainerManager {
* *
* @param container The container from a crafting GUI * @param container The container from a crafting GUI
*/ */
private VillagerManager(Container container) { private VillagerManager(AbstractContainerMenu container) {
super(container); super(container);
} }
@@ -26,7 +26,7 @@ public class VillagerManager extends ContainerManager {
* @param container A container from a GUI * @param container A container from a GUI
* @return manager-singleton * @return manager-singleton
*/ */
public static VillagerManager getInstance(Container container) { public static VillagerManager getInstance(AbstractContainerMenu container) {
if (instance == null) { if (instance == null) {
instance = new VillagerManager(container); instance = new VillagerManager(container);
} else { } else {
@@ -1,8 +1,8 @@
package de.skate702.craftingkeys.proxies; package de.skate702.craftingkeys.proxies;
import net.minecraft.client.multiplayer.PlayerController; import net.minecraft.client.multiplayer.MultiPlayerGameMode;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.world.entity.player.Player;
import net.minecraft.inventory.container.ClickType; import net.minecraft.world.inventory.ClickType;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.OnlyIn;
@@ -24,9 +24,9 @@ public class CraftingKeysProxy {
* @param player The current player (from Client) * @param player The current player (from Client)
*/ */
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
public void sendSlotClick(PlayerController controller, int windowId, int slot, int rightClick, @SuppressWarnings("SameParameterValue") int action, public void sendSlotClick(MultiPlayerGameMode controller, int windowId, int slot, int rightClick, @SuppressWarnings("SameParameterValue") int action,
PlayerEntity player) { Player player) {
controller.windowClick(windowId, slot, rightClick, ClickType.PICKUP, player); controller.handleInventoryMouseClick(windowId, slot, rightClick, ClickType.PICKUP, player);
} }
@@ -1,8 +1,8 @@
package de.skate702.craftingkeys.util; package de.skate702.craftingkeys.util;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.screen.inventory.ContainerScreen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.inventory.container.Slot; import net.minecraft.world.inventory.Slot;
/** /**
* This class provides methods to interact with the Mouse and key input. * This class provides methods to interact with the Mouse and key input.
@@ -27,8 +27,8 @@ public class InputUtil {
* @return Returns the slot (or null) * @return Returns the slot (or null)
*/ */
public static Slot getSlotAtMousePosition(Screen screen) { public static Slot getSlotAtMousePosition(Screen screen) {
if (screen instanceof ContainerScreen) { if (screen instanceof AbstractContainerScreen) {
return ((ContainerScreen) screen).getSlotUnderMouse(); return ((AbstractContainerScreen) screen).getSlotUnderMouse();
} else { } else {
Logger.debug("getSlotAtMousePosition(gui)", "guiContainer == null"); Logger.debug("getSlotAtMousePosition(gui)", "guiContainer == null");
return null; return null;
@@ -1,6 +1,6 @@
package de.skate702.craftingkeys.util; package de.skate702.craftingkeys.util;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.language.I18n;
public class LanguageLocalizer { public class LanguageLocalizer {
/** /**
@@ -10,6 +10,6 @@ public class LanguageLocalizer {
* @return localized The localized String * @return localized The localized String
*/ */
public static String localize(String unloc) { public static String localize(String unloc) {
return I18n.format(unloc); return I18n.get(unloc);
} }
} }
@@ -1,9 +1,10 @@
package de.skate702.craftingkeys.util; package de.skate702.craftingkeys.util;
import net.minecraft.util.text.TranslationTextComponent; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
import net.minecraft.network.chat.Component;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack; import net.minecraft.world.item.ItemStack;
/** /**
* Provides basic utility methods. For input methods, look at InputUtil. * Provides basic utility methods. For input methods, look at InputUtil.
@@ -31,7 +32,7 @@ public class Util {
* @return A item stack * @return A item stack
*/ */
public static ItemStack getHeldStack() { public static ItemStack getHeldStack() {
return client.player.inventory.getItemStack(); return ((AbstractContainerScreen<?>)client.screen).getMenu().getCarried();
} }
/** /**
@@ -49,10 +50,10 @@ public class Util {
* @return True, if this is the first tick * @return True, if this is the first tick
*/ */
public static boolean isFirstInWorldTick() { public static boolean isFirstInWorldTick() {
if (firstInWorldTick && client.world != null) { if (firstInWorldTick && client.level != null) {
firstInWorldTick = false; firstInWorldTick = false;
return true; return true;
} else if (client.world == null) { } else if (client.level == null) {
firstInWorldTick = true; firstInWorldTick = true;
} }
return false; return false;
@@ -64,8 +65,7 @@ public class Util {
* @param lang_key key from lang-file * @param lang_key key from lang-file
*/ */
public static void printMessage(String lang_key) { public static void printMessage(String lang_key) {
String translated = new TranslationTextComponent(lang_key).getUnformattedComponentText(); client.player.displayClientMessage(Component.translatable(lang_key), false);
client.player.sendChatMessage(translated);
} }
} }
+3 -3
View File
@@ -1,5 +1,5 @@
modLoader = "javafml" #mandatory modLoader = "javafml" #mandatory
loaderVersion = "[36,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions. loaderVersion = "[41,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions.
license = "All rights reserved" license = "All rights reserved"
[[mods]] #mandatory [[mods]] #mandatory
modId = "craftingkeys" #mandatory modId = "craftingkeys" #mandatory
@@ -14,12 +14,12 @@ description = "Simple better crafting! Crafing Keys enables new inventory key-bi
[[dependencies.craftingkeys]] #optional [[dependencies.craftingkeys]] #optional
modId = "forge" #mandatory modId = "forge" #mandatory
mandatory = true #mandatory mandatory = true #mandatory
versionRange = "[36,)" #mandatory versionRange = "[41,)" #mandatory
ordering = "NONE" ordering = "NONE"
side = "CLIENT" side = "CLIENT"
[[dependencies.craftingkeys]] [[dependencies.craftingkeys]]
modId = "minecraft" modId = "minecraft"
mandatory = true mandatory = true
versionRange = "[1.16.5,)" versionRange = "[1.19,)"
ordering = "NONE" ordering = "NONE"
side = "CLIENT" side = "CLIENT"