forked from kaboomserver/extras
Compare commits
5 commits
Author | SHA1 | Date | |
---|---|---|---|
94d1fde563 | |||
9e26b370dd | |||
85fe8525d8 | |||
70f7134de9 | |||
a58ef649cf |
2 changed files with 15 additions and 58 deletions
src/main/java/pw/kaboom/extras/modules
|
@ -3,15 +3,12 @@ package pw.kaboom.extras.modules.entity;
|
|||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.CreatureSpawner;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.AreaEffectCloud;
|
||||
import org.bukkit.entity.EnderDragon;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.FallingBlock;
|
||||
import org.bukkit.entity.LightningStrike;
|
||||
import org.bukkit.entity.Slime;
|
||||
import org.bukkit.entity.TNTPrimed;
|
||||
|
@ -23,13 +20,10 @@ import org.bukkit.event.block.TNTPrimeEvent;
|
|||
import org.bukkit.event.entity.AreaEffectCloudApplyEvent;
|
||||
import org.bukkit.event.entity.EntitySpawnEvent;
|
||||
import org.bukkit.event.entity.ExplosionPrimeEvent;
|
||||
import org.bukkit.event.entity.ItemSpawnEvent;
|
||||
import org.bukkit.event.entity.SpawnerSpawnEvent;
|
||||
import org.bukkit.event.vehicle.VehicleCreateEvent;
|
||||
import org.bukkit.event.weather.LightningStrikeEvent;
|
||||
|
||||
import com.destroystokyo.paper.event.entity.PreCreatureSpawnEvent;
|
||||
import com.destroystokyo.paper.event.entity.PreSpawnerSpawnEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import pw.kaboom.extras.Main;
|
||||
|
||||
|
@ -130,28 +124,6 @@ public final class EntitySpawn implements Listener {
|
|||
}
|
||||
}
|
||||
|
||||
private void limitSpawner(final CreatureSpawner spawner) {
|
||||
if (EntityType.MINECART_MOB_SPAWNER.equals(spawner.getSpawnedType())) {
|
||||
spawner.setSpawnedType(EntityType.MINECART);
|
||||
}
|
||||
|
||||
if (spawner.getDelay() > 100) {
|
||||
spawner.setMaxSpawnDelay(100);
|
||||
spawner.setDelay(100);
|
||||
spawner.update();
|
||||
}
|
||||
|
||||
if (spawner.getSpawnCount() > 200) {
|
||||
spawner.setSpawnCount(200);
|
||||
spawner.update();
|
||||
}
|
||||
|
||||
if (spawner.getSpawnRange() > 50) {
|
||||
spawner.setSpawnRange(50);
|
||||
spawner.update();
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
void onAreaEffectCloudApply(final AreaEffectCloudApplyEvent event) {
|
||||
limitAreaEffectCloudRadius(event.getEntity());
|
||||
|
@ -185,15 +157,6 @@ public final class EntitySpawn implements Listener {
|
|||
applyEntityChanges(entity);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
void onItemSpawn(final ItemSpawnEvent event) {
|
||||
try {
|
||||
event.getEntity().getItemStack().getItemMeta();
|
||||
} catch (Exception exception) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
void onLightningStrike(final LightningStrikeEvent event) {
|
||||
final LightningStrike lightning = event.getLightning();
|
||||
|
@ -217,27 +180,6 @@ public final class EntitySpawn implements Listener {
|
|||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
void onPreSpawnerSpawn(final PreSpawnerSpawnEvent event) {
|
||||
try {
|
||||
limitSpawner((CreatureSpawner) event.getSpawnerLocation().getBlock().getState());
|
||||
} catch (Exception exception) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
void onSpawnerSpawn(final SpawnerSpawnEvent event) {
|
||||
if (EntityType.FALLING_BLOCK.equals(event.getEntityType())) {
|
||||
final FallingBlock block = (FallingBlock) event.getEntity();
|
||||
|
||||
if (block.getBlockData().getMaterial().equals(Material.SPAWNER)) {
|
||||
event.setCancelled(true);
|
||||
event.getSpawner().setSpawnedType(EntityType.FALLING_BLOCK);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
void onTNTPrime(final TNTPrimeEvent event) {
|
||||
if (event.getBlock()
|
||||
|
|
|
@ -36,6 +36,19 @@ public final class ServerCommand implements Listener {
|
|||
return false;
|
||||
}
|
||||
|
||||
public static boolean checkValidUTF8(final String component) {
|
||||
int len = component.length();
|
||||
|
||||
for (int i = 0; i < component.length(); i++) {
|
||||
int c = component.charAt(i);
|
||||
if (c == 0 || c >= 128) {
|
||||
len += c >= 2048 ? 2 : 1;
|
||||
}
|
||||
}
|
||||
|
||||
return len <= 65535;
|
||||
}
|
||||
|
||||
private static String checkSelectors(final String[] arr) {
|
||||
final String[] args = Arrays.copyOfRange(arr, 1, arr.length);
|
||||
final String str = String.join(" ", args);
|
||||
|
@ -75,6 +88,8 @@ public final class ServerCommand implements Listener {
|
|||
commandName = "/" + arr[1].toLowerCase();
|
||||
}
|
||||
|
||||
if (!checkValidUTF8(command)) return "cancel";
|
||||
|
||||
try {
|
||||
switch (commandName) {
|
||||
case "/minecraft:execute", "/execute" -> {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue