mirror of
https://github.com/kaboomserver/extras.git
synced 2025-08-03 11:06:27 +00:00
Address some entity crash issues
This commit is contained in:
parent
d3b171b5db
commit
ca92e0fada
10 changed files with 265 additions and 163 deletions
|
@ -0,0 +1,167 @@
|
||||||
|
package pw.kaboom.extras.helpers;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import org.bukkit.Server;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
|
import org.bukkit.conversations.Conversation;
|
||||||
|
import org.bukkit.conversations.ConversationAbandonedEvent;
|
||||||
|
import org.bukkit.permissions.Permission;
|
||||||
|
import org.bukkit.permissions.PermissionAttachment;
|
||||||
|
import org.bukkit.permissions.PermissionAttachmentInfo;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
public class MessageInterceptingCommandRunner implements ConsoleCommandSender {
|
||||||
|
private final ConsoleCommandSender wrappedSender;
|
||||||
|
private final Spigot spigotWrapper;
|
||||||
|
|
||||||
|
private class Spigot extends CommandSender.Spigot {
|
||||||
|
/**
|
||||||
|
* Sends this sender a chat component.
|
||||||
|
*
|
||||||
|
* @param component the components to send
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public final void sendMessage(final @NotNull net.md_5.bungee.api.chat.BaseComponent component) {
|
||||||
|
wrappedSender.spigot().sendMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends an array of components as a single message to the sender.
|
||||||
|
*
|
||||||
|
* @param components the components to send
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public final void sendMessage(final @NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
|
||||||
|
wrappedSender.spigot().sendMessage(components);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public MessageInterceptingCommandRunner(final ConsoleCommandSender wrappedSenderIn) {
|
||||||
|
this.wrappedSender = wrappedSenderIn;
|
||||||
|
spigotWrapper = new Spigot();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void sendMessage(final @NotNull String message) {
|
||||||
|
wrappedSender.sendMessage(message.substring(0, Math.min(message.length(), 256)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void sendMessage(final @NotNull String[] messages) {
|
||||||
|
wrappedSender.sendMessage(messages);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final @NotNull Server getServer() {
|
||||||
|
return wrappedSender.getServer();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final @NotNull String getName() {
|
||||||
|
return "OrderFulfiller";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final @NotNull CommandSender.Spigot spigot() {
|
||||||
|
return spigotWrapper;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final boolean isConversing() {
|
||||||
|
return wrappedSender.isConversing();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void acceptConversationInput(final @NotNull String input) {
|
||||||
|
wrappedSender.acceptConversationInput(input);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final boolean beginConversation(final @NotNull Conversation conversation) {
|
||||||
|
return wrappedSender.beginConversation(conversation);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void abandonConversation(final @NotNull Conversation conversation) {
|
||||||
|
wrappedSender.abandonConversation(conversation);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void abandonConversation(final @NotNull Conversation conversation, final @NotNull ConversationAbandonedEvent details) {
|
||||||
|
wrappedSender.abandonConversation(conversation, details);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void sendRawMessage(final @NotNull String message) {
|
||||||
|
wrappedSender.sendRawMessage(message.substring(0, Math.min(message.length(), 256)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final boolean isPermissionSet(final @NotNull String name) {
|
||||||
|
return wrappedSender.isPermissionSet(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final boolean isPermissionSet(final @NotNull Permission perm) {
|
||||||
|
return wrappedSender.isPermissionSet(perm);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final boolean hasPermission(final @NotNull String name) {
|
||||||
|
return wrappedSender.hasPermission(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final boolean hasPermission(final @NotNull Permission perm) {
|
||||||
|
return wrappedSender.hasPermission(perm);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final @NotNull PermissionAttachment addAttachment(final @NotNull Plugin plugin, final @NotNull String name, final boolean value) {
|
||||||
|
return wrappedSender.addAttachment(plugin, name, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final @NotNull PermissionAttachment addAttachment(final @NotNull Plugin plugin) {
|
||||||
|
return wrappedSender.addAttachment(plugin);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final @Nullable PermissionAttachment addAttachment(final @NotNull Plugin plugin, final @NotNull String name, final boolean value, final int ticks) {
|
||||||
|
return wrappedSender.addAttachment(plugin, name, value, ticks);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final @Nullable PermissionAttachment addAttachment(final @NotNull Plugin plugin, final int ticks) {
|
||||||
|
return wrappedSender.addAttachment(plugin, ticks);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void removeAttachment(final @NotNull PermissionAttachment attachment) {
|
||||||
|
wrappedSender.removeAttachment(attachment);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void recalculatePermissions() {
|
||||||
|
wrappedSender.recalculatePermissions();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final @NotNull Set<PermissionAttachmentInfo> getEffectivePermissions() {
|
||||||
|
return wrappedSender.getEffectivePermissions();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final boolean isOp() {
|
||||||
|
return wrappedSender.isOp();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void setOp(final boolean value) {
|
||||||
|
wrappedSender.setOp(value);
|
||||||
|
}
|
||||||
|
}
|
5
src/main/java/pw/kaboom/extras/helpers/NotNull.java
Normal file
5
src/main/java/pw/kaboom/extras/helpers/NotNull.java
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
package pw.kaboom.extras.helpers;
|
||||||
|
|
||||||
|
public @interface NotNull {
|
||||||
|
|
||||||
|
}
|
|
@ -30,31 +30,6 @@ public final class BlockCheck implements Listener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*@EventHandler
|
|
||||||
void onPlayerPortal(final PlayerPortalEvent event) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
event.getPlayer().teleportAsync(event.getTo());
|
|
||||||
event.getPortalTravelAgent().findOrCreate(event.getTo());
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/*@EventHandler
|
|
||||||
void onPortalCreate(final PortalCreateEvent event) {
|
|
||||||
if (CreateReason.OBC_DESTINATION.equals(event.getReason())) {
|
|
||||||
event.setCancelled(true);
|
|
||||||
|
|
||||||
for (Block block : event.getBlocks()) {
|
|
||||||
|
|
||||||
System.out.println(block.getLocation().toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/*@Subscribe
|
|
||||||
public void onEditSessionEvent(final EditSessionEvent event) {
|
|
||||||
event.setExtent(new NullExtent());
|
|
||||||
|
|
||||||
}*/
|
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onSignChange(final SignChangeEvent event) {
|
void onSignChange(final SignChangeEvent event) {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -111,23 +111,9 @@ public final class BlockPhysics implements Listener {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
case TNT:
|
|
||||||
for (BlockFace face : getBlockFaces()) {
|
|
||||||
if (event.getBlock().getRelative(face).getType() != Material.REDSTONE_BLOCK
|
|
||||||
&& event.getBlock().getRelative(face).getType() != Material.REDSTONE_TORCH) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*if (!event.getBlock().getType().isSolid()) {
|
|
||||||
for (BlockFace face : blockFaces) {
|
|
||||||
event.getBlock().getRelative(face).getType();
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
package pw.kaboom.extras.modules.entity;
|
package pw.kaboom.extras.modules.entity;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
import org.bukkit.Chunk;
|
import org.bukkit.Chunk;
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.CreatureSpawner;
|
import org.bukkit.block.CreatureSpawner;
|
||||||
|
@ -20,6 +21,7 @@ import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.entity.AreaEffectCloudApplyEvent;
|
import org.bukkit.event.entity.AreaEffectCloudApplyEvent;
|
||||||
import org.bukkit.event.entity.EntitySpawnEvent;
|
import org.bukkit.event.entity.EntitySpawnEvent;
|
||||||
import org.bukkit.event.entity.ExplosionPrimeEvent;
|
import org.bukkit.event.entity.ExplosionPrimeEvent;
|
||||||
|
import org.bukkit.event.entity.ItemSpawnEvent;
|
||||||
import org.bukkit.event.entity.SpawnerSpawnEvent;
|
import org.bukkit.event.entity.SpawnerSpawnEvent;
|
||||||
import org.bukkit.event.vehicle.VehicleCreateEvent;
|
import org.bukkit.event.vehicle.VehicleCreateEvent;
|
||||||
import org.bukkit.event.weather.LightningStrikeEvent;
|
import org.bukkit.event.weather.LightningStrikeEvent;
|
||||||
|
@ -85,7 +87,7 @@ public final class EntitySpawn implements Listener {
|
||||||
final int worldTntCount =
|
final int worldTntCount =
|
||||||
!isAddToWorldEvent ? world.getEntitiesByClass(TNTPrimed.class).size() + 1
|
!isAddToWorldEvent ? world.getEntitiesByClass(TNTPrimed.class).size() + 1
|
||||||
: world.getEntitiesByClass(TNTPrimed.class).size();
|
: world.getEntitiesByClass(TNTPrimed.class).size();
|
||||||
final int worldTntCountLimit = 100;
|
final int worldTntCountLimit = 200;
|
||||||
|
|
||||||
if (worldTntCount >= worldTntCountLimit) {
|
if (worldTntCount >= worldTntCountLimit) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -136,39 +138,9 @@ public final class EntitySpawn implements Listener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Location limitLocation(final Location location) {
|
|
||||||
double x = location.getX();
|
|
||||||
double y = location.getY();
|
|
||||||
double z = location.getZ();
|
|
||||||
|
|
||||||
final int maxValue = 30000000;
|
|
||||||
final int minValue = -30000000;
|
|
||||||
|
|
||||||
if (x > maxValue) {
|
|
||||||
x = maxValue;
|
|
||||||
}
|
|
||||||
if (x < minValue) {
|
|
||||||
x = minValue;
|
|
||||||
}
|
|
||||||
if (y > maxValue) {
|
|
||||||
y = maxValue;
|
|
||||||
}
|
|
||||||
if (y < minValue) {
|
|
||||||
y = minValue;
|
|
||||||
}
|
|
||||||
if (z > maxValue) {
|
|
||||||
z = maxValue;
|
|
||||||
}
|
|
||||||
if (z < minValue) {
|
|
||||||
z = minValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
return new Location(location.getWorld(), x, y, z);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void limitSlimeSize(final Slime slime) {
|
private void limitSlimeSize(final Slime slime) {
|
||||||
if (slime.getSize() > 50) {
|
if (slime.getSize() > 20) {
|
||||||
slime.setSize(50);
|
slime.setSize(20);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,19 +174,19 @@ public final class EntitySpawn implements Listener {
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onEntityAddToWorld(final EntityAddToWorldEvent event) {
|
void onEntityAddToWorld(final EntityAddToWorldEvent event) {
|
||||||
final Entity entity = event.getEntity();
|
final Entity entity = event.getEntity();
|
||||||
final double x = entity.getLocation().getX();
|
|
||||||
final double y = entity.getLocation().getY();
|
|
||||||
final double z = entity.getLocation().getZ();
|
|
||||||
|
|
||||||
if (isOutsideBoundaries(x, y, z)) {
|
|
||||||
entity.remove();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
final World world = entity.getWorld();
|
|
||||||
final Chunk chunk = entity.getChunk();
|
final Chunk chunk = entity.getChunk();
|
||||||
|
|
||||||
if (chunk.isLoaded()) {
|
if (chunk.isLoaded()) {
|
||||||
|
final double x = entity.getLocation().getX();
|
||||||
|
final double y = entity.getLocation().getY();
|
||||||
|
final double z = entity.getLocation().getZ();
|
||||||
|
|
||||||
|
if (isOutsideBoundaries(x, y, z)) {
|
||||||
|
entity.remove();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final World world = entity.getWorld();
|
||||||
final EntityType entityType = entity.getType();
|
final EntityType entityType = entity.getType();
|
||||||
final boolean isAddToWorldEvent = true;
|
final boolean isAddToWorldEvent = true;
|
||||||
|
|
||||||
|
@ -223,13 +195,13 @@ public final class EntitySpawn implements Listener {
|
||||||
entity.remove();
|
entity.remove();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (checkShouldRemoveEntities(world)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
applyEntityChanges(entity);
|
applyEntityChanges(entity);
|
||||||
|
|
||||||
if (chunk.isLoaded()) {
|
|
||||||
checkShouldRemoveEntities(world);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
@ -266,6 +238,15 @@ public final class EntitySpawn implements Listener {
|
||||||
applyEntityChanges(entity);
|
applyEntityChanges(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
void onItemSpawn(final ItemSpawnEvent event) {
|
||||||
|
try {
|
||||||
|
event.getEntity().getItemStack().getItemMeta();
|
||||||
|
} catch (Exception exception) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onLightningStrike(final LightningStrikeEvent event) {
|
void onLightningStrike(final LightningStrikeEvent event) {
|
||||||
final LightningStrike lightning = event.getLightning();
|
final LightningStrike lightning = event.getLightning();
|
||||||
|
@ -325,7 +306,7 @@ public final class EntitySpawn implements Listener {
|
||||||
case EXPLOSION:
|
case EXPLOSION:
|
||||||
case FIRE:
|
case FIRE:
|
||||||
case REDSTONE:
|
case REDSTONE:
|
||||||
if (event.getBlock().getWorld().getEntitiesByClass(TNTPrimed.class).size() > 100) {
|
if (new Random().nextBoolean()) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -1,13 +1,43 @@
|
||||||
package pw.kaboom.extras.modules.entity;
|
package pw.kaboom.extras.modules.entity;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
import org.bukkit.event.entity.EntityTeleportEvent;
|
import org.bukkit.event.entity.EntityTeleportEvent;
|
||||||
|
|
||||||
public final class EntityTeleport implements Listener {
|
public final class EntityTeleport implements Listener {
|
||||||
|
public static Location limitLocation(final Location location) {
|
||||||
|
double x = location.getX();
|
||||||
|
double y = location.getY();
|
||||||
|
double z = location.getZ();
|
||||||
|
|
||||||
|
final int maxValue = 30000000;
|
||||||
|
final int minValue = -30000000;
|
||||||
|
|
||||||
|
if (x > maxValue) {
|
||||||
|
x = maxValue;
|
||||||
|
}
|
||||||
|
if (x < minValue) {
|
||||||
|
x = minValue;
|
||||||
|
}
|
||||||
|
if (y > maxValue) {
|
||||||
|
y = maxValue;
|
||||||
|
}
|
||||||
|
if (y < minValue) {
|
||||||
|
y = minValue;
|
||||||
|
}
|
||||||
|
if (z > maxValue) {
|
||||||
|
z = maxValue;
|
||||||
|
}
|
||||||
|
if (z < minValue) {
|
||||||
|
z = minValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Location(location.getWorld(), x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onEntityTeleport(final EntityTeleportEvent event) {
|
void onEntityTeleport(final EntityTeleportEvent event) {
|
||||||
event.setTo(EntitySpawn.limitLocation(event.getTo()));
|
event.setTo(limitLocation(event.getTo()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,11 @@ public final class PlayerCommand implements Listener {
|
||||||
event.setMessage(checkedCommand);
|
event.setMessage(checkedCommand);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*final MessageInterceptingCommandRunner cmdRunner = new MessageInterceptingCommandRunner(Bukkit.getConsoleSender());
|
||||||
|
Bukkit.dispatchCommand(cmdRunner, event.getMessage().substring(1));
|
||||||
|
|
||||||
|
event.setCancelled(true);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
public static HashMap<UUID, Long> getCommandMillisList() {
|
public static HashMap<UUID, Long> getCommandMillisList() {
|
||||||
|
|
|
@ -1,15 +1,11 @@
|
||||||
package pw.kaboom.extras.modules.player;
|
package pw.kaboom.extras.modules.player;
|
||||||
|
|
||||||
import java.io.File;
|
import java.util.HashSet;
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.GameRule;
|
import org.bukkit.GameRule;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
@ -23,33 +19,12 @@ import org.bukkit.event.player.PlayerStatisticIncrementEvent;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import com.destroystokyo.paper.event.profile.PreLookupProfileEvent;
|
import com.destroystokyo.paper.event.profile.PreLookupProfileEvent;
|
||||||
import com.destroystokyo.paper.profile.PlayerProfile;
|
import com.destroystokyo.paper.profile.ProfileProperty;
|
||||||
import com.google.common.base.Charsets;
|
import com.google.common.base.Charsets;
|
||||||
|
|
||||||
import pw.kaboom.extras.Main;
|
import pw.kaboom.extras.Main;
|
||||||
import pw.kaboom.extras.helpers.SkinDownloader;
|
|
||||||
|
|
||||||
public final class PlayerConnection implements Listener {
|
public final class PlayerConnection implements Listener {
|
||||||
private long connectionMillis;
|
|
||||||
|
|
||||||
private final File configFile = new File("spigot.yml");
|
|
||||||
private final FileConfiguration spigotConfig = YamlConfiguration.loadConfiguration(configFile);
|
|
||||||
private final ConfigurationSection configSection = spigotConfig.getConfigurationSection("commands");
|
|
||||||
|
|
||||||
/*public static boolean isIllegalItem(ItemStack item) {
|
|
||||||
//try {
|
|
||||||
if (item != null &&
|
|
||||||
item.getItemMeta() != null) {
|
|
||||||
System.out.println("itit");
|
|
||||||
System.out.println(item.getItemMeta().getDisplayName());
|
|
||||||
}
|
|
||||||
/*} catch (Exception | StackOverflowError exception) {
|
|
||||||
System.out.println("yes");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onAsyncPlayerPreLogin(final AsyncPlayerPreLoginEvent event) {
|
void onAsyncPlayerPreLogin(final AsyncPlayerPreLoginEvent event) {
|
||||||
if (event.getName().length() > 16) {
|
if (event.getName().length() > 16) {
|
||||||
|
@ -61,7 +36,7 @@ public final class PlayerConnection implements Listener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
/*try {
|
||||||
final PlayerProfile profile = event.getPlayerProfile();
|
final PlayerProfile profile = event.getPlayerProfile();
|
||||||
|
|
||||||
UUID offlineUUID = UUID.nameUUIDFromBytes(("OfflinePlayer:" + event.getName()).getBytes(Charsets.UTF_8));
|
UUID offlineUUID = UUID.nameUUIDFromBytes(("OfflinePlayer:" + event.getName()).getBytes(Charsets.UTF_8));
|
||||||
|
@ -71,26 +46,10 @@ public final class PlayerConnection implements Listener {
|
||||||
SkinDownloader skinDownloader = new SkinDownloader();
|
SkinDownloader skinDownloader = new SkinDownloader();
|
||||||
skinDownloader.fillJoinProfile(profile, event.getName(), event.getUniqueId());
|
skinDownloader.fillJoinProfile(profile, event.getName(), event.getUniqueId());
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*@EventHandler
|
|
||||||
void onInventoryClose(InventoryCloseEvent event) {
|
|
||||||
for (ItemStack item : event.getInventory().getContents()) {
|
|
||||||
if (isIllegalItem(item)) {
|
|
||||||
event.getInventory().clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/*@EventHandler
|
|
||||||
void onPlayerCommandSend(final PlayerCommandSendEvent event) {
|
|
||||||
if (event.getPlayer().isOnline()) {
|
|
||||||
event.getCommands().clear();
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onPlayerJoin(final PlayerJoinEvent event) {
|
void onPlayerJoin(final PlayerJoinEvent event) {
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
|
@ -125,28 +84,8 @@ public final class PlayerConnection implements Listener {
|
||||||
&& event.getHostname().endsWith(":25565")) {
|
&& event.getHostname().endsWith(":25565")) {
|
||||||
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");
|
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");
|
||||||
return;
|
return;
|
||||||
} else if (System.currentTimeMillis() - connectionMillis < 2000) {
|
|
||||||
if (!configSection.getString("tab-complete").equals("-1")) {
|
|
||||||
configSection.set("tab-complete", -1);
|
|
||||||
try {
|
|
||||||
spigotConfig.save(configFile);
|
|
||||||
|
|
||||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "spigot reload");
|
|
||||||
} catch (IOException ignored) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (configSection.getString("tab-complete").equals("-1")) {
|
|
||||||
configSection.set("tab-complete", 0);
|
|
||||||
try {
|
|
||||||
spigotConfig.save(configFile);
|
|
||||||
|
|
||||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "spigot reload");
|
|
||||||
} catch (IOException ignored) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
connectionMillis = System.currentTimeMillis();
|
|
||||||
|
|
||||||
if (!JavaPlugin.getPlugin(Main.class).getConfig().getBoolean("enableJoinRestrictions")) {
|
if (!JavaPlugin.getPlugin(Main.class).getConfig().getBoolean("enableJoinRestrictions")) {
|
||||||
event.allow();
|
event.allow();
|
||||||
}
|
}
|
||||||
|
@ -158,16 +97,16 @@ public final class PlayerConnection implements Listener {
|
||||||
|
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
try {
|
|
||||||
player.setPlayerProfile(SkinDownloader.getProfile(player.getUniqueId()));
|
|
||||||
SkinDownloader.removeProfile(player.getUniqueId());
|
|
||||||
} catch (Exception ignored) {
|
|
||||||
}
|
|
||||||
|
|
||||||
if (JavaPlugin.getPlugin(Main.class).getConfig().getBoolean("opOnJoin")
|
if (JavaPlugin.getPlugin(Main.class).getConfig().getBoolean("opOnJoin")
|
||||||
&& !player.isOp()) {
|
&& !player.isOp()) {
|
||||||
player.setOp(true);
|
player.setOp(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*try {
|
||||||
|
player.setPlayerProfile(SkinDownloader.getProfile(player.getUniqueId()));
|
||||||
|
SkinDownloader.removeProfile(player.getUniqueId());
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
@ -200,7 +139,10 @@ public final class PlayerConnection implements Listener {
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onPreLookupProfile(final PreLookupProfileEvent event) {
|
void onPreLookupProfile(final PreLookupProfileEvent event) {
|
||||||
|
// Disable Mojang API calls, we don't need them
|
||||||
UUID offlineUUID = UUID.nameUUIDFromBytes(("OfflinePlayer:" + event.getName()).getBytes(Charsets.UTF_8));
|
UUID offlineUUID = UUID.nameUUIDFromBytes(("OfflinePlayer:" + event.getName()).getBytes(Charsets.UTF_8));
|
||||||
event.setUUID(offlineUUID);
|
event.setUUID(offlineUUID);
|
||||||
|
|
||||||
|
event.setProfileProperties(new HashSet<ProfileProperty>());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
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.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;
|
||||||
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
@ -44,5 +46,14 @@ public final class PlayerInteract implements Listener {
|
||||||
item.addUnsafeEnchantment(Enchantment.RIPTIDE, riptideLimit);
|
item.addUnsafeEnchantment(Enchantment.RIPTIDE, riptideLimit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
|
||||||
|
final Block clickedBlock = event.getClickedBlock();
|
||||||
|
|
||||||
|
if (clickedBlock.getType() == Material.SIGN
|
||||||
|
|| clickedBlock.getType() == Material.WALL_SIGN) {
|
||||||
|
clickedBlock.getState().update();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
import org.bukkit.event.player.PlayerChangedWorldEvent;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
|
|
||||||
import pw.kaboom.extras.modules.entity.EntitySpawn;
|
import pw.kaboom.extras.modules.entity.EntityTeleport;
|
||||||
|
|
||||||
public final class PlayerTeleport implements Listener {
|
public final class PlayerTeleport implements Listener {
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
@ -22,6 +22,6 @@ public final class PlayerTeleport implements Listener {
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onPlayerTeleport(final PlayerTeleportEvent event) {
|
void onPlayerTeleport(final PlayerTeleportEvent event) {
|
||||||
event.setTo(EntitySpawn.limitLocation(event.getTo()));
|
event.setTo(EntityTeleport.limitLocation(event.getTo()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue