mirror of
https://github.com/kaboomserver/extras.git
synced 2025-07-26 23:45:15 +00:00
Prevent server from half-crashing
This commit is contained in:
parent
92d9e4ad64
commit
6fe4e56a7f
3 changed files with 50 additions and 48 deletions
|
@ -40,7 +40,7 @@ public final class BlockPhysics implements Listener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception | StackOverflowError e) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,44 +52,52 @@ public final class BlockPhysics implements Listener {
|
||||||
event.getBlock().setType(Material.AIR, false);
|
event.getBlock().setType(Material.AIR, false);
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception | StackOverflowError e) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onBlockForm(final BlockFormEvent event) {
|
void onBlockForm(final BlockFormEvent event) {
|
||||||
if (event.getBlock().getType() == Material.LAVA
|
try {
|
||||||
|| event.getBlock().getType() == Material.WATER) {
|
if (event.getBlock().getType() == Material.LAVA
|
||||||
for (BlockFace face : getBlockFaces()) {
|
|| event.getBlock().getType() == Material.WATER) {
|
||||||
if (event.getBlock().getRelative(face).getType() != Material.LAVA
|
for (BlockFace face : getBlockFaces()) {
|
||||||
&& event.getBlock().getRelative(face).getType() != Material.WATER) {
|
if (event.getBlock().getRelative(face).getType() != Material.LAVA
|
||||||
return;
|
&& event.getBlock().getRelative(face).getType() != Material.WATER) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
event.setCancelled(true);
|
|
||||||
}
|
}
|
||||||
|
} catch (Exception | StackOverflowError e) {
|
||||||
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onBlockFromTo(final BlockFromToEvent event) {
|
void onBlockFromTo(final BlockFromToEvent event) {
|
||||||
if (event.getBlock().getType() == Material.LAVA
|
try {
|
||||||
|| event.getBlock().getType() == Material.WATER) {
|
if (event.getBlock().getType() == Material.LAVA
|
||||||
boolean lavaFound = false;
|
|| event.getBlock().getType() == Material.WATER) {
|
||||||
boolean waterFound = false;
|
boolean lavaFound = false;
|
||||||
|
boolean waterFound = false;
|
||||||
|
|
||||||
for (BlockFace face : getBlockFaces()) {
|
for (BlockFace face : getBlockFaces()) {
|
||||||
if (event.getBlock().getRelative(face).getType() == Material.LAVA && !lavaFound) {
|
if (event.getBlock().getRelative(face).getType() == Material.LAVA && !lavaFound) {
|
||||||
lavaFound = true;
|
lavaFound = true;
|
||||||
} else if (event.getBlock().getRelative(face).getType() == Material.WATER && !waterFound) {
|
} else if (event.getBlock().getRelative(face).getType() == Material.WATER && !waterFound) {
|
||||||
waterFound = true;
|
waterFound = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lavaFound && waterFound) {
|
if (lavaFound && waterFound) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (Exception | StackOverflowError e) {
|
||||||
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,7 +129,7 @@ public final class BlockPhysics implements Listener {
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception | StackOverflowError e) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,27 +27,21 @@ import pw.kaboom.extras.Main;
|
||||||
public final class PlayerConnection implements Listener {
|
public final class PlayerConnection implements Listener {
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onAsyncPlayerPreLogin(final AsyncPlayerPreLoginEvent event) {
|
void onAsyncPlayerPreLogin(final AsyncPlayerPreLoginEvent event) {
|
||||||
if (event.getName().length() > 16) {
|
if (Bukkit.getPlayer(event.getName()) != null) {
|
||||||
event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "Your username can't be longer than 16 characters");
|
event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "A player with that username is already logged in");
|
||||||
} else {
|
|
||||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
|
||||||
if (event.getName().equals(player.getName())) {
|
|
||||||
event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "A player with that username is already logged in");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*try {
|
|
||||||
final PlayerProfile profile = event.getPlayerProfile();
|
|
||||||
|
|
||||||
UUID offlineUUID = UUID.nameUUIDFromBytes(("OfflinePlayer:" + event.getName()).getBytes(Charsets.UTF_8));
|
|
||||||
|
|
||||||
profile.setId(offlineUUID);
|
|
||||||
|
|
||||||
SkinDownloader skinDownloader = new SkinDownloader();
|
|
||||||
skinDownloader.fillJoinProfile(profile, event.getName(), event.getUniqueId());
|
|
||||||
} catch (Exception ignored) {
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*try {
|
||||||
|
final PlayerProfile profile = event.getPlayerProfile();
|
||||||
|
|
||||||
|
UUID offlineUUID = UUID.nameUUIDFromBytes(("OfflinePlayer:" + event.getName()).getBytes(Charsets.UTF_8));
|
||||||
|
|
||||||
|
profile.setId(offlineUUID);
|
||||||
|
|
||||||
|
SkinDownloader skinDownloader = new SkinDownloader();
|
||||||
|
skinDownloader.fillJoinProfile(profile, event.getName(), event.getUniqueId());
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
package pw.kaboom.extras.modules.player;
|
package pw.kaboom.extras.modules.player;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.BlockState;
|
||||||
|
import org.bukkit.block.Sign;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
@ -48,11 +49,10 @@ public final class PlayerInteract implements Listener {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
|
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
|
||||||
final Block clickedBlock = event.getClickedBlock();
|
final BlockState clickedBlock = event.getClickedBlock().getState();
|
||||||
|
|
||||||
if (clickedBlock.getType() == Material.SIGN
|
if (clickedBlock instanceof Sign) {
|
||||||
|| clickedBlock.getType() == Material.WALL_SIGN) {
|
clickedBlock.update();
|
||||||
clickedBlock.getState().update();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue