Fixed bugs related to joining the server and cooldown

This commit is contained in:
mathias 2019-03-09 23:33:44 +02:00
parent 6e50d3d8d1
commit a0634dabbe
3 changed files with 95 additions and 79 deletions

View file

@ -3,6 +3,11 @@
<groupId>pw.kaboom</groupId>
<artifactId>Extras</artifactId>
<version>master</version>
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
</properties>
<dependencies>
<dependency>

View file

@ -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,6 +373,7 @@ class Events implements Listener {
@EventHandler
void onEntitySpawn(EntitySpawnEvent event) {
Entity entity = event.getEntity();
try {
Entity[] chunkEntities = event.getLocation().getChunk().getEntities();
List<LivingEntity> worldEntities = event.getLocation().getWorld().getLivingEntities();
int count = 0;
@ -399,6 +407,8 @@ class Events implements Listener {
event.setCancelled(true);
}
}
} catch (Exception | StackOverflowError e) {
}
if (entity instanceof LivingEntity) {
LivingEntity mob = (LivingEntity) entity;
@ -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,13 +500,16 @@ class Events implements Listener {
void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
String arr[] = event.getMessage().split(" ");
UUID playerUUID = event.getPlayer().getUniqueId();
if (main.commandMillisList.containsKey(playerUUID)) {
long millisDifference = System.currentTimeMillis() - main.commandMillisList.get(playerUUID);
if (millisDifference < 400) {
event.setCancelled(true);
} else {
main.commandMillisList.put(playerUUID, System.currentTimeMillis());
}
}
main.commandMillisList.put(playerUUID, System.currentTimeMillis());
/* if (arr[0].toLowerCase().equals("/minecraft:blockdata") ||
arr[0].toLowerCase().equals("/blockdata")) {
@ -539,15 +550,18 @@ class Events implements Listener {
void onPlayerInteract(PlayerInteractEvent event) {
Player player = event.getPlayer();
UUID playerUUID = event.getPlayer().getUniqueId();
if (main.interactMillisList.containsKey(playerUUID)) {
long millisDifference = System.currentTimeMillis() - main.interactMillisList.get(playerUUID);
if (millisDifference < 200) {
event.setCancelled(true);
} else {
main.interactMillisList.put(playerUUID, System.currentTimeMillis());
}
}
main.interactMillisList.put(playerUUID, System.currentTimeMillis());
}
@EventHandler
void onPlayerJoin(PlayerJoinEvent event) {
final Player player = event.getPlayer();
@ -566,15 +580,13 @@ 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 {
event.allow();
}
final Player player = event.getPlayer();
event.allow();
player.setOp(true);
if (main.playerPremiumUUID.containsKey(player.getName())) {
@ -613,6 +625,7 @@ class Events implements Listener {
});
}
}
}
@EventHandler
void onPlayerQuit(PlayerQuitEvent event) {

View file

@ -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,