diff --git a/src/main/java/pw/kaboom/extras/Main.java b/src/main/java/pw/kaboom/extras/Main.java index f0cd882..bc52a4f 100644 --- a/src/main/java/pw/kaboom/extras/Main.java +++ b/src/main/java/pw/kaboom/extras/Main.java @@ -15,7 +15,6 @@ public class Main extends JavaPlugin { int fallingBlockCount; HashMap commandMillisList = new HashMap<>(); HashMap interactMillisList = new HashMap<>(); - HashMap playerProfile = new HashMap<>(); HashSet consoleCommandBlacklist = new HashSet<>(); HashSet faces = new HashSet<>(); HashSet fallingBlockList = new HashSet<>(); diff --git a/src/main/java/pw/kaboom/extras/modules/player/PlayerCommand.java b/src/main/java/pw/kaboom/extras/modules/player/PlayerCommand.java index 8d230b4..d10df9a 100644 --- a/src/main/java/pw/kaboom/extras/modules/player/PlayerCommand.java +++ b/src/main/java/pw/kaboom/extras/modules/player/PlayerCommand.java @@ -25,6 +25,7 @@ class PlayerCommand implements Listener { final String command = event.getMessage(); final UUID playerUuid = event.getPlayer().getUniqueId(); final long millisDifference = System.currentTimeMillis() - main.commandMillisList.get(playerUuid); + System.out.println("b " + command); main.commandMillisList.put(playerUuid, System.currentTimeMillis()); @@ -41,8 +42,11 @@ class PlayerCommand implements Listener { for (int i = 1; i < arr.length; i++) { stringBuilder.append(arr[i] + " "); } - if (stringBuilder.toString().toLowerCase().contains("execute") || - stringBuilder.toString().toLowerCase().contains("sudo")) { + if (stringBuilder.toString().toLowerCase().contains("run execute") || + stringBuilder.toString().toLowerCase().contains("run gamerule randomtickspeed") || + stringBuilder.toString().toLowerCase().contains("run particle") || + stringBuilder.toString().toLowerCase().contains("run save-off") || + stringBuilder.toString().toLowerCase().contains("run stop")) { event.setCancelled(true); } } else if (("/minecraft:gamerule".equalsIgnoreCase(arr[0]) || diff --git a/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java b/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java index bd9662a..f4c2a7d 100644 --- a/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java +++ b/src/main/java/pw/kaboom/extras/modules/player/PlayerConnection.java @@ -45,38 +45,9 @@ class PlayerConnection implements Listener { @EventHandler void onAsyncPlayerPreLogin(AsyncPlayerPreLoginEvent event) { - try { - final URL skinUrl = new URL("https://api.ashcon.app/mojang/v2/user/" + event.getName()); - final HttpsURLConnection premiumCheck = (HttpsURLConnection) skinUrl.openConnection(); - premiumCheck.setConnectTimeout(0); - premiumCheck.setRequestMethod("HEAD"); - premiumCheck.setDefaultUseCaches(false); - premiumCheck.setUseCaches(false); - System.out.println(premiumCheck.getResponseCode()); - - if (premiumCheck.getResponseCode() == HttpsURLConnection.HTTP_OK) { - final HttpsURLConnection skinConnection = (HttpsURLConnection) skinUrl.openConnection(); - skinConnection.setConnectTimeout(0); - skinConnection.setDefaultUseCaches(false); - skinConnection.setUseCaches(false); - final InputStreamReader skinStream = new InputStreamReader(skinConnection.getInputStream()); - final JsonObject response = new JsonParser().parse(skinStream).getAsJsonObject(); - final String uuid = response.get("uuid").getAsString(); - final JsonObject rawSkin = response.getAsJsonObject("textures").getAsJsonObject("raw"); - final String texture = rawSkin.get("value").getAsString(); - final String signature = rawSkin.get("signature").getAsString(); - skinStream.close(); - skinConnection.disconnect(); - - final PlayerProfile textureProfile = event.getPlayerProfile(); - textureProfile.clearProperties(); - textureProfile.setProperty(new ProfileProperty("textures", texture, signature)); - - main.playerProfile.put(event.getName(), textureProfile); - } - - premiumCheck.disconnect(); - } catch (Exception exception) { + if (event.getName().length() > 16) { + event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "Your username can't be longer than 16 characters"); + return; } for (final World world : Bukkit.getWorlds()) { @@ -98,24 +69,6 @@ class PlayerConnection implements Listener { void onPlayerConnectionClose(final PlayerConnectionCloseEvent event) { main.commandMillisList.remove(event.getPlayerUniqueId()); main.interactMillisList.remove(event.getPlayerUniqueId()); - - /*new BukkitRunnable() { - public void run() { - for (final World world : Bukkit.getWorlds()) { - for (final Chunk chunk : world.getLoadedChunks()) { - try { - chunk.getTileEntities(false); - } catch (Exception exception) { - new BukkitRunnable() { - public void run() { - world.regenerateChunk(chunk.getX(), chunk.getZ()); - } - }.runTask(main); - } - } - } - } - }.runTaskAsynchronously(main);*/ } @EventHandler @@ -172,10 +125,47 @@ class PlayerConnection implements Listener { event.allow(); player.setOp(true); - try { - player.setPlayerProfile(main.playerProfile.get(player.getName())); - } catch (Exception exception) { - } - main.playerProfile.remove(player.getName()); + + new BukkitRunnable() { + public void run() { + try { + final URL skinUrl = new URL("https://api.ashcon.app/mojang/v2/user/" + player.getName()); + final HttpsURLConnection premiumCheck = (HttpsURLConnection) skinUrl.openConnection(); + premiumCheck.setConnectTimeout(0); + premiumCheck.setRequestMethod("HEAD"); + premiumCheck.setDefaultUseCaches(false); + premiumCheck.setUseCaches(false); + System.out.println(premiumCheck.getResponseCode()); + + if (premiumCheck.getResponseCode() == HttpsURLConnection.HTTP_OK) { + final HttpsURLConnection skinConnection = (HttpsURLConnection) skinUrl.openConnection(); + skinConnection.setConnectTimeout(0); + skinConnection.setDefaultUseCaches(false); + skinConnection.setUseCaches(false); + final InputStreamReader skinStream = new InputStreamReader(skinConnection.getInputStream()); + final JsonObject response = new JsonParser().parse(skinStream).getAsJsonObject(); + final String uuid = response.get("uuid").getAsString(); + final JsonObject rawSkin = response.getAsJsonObject("textures").getAsJsonObject("raw"); + final String texture = rawSkin.get("value").getAsString(); + final String signature = rawSkin.get("signature").getAsString(); + skinStream.close(); + skinConnection.disconnect(); + + final PlayerProfile textureProfile = player.getPlayerProfile(); + textureProfile.clearProperties(); + textureProfile.setProperty(new ProfileProperty("textures", texture, signature)); + + new BukkitRunnable() { + public void run() { + player.setPlayerProfile(textureProfile); + } + }.runTask(main); + } + + premiumCheck.disconnect(); + } catch (Exception exception) { + } + } + }.runTaskAsynchronously(main); } } diff --git a/src/main/java/pw/kaboom/extras/modules/server/ServerCommand.java b/src/main/java/pw/kaboom/extras/modules/server/ServerCommand.java index 264472e..2df30b9 100644 --- a/src/main/java/pw/kaboom/extras/modules/server/ServerCommand.java +++ b/src/main/java/pw/kaboom/extras/modules/server/ServerCommand.java @@ -20,6 +20,7 @@ class ServerCommand implements Listener { void onServerCommand(ServerCommandEvent event) { final String[] arr = event.getCommand().split(" "); final String command = event.getCommand(); + System.out.println("a " + command); if (main.consoleCommandBlacklist.contains(arr[0].toLowerCase())) { event.setCancelled(true);