mirror of
https://github.com/kaboomserver/extras.git
synced 2025-02-11 03:29:50 +00:00
Fixed bugs related to joining the server and cooldown
This commit is contained in:
parent
6e50d3d8d1
commit
a0634dabbe
3 changed files with 95 additions and 79 deletions
5
pom.xml
5
pom.xml
|
@ -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>
|
||||
|
|
|
@ -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<LivingEntity> worldEntities = event.getLocation().getWorld().getLivingEntities();
|
||||
int count = 0;
|
||||
try {
|
||||
Entity[] chunkEntities = event.getLocation().getChunk().getEntities();
|
||||
List<LivingEntity> 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) {
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue