Переглянути джерело

按 E 可以关闭命名牌 GUI

LTCatt 6 роки тому
батько
коміт
56f0197216

+ 15 - 3
src/main/java/com/hexdragon/enchrebirth/item/name_tag/NameTagScreen.java

@@ -1,17 +1,19 @@
 package com.hexdragon.enchrebirth.item.name_tag;
 package com.hexdragon.enchrebirth.item.name_tag;
 
 
 import com.hexdragon.enchrebirth.Main;
 import com.hexdragon.enchrebirth.Main;
-import com.hexdragon.util.network.Networking;
-import com.hexdragon.util.network.StringPacket;
 import com.mojang.blaze3d.matrix.MatrixStack;
 import com.mojang.blaze3d.matrix.MatrixStack;
 import net.minecraft.client.gui.screen.Screen;
 import net.minecraft.client.gui.screen.Screen;
 import net.minecraft.client.gui.widget.TextFieldWidget;
 import net.minecraft.client.gui.widget.TextFieldWidget;
+import net.minecraft.client.util.InputMappings;
 import net.minecraft.util.Hand;
 import net.minecraft.util.Hand;
 import net.minecraft.util.ResourceLocation;
 import net.minecraft.util.ResourceLocation;
 import net.minecraft.util.text.StringTextComponent;
 import net.minecraft.util.text.StringTextComponent;
 import net.minecraft.util.text.TranslationTextComponent;
 import net.minecraft.util.text.TranslationTextComponent;
+import net.minecraftforge.api.distmarker.Dist;
+import net.minecraftforge.api.distmarker.OnlyIn;
 import org.lwjgl.opengl.GL11;
 import org.lwjgl.opengl.GL11;
 
 
+@OnlyIn(Dist.CLIENT)
 public class NameTagScreen extends Screen {
 public class NameTagScreen extends Screen {
 
 
     String defaultName;
     String defaultName;
@@ -70,6 +72,16 @@ public class NameTagScreen extends Screen {
         super.closeScreen();
         super.closeScreen();
     }
     }
     public void onClose() {
     public void onClose() {
-        Networking.INSTANCE.sendToServer(new StringPacket(textField.getText(), (byte) (hand == Hand.MAIN_HAND ? 0 : 1)));
+        minecraft.player.getHeldItem(hand).setDisplayName(new StringTextComponent(textField.getText()));
+        // Networking.INSTANCE.sendToServer(new NameTagPacket(textField.getText(), (byte) (hand == Hand.MAIN_HAND ? 0 : 1)));
+    }
+    public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
+        InputMappings.Input mouseKey = InputMappings.getInputByCode(keyCode, scanCode);
+        if (!textField.isFocused() && minecraft.gameSettings.keyBindInventory.isActiveAndMatches(mouseKey)) {
+            this.closeScreen();
+            return true;
+        } else {
+            return super.keyPressed(keyCode, scanCode, modifiers);
+        }
     }
     }
 }
 }

+ 3 - 3
src/main/java/com/hexdragon/util/network/StringPacket.java → src/main/java/com/hexdragon/util/network/NameTagPacket.java

@@ -11,16 +11,16 @@ import net.minecraftforge.fml.network.NetworkEvent;
 
 
 import java.util.function.Supplier;
 import java.util.function.Supplier;
 
 
-public class StringPacket {
+public class NameTagPacket {
     private byte hand;
     private byte hand;
     private String message;
     private String message;
 
 
-    public StringPacket(PacketBuffer buffer) {
+    public NameTagPacket(PacketBuffer buffer) {
         hand = buffer.readByte();
         hand = buffer.readByte();
         message = buffer.readString(Short.MAX_VALUE);
         message = buffer.readString(Short.MAX_VALUE);
     }
     }
 
 
-    public StringPacket(String message, byte hand) {
+    public NameTagPacket(String message, byte hand) {
         this.message = message;
         this.message = message;
         this.hand = hand;
         this.hand = hand;
     }
     }

+ 1 - 7
src/main/java/com/hexdragon/util/network/Networking.java

@@ -19,12 +19,6 @@ public class Networking {
                 (s) -> true,
                 (s) -> true,
                 (s) -> true
                 (s) -> true
         );
         );
-        INSTANCE.registerMessage(
-                nextID(),
-                StringPacket.class,
-                StringPacket::toBytes,
-                StringPacket::new,
-                StringPacket::handler
-        );
+        INSTANCE.registerMessage(nextID(), NameTagPacket.class, NameTagPacket::toBytes, NameTagPacket::new, NameTagPacket::handler);
     }
     }
 }
 }