diff --git a/.gradle/8.0/executionHistory/executionHistory.bin b/.gradle/8.0/executionHistory/executionHistory.bin index 2b4d65d..b7eb553 100644 Binary files a/.gradle/8.0/executionHistory/executionHistory.bin and b/.gradle/8.0/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.0/executionHistory/executionHistory.lock b/.gradle/8.0/executionHistory/executionHistory.lock index 7f3283b..3e892c7 100644 Binary files a/.gradle/8.0/executionHistory/executionHistory.lock and b/.gradle/8.0/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.0/fileHashes/fileHashes.bin b/.gradle/8.0/fileHashes/fileHashes.bin index e942c77..4a171be 100644 Binary files a/.gradle/8.0/fileHashes/fileHashes.bin and b/.gradle/8.0/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.0/fileHashes/fileHashes.lock b/.gradle/8.0/fileHashes/fileHashes.lock index bf36e5b..89a9cd3 100644 Binary files a/.gradle/8.0/fileHashes/fileHashes.lock and b/.gradle/8.0/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.0/fileHashes/resourceHashesCache.bin b/.gradle/8.0/fileHashes/resourceHashesCache.bin index d608d13..b1b5180 100644 Binary files a/.gradle/8.0/fileHashes/resourceHashesCache.bin and b/.gradle/8.0/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 3de798f..4448cae 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/lwjgl-rundir/_eagstorage.p.dat b/lwjgl-rundir/_eagstorage.p.dat index 1698985..57ab882 100644 Binary files a/lwjgl-rundir/_eagstorage.p.dat and b/lwjgl-rundir/_eagstorage.p.dat differ diff --git a/lwjgl-rundir/eaglercraft.jar b/lwjgl-rundir/eaglercraft.jar index b59a67e..8816ce7 100644 Binary files a/lwjgl-rundir/eaglercraft.jar and b/lwjgl-rundir/eaglercraft.jar differ diff --git a/src/main/java/net/lax1dude/eaglercraft/GuiScreenEditProfile.java b/src/main/java/net/lax1dude/eaglercraft/GuiScreenEditProfile.java index e6cc395..1e72b2b 100644 --- a/src/main/java/net/lax1dude/eaglercraft/GuiScreenEditProfile.java +++ b/src/main/java/net/lax1dude/eaglercraft/GuiScreenEditProfile.java @@ -98,6 +98,7 @@ public class GuiScreenEditProfile extends GuiScreen { this.screenTitle = var1.translateKey("profile.title"); this.username = new GuiTextField(this.fontRenderer, this.width / 2 - 20 + 1, this.height / 6 + 24 + 1, 138, 20, EaglerProfile.username); this.username.isEnabled = true; + this.username.setMaxStringLength(16); selectedSlot = EaglerProfile.presetSkinId == -1 ? EaglerProfile.customSkinId : (EaglerProfile.presetSkinId + EaglerProfile.skins.size()); //this.buttonList.add(new GuiButton(0, this.width / 2 - 100, 140, "eeeee")); this.controlList.add(button0 = new GuiButton(200, this.width / 2 - 100, this.height / 6 + 168, var1.translateKey("gui.done"))); @@ -350,7 +351,7 @@ public class GuiScreenEditProfile extends GuiScreen { String text = username.getText(); if(text.length() > 16) text = text.substring(0, 16); - text = text.replaceAll("[^A-Za-z0-9\\-_]", "_"); + //text = text.replaceAll("[^A-Za-z0-9\\-_]", "_"); this.username.setText(text); if(par2 == 200 && selectedSlot > 0) { diff --git a/src/main/java/net/lax1dude/eaglercraft/beta/EaglercraftSaveManager.java b/src/main/java/net/lax1dude/eaglercraft/beta/EaglercraftSaveManager.java index ddb419b..f7059e9 100644 --- a/src/main/java/net/lax1dude/eaglercraft/beta/EaglercraftSaveManager.java +++ b/src/main/java/net/lax1dude/eaglercraft/beta/EaglercraftSaveManager.java @@ -103,7 +103,19 @@ public class EaglercraftSaveManager implements ISaveFormat { } public void deleteWorldByDirectory(String s) { - new VFile2(directory + "/" + s, "Deleting World", "%i chunks").delete(); + VFile2 var3 = new VFile2("saves", s); + System.out.println(var3.getPath()); + if(var3.dirExists()) { + List files = var3.listFiles(true); + deleteWorldFiles(files.toArray(new VFile2[0])); + var3.delete(); + } + } + + protected static void deleteWorldFiles(VFile2[] var0) { + for(int var1 = 0; var1 < var0.length; ++var1) { + var0[var1].delete(); + } } public boolean isOldMapFormat(String s) { diff --git a/src/main/java/net/minecraft/src/FontAllowedCharacters.java b/src/main/java/net/minecraft/src/FontAllowedCharacters.java index e362e6a..5626f28 100644 --- a/src/main/java/net/minecraft/src/FontAllowedCharacters.java +++ b/src/main/java/net/minecraft/src/FontAllowedCharacters.java @@ -30,4 +30,24 @@ public class FontAllowedCharacters { return var0; } + + public static final int[] allowedChars = new int[]{ + 32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58, + 59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85, + 86,87,88,89,90,91,92,93,94,95,39,97,98,99,100,101,102,103,104,105,106,107,108,109, + 110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,8962,199,252, + 233,226,228,224,229,231,234,235,232,239,238,236,196,197,201,230,198,244,246,242, + 251,249,255,214,220,248,163,216,215,402,225,237,243,250,241,209,170,186,191,174, + 172,189,188,161,171,187 + }; + + public static int isAllowed(char c) { + int cc = (int) c; + for(int i = 0; i < allowedChars.length; ++i) { + if(cc == allowedChars[i]) { + return i; + } + } + return -1; + } } diff --git a/src/main/java/net/minecraft/src/GuiMainMenu.java b/src/main/java/net/minecraft/src/GuiMainMenu.java index 2a67240..ea96ba1 100644 --- a/src/main/java/net/minecraft/src/GuiMainMenu.java +++ b/src/main/java/net/minecraft/src/GuiMainMenu.java @@ -37,7 +37,7 @@ public class GuiMainMenu extends GuiScreen { int var4 = this.height / 4 + 48; this.controlList.add(new GuiButton(1, this.width / 2 - 100, var4, var2.translateKey("menu.singleplayer"))); this.controlList.add(this.guiButtonMP = new GuiButton(2, this.width / 2 - 100, var4 + 24, var2.translateKey("menu.multiplayer"))); - //this.controlList.add(new GuiButton(3, this.width / 2 - 100, var4 + 48, var2.translateKey("menu.mods"))); + this.controlList.add(new GuiButton(3, this.width / 2 - 100, var4 + 48, var2.translateKey("menu.mods"))); this.controlList.add(new GuiButton(0, this.width / 2 - 100, var4 + 72 + 12, 98, 20, var2.translateKey("menu.options"))); this.controlList.add(new GuiButton(4, this.width / 2 + 2, var4 + 72 + 12, 98, 20, var2.translateKey("Edit Profile"))); diff --git a/src/main/java/net/minecraft/src/GuiRenameWorld.java b/src/main/java/net/minecraft/src/GuiRenameWorld.java index 454f032..44f139b 100644 --- a/src/main/java/net/minecraft/src/GuiRenameWorld.java +++ b/src/main/java/net/minecraft/src/GuiRenameWorld.java @@ -23,7 +23,7 @@ public class GuiRenameWorld extends GuiScreen { this.controlList.add(new GuiButton(0, this.width / 2 - 100, this.height / 4 + 96 + 12, var1.translateKey("selectWorld.renameButton"))); this.controlList.add(new GuiButton(1, this.width / 2 - 100, this.height / 4 + 120 + 12, var1.translateKey("gui.cancel"))); ISaveFormat var2 = this.mc.getSaveLoader(); - WorldInfo var3 = var2.getWorldInfoForWorld("saves/" + this.worldName + "/level.dat"); // FIX THIS SHIT + WorldInfo var3 = var2.getWorldInfoForWorld(worldName); // FIX THIS SHIT String var4 = var3.getWorldName(); this.disableButton = new GuiTextField(this.fontRenderer, this.width / 2 - 100, 60, 200, 20, var4); this.disableButton.isFocused = true; diff --git a/src/main/java/net/minecraft/src/GuiTextField.java b/src/main/java/net/minecraft/src/GuiTextField.java index e00e255..1e23711 100644 --- a/src/main/java/net/minecraft/src/GuiTextField.java +++ b/src/main/java/net/minecraft/src/GuiTextField.java @@ -7,7 +7,7 @@ public class GuiTextField extends Gui { private final int width; private final int height; private String text; - private int maxStringLength = 32; + private int maxStringLength; private int cursorCounter; public boolean isFocused = false; public boolean isEnabled = true; @@ -56,7 +56,7 @@ public class GuiTextField extends Gui { return; } - if(this.text.length() < this.maxStringLength || this.maxStringLength == 0) { + if(FontAllowedCharacters.isAllowed(var1) >= 0 && (this.text.length() < this.maxStringLength || this.maxStringLength == 0)) { this.text = this.text + var1; } }