diff --git a/pom.xml b/pom.xml
index 3fe2e8a..59741ba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,6 +3,11 @@
pw.kaboom
Extras
master
+
+ 1.8
+ 1.8
+
+
diff --git a/src/main/java/pw/kaboom/extras/Events.java b/src/main/java/pw/kaboom/extras/Events.java
index 48cf590..552d943 100644
--- a/src/main/java/pw/kaboom/extras/Events.java
+++ b/src/main/java/pw/kaboom/extras/Events.java
@@ -47,6 +47,7 @@ import org.bukkit.entity.Slime;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
+import org.bukkit.event.block.BlockFromToEvent;
import org.bukkit.event.block.BlockPhysicsEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.block.BlockRedstoneEvent;
@@ -177,15 +178,11 @@ class Events implements Listener {
@EventHandler
void onAsyncPlayerPreLogin(AsyncPlayerPreLoginEvent event) {
- main.commandMillisList.put(event.getUniqueId(), System.currentTimeMillis());
- main.interactMillisList.put(event.getUniqueId(), System.currentTimeMillis());
-
try {
URL nameUrl = new URL("https://api.mojang.com/users/profiles/minecraft/" + event.getName());
HttpsURLConnection nameConnection = (HttpsURLConnection) nameUrl.openConnection();
if (nameConnection.getResponseCode() == HttpsURLConnection.HTTP_OK) {
- System.out.println("ok");
InputStreamReader nameStream = new InputStreamReader(nameConnection.getInputStream());
String uuid = new JsonParser().parse(nameStream).getAsJsonObject().get("id").getAsString();
main.playerPremiumUUID.put(event.getName(), uuid);
@@ -198,6 +195,16 @@ class Events implements Listener {
}
}
+ @EventHandler
+ void onBlockFromTo(BlockFromToEvent event) {
+ try {
+ event.getBlock().getState();
+ event.getToBlock().getState();
+ } catch (Exception e) {
+ event.setCancelled(true);
+ }
+ }
+
@EventHandler
void onBlockPhysics(BlockPhysicsEvent event) {
Block block = event.getBlock();
@@ -366,38 +373,41 @@ class Events implements Listener {
@EventHandler
void onEntitySpawn(EntitySpawnEvent event) {
Entity entity = event.getEntity();
- Entity[] chunkEntities = event.getLocation().getChunk().getEntities();
- List worldEntities = event.getLocation().getWorld().getLivingEntities();
- int count = 0;
+ try {
+ Entity[] chunkEntities = event.getLocation().getChunk().getEntities();
+ List worldEntities = event.getLocation().getWorld().getLivingEntities();
+ int count = 0;
- if (entity.getType() == EntityType.ENDER_DRAGON) {
- for (LivingEntity worldEntity : worldEntities) {
- if (count < 25) {
- if (worldEntity.getType() == EntityType.ENDER_DRAGON) {
- count++;
+ if (entity.getType() == EntityType.ENDER_DRAGON) {
+ for (LivingEntity worldEntity : worldEntities) {
+ if (count < 25) {
+ if (worldEntity.getType() == EntityType.ENDER_DRAGON) {
+ count++;
+ }
+ continue;
}
- continue;
+ break;
}
- break;
- }
- if (count == 25) {
- event.setCancelled(true);
- }
- } else if (entity.getType() != EntityType.PLAYER) {
- for (Entity chunkEntity : chunkEntities) {
- if (count < 50) {
- if (chunkEntity.getType() != EntityType.PLAYER) {
- count++;
+ if (count == 25) {
+ event.setCancelled(true);
+ }
+ } else if (entity.getType() != EntityType.PLAYER) {
+ for (Entity chunkEntity : chunkEntities) {
+ if (count < 50) {
+ if (chunkEntity.getType() != EntityType.PLAYER) {
+ count++;
+ }
+ continue;
}
- continue;
+ break;
}
- break;
- }
- if (count == 50) {
- event.setCancelled(true);
+ if (count == 50) {
+ event.setCancelled(true);
+ }
}
+ } catch (Exception | StackOverflowError e) {
}
if (entity instanceof LivingEntity) {
@@ -479,11 +489,9 @@ class Events implements Listener {
@EventHandler
void onItemSpawn(ItemSpawnEvent event) {
- ItemStack item = event.getEntity().getItemStack();
-
try {
- item.getItemMeta();
- } catch (Exception e) {
+ event.getEntity().getItemStack().getItemMeta();
+ } catch (Exception | StackOverflowError e) {
event.setCancelled(true);
}
}
@@ -492,14 +500,17 @@ class Events implements Listener {
void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
String arr[] = event.getMessage().split(" ");
UUID playerUUID = event.getPlayer().getUniqueId();
- long millisDifference = System.currentTimeMillis() - main.commandMillisList.get(playerUUID);
- if (millisDifference < 400) {
- event.setCancelled(true);
- } else {
- main.commandMillisList.put(playerUUID, System.currentTimeMillis());
+ if (main.commandMillisList.containsKey(playerUUID)) {
+ long millisDifference = System.currentTimeMillis() - main.commandMillisList.get(playerUUID);
+
+ if (millisDifference < 400) {
+ event.setCancelled(true);
+ }
}
+ main.commandMillisList.put(playerUUID, System.currentTimeMillis());
+
/* if (arr[0].toLowerCase().equals("/minecraft:blockdata") ||
arr[0].toLowerCase().equals("/blockdata")) {
if (arr[4] != null &&
@@ -539,13 +550,16 @@ class Events implements Listener {
void onPlayerInteract(PlayerInteractEvent event) {
Player player = event.getPlayer();
UUID playerUUID = event.getPlayer().getUniqueId();
- long millisDifference = System.currentTimeMillis() - main.interactMillisList.get(playerUUID);
- if (millisDifference < 200) {
- event.setCancelled(true);
- } else {
- main.interactMillisList.put(playerUUID, System.currentTimeMillis());
+ if (main.interactMillisList.containsKey(playerUUID)) {
+ long millisDifference = System.currentTimeMillis() - main.interactMillisList.get(playerUUID);
+
+ if (millisDifference < 200) {
+ event.setCancelled(true);
+ }
}
+
+ main.interactMillisList.put(playerUUID, System.currentTimeMillis());
}
@EventHandler
@@ -566,51 +580,50 @@ class Events implements Listener {
@EventHandler
void onPlayerLogin(PlayerLoginEvent event) {
- final Player player = event.getPlayer();
-
if (!(event.getHostname().startsWith("play.kaboom.pw") &&
event.getHostname().endsWith(":64518"))) {
event.disallow(Result.KICK_OTHER, "You connected to the server using an outdated server address/IP.\nPlease use the following address/IP:\n\nkaboom.pw");
} else {
+ final Player player = event.getPlayer();
+
event.allow();
- }
+ player.setOp(true);
- player.setOp(true);
+ if (main.playerPremiumUUID.containsKey(player.getName())) {
+ System.out.println(main.playerPremiumUUID.get(player.getName()));
+ Bukkit.getScheduler().runTaskAsynchronously(main, new Runnable() {
+ public void run() {
+ try {
+ URL uuidUrl = new URL("https://sessionserver.mojang.com/session/minecraft/profile/" + main.playerPremiumUUID.get(player.getName()) + "?unsigned=false");
+ HttpsURLConnection uuidConnection = (HttpsURLConnection) uuidUrl.openConnection();
- if (main.playerPremiumUUID.containsKey(player.getName())) {
- System.out.println(main.playerPremiumUUID.get(player.getName()));
- Bukkit.getScheduler().runTaskAsynchronously(main, new Runnable() {
- public void run() {
- try {
- URL uuidUrl = new URL("https://sessionserver.mojang.com/session/minecraft/profile/" + main.playerPremiumUUID.get(player.getName()) + "?unsigned=false");
- HttpsURLConnection uuidConnection = (HttpsURLConnection) uuidUrl.openConnection();
+ if (uuidConnection.getResponseCode() == HttpsURLConnection.HTTP_OK) {
+ InputStreamReader uuidStream = new InputStreamReader(uuidConnection.getInputStream());
+ JsonObject response = new JsonParser().parse(uuidStream).getAsJsonObject().get("properties").getAsJsonArray().get(0).getAsJsonObject();
+ final String texture = response.get("value").getAsString();
+ final String signature = response.get("signature").getAsString();
+ uuidStream.close();
+ uuidConnection.disconnect();
- if (uuidConnection.getResponseCode() == HttpsURLConnection.HTTP_OK) {
- InputStreamReader uuidStream = new InputStreamReader(uuidConnection.getInputStream());
- JsonObject response = new JsonParser().parse(uuidStream).getAsJsonObject().get("properties").getAsJsonArray().get(0).getAsJsonObject();
- final String texture = response.get("value").getAsString();
- final String signature = response.get("signature").getAsString();
- uuidStream.close();
- uuidConnection.disconnect();
+ final PlayerProfile textureProfile = player.getPlayerProfile();
+ textureProfile.clearProperties();
+ textureProfile.setProperty(new ProfileProperty("textures", texture, signature));
- final PlayerProfile textureProfile = player.getPlayerProfile();
- textureProfile.clearProperties();
- textureProfile.setProperty(new ProfileProperty("textures", texture, signature));
-
- Bukkit.getScheduler().runTask(main, new Runnable() {
- @Override
- public void run() {
- player.setPlayerProfile(textureProfile);
- }
- });
- } else {
- uuidConnection.disconnect();
+ Bukkit.getScheduler().runTask(main, new Runnable() {
+ @Override
+ public void run() {
+ player.setPlayerProfile(textureProfile);
+ }
+ });
+ } else {
+ uuidConnection.disconnect();
+ }
+ main.playerPremiumUUID.remove(player.getName());
+ } catch (Exception exception) {
}
- main.playerPremiumUUID.remove(player.getName());
- } catch (Exception exception) {
}
- }
- });
+ });
+ }
}
}
diff --git a/src/main/java/pw/kaboom/extras/Main.java b/src/main/java/pw/kaboom/extras/Main.java
index a5ac0ce..30860c6 100644
--- a/src/main/java/pw/kaboom/extras/Main.java
+++ b/src/main/java/pw/kaboom/extras/Main.java
@@ -19,8 +19,6 @@ import org.bukkit.Bukkit;
import org.bukkit.Color;
import org.bukkit.Material;
-import org.bukkit.block.BlockFace;
-
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
@@ -392,7 +390,6 @@ public class Main extends JavaPlugin {
Material.BROWN_MUSHROOM,
Material.RED_MUSHROOM,
Material.FIRE,
- /*Material.REDSTONE_WIRE,*/
Material.CROPS,
Material.RAILS,
Material.STONE_PLATE,
@@ -419,6 +416,7 @@ public class Main extends JavaPlugin {
Material.LADDER,
Material.WALL_SIGN,
Material.LEVER,
+ Material.REDSTONE_WIRE,
Material.REDSTONE_TORCH_OFF,
Material.REDSTONE_TORCH_ON,
Material.STONE_BUTTON,