mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 05:06:44 +01:00
Minor cleanup in favor of Java 16
- Addressing a few command deprecations during the major release superseded by toggles - Don't swallow SQL warnings in loggers behind debug, as it's often set to false - Deleted JavaVersionCheck, it's part of ServerLib.
This commit is contained in:
parent
0341111f8f
commit
3748d8e246
@ -68,7 +68,6 @@ import com.plotsquared.bukkit.uuid.SquirrelIdUUIDService;
|
||||
import com.plotsquared.core.PlotPlatform;
|
||||
import com.plotsquared.core.PlotSquared;
|
||||
import com.plotsquared.core.backup.BackupManager;
|
||||
import com.plotsquared.core.command.WE_Anywhere;
|
||||
import com.plotsquared.core.components.ComponentPresetManager;
|
||||
import com.plotsquared.core.configuration.ConfigurationNode;
|
||||
import com.plotsquared.core.configuration.ConfigurationSection;
|
||||
@ -162,7 +161,6 @@ import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static com.plotsquared.bukkit.util.JavaVersionCheck.checkJvm;
|
||||
import static com.plotsquared.core.util.PremiumVerification.getDownloadID;
|
||||
import static com.plotsquared.core.util.PremiumVerification.getResourceID;
|
||||
import static com.plotsquared.core.util.PremiumVerification.getUserID;
|
||||
@ -321,9 +319,6 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
||||
try {
|
||||
logger.info("{} hooked into WorldEdit", this.pluginName());
|
||||
WorldEdit.getInstance().getEventBus().register(this.injector().getInstance(WESubscriber.class));
|
||||
if (Settings.Enabled_Components.COMMANDS) {
|
||||
new WE_Anywhere();
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
logger.error(
|
||||
"Incompatible version of WorldEdit, please upgrade: https://builds.enginehub.org/job/worldedit?branch=master");
|
||||
@ -542,10 +537,9 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
||||
}
|
||||
}, 100L, 100L);
|
||||
|
||||
// Check whether the server runs on 11 or greater
|
||||
checkJvm();
|
||||
// Check if we are in a safe environment
|
||||
ServerLib.checkUnsafeForks();
|
||||
// Check whether the server runs on 16 or greater
|
||||
ServerLib.checkJavaLTS();
|
||||
}
|
||||
|
||||
@ -947,8 +941,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
||||
if (Settings.Enabled_Components.KILL_ROAD_MOBS) {
|
||||
Location location = entity.getLocation();
|
||||
if (BukkitUtil.adapt(location).isPlotRoad()) {
|
||||
if (entity instanceof LivingEntity) {
|
||||
LivingEntity livingEntity = (LivingEntity) entity;
|
||||
if (entity instanceof LivingEntity livingEntity) {
|
||||
if ((Settings.Enabled_Components.KILL_OWNED_ROAD_MOBS || !livingEntity.isLeashed())
|
||||
|| !entity.hasMetadata("keep")) {
|
||||
Entity passenger = entity.getPassenger();
|
||||
@ -976,7 +969,6 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
||||
}
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -189,8 +189,7 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
||||
AbstractHorse horse = (AbstractHorse) entity;
|
||||
this.horse = new HorseStats();
|
||||
this.horse.jump = horse.getJumpStrength();
|
||||
if (horse instanceof ChestedHorse) {
|
||||
ChestedHorse horse1 = (ChestedHorse) horse;
|
||||
if (horse instanceof ChestedHorse horse1) {
|
||||
this.horse.chest = horse1.isCarryingChest();
|
||||
}
|
||||
//todo these horse features need fixing
|
||||
|
@ -243,22 +243,13 @@ public class BlockEventListener implements Listener {
|
||||
default:
|
||||
if (Settings.Redstone.DETECT_INVALID_EDGE_PISTONS) {
|
||||
switch (block.getType()) {
|
||||
case PISTON:
|
||||
case STICKY_PISTON:
|
||||
case PISTON, STICKY_PISTON -> {
|
||||
org.bukkit.block.data.Directional piston = (org.bukkit.block.data.Directional) block.getBlockData();
|
||||
switch (piston.getFacing()) {
|
||||
case EAST:
|
||||
location = location.add(1, 0, 0);
|
||||
break;
|
||||
case SOUTH:
|
||||
location = location.add(-1, 0, 0);
|
||||
break;
|
||||
case WEST:
|
||||
location = location.add(0, 0, 1);
|
||||
break;
|
||||
case NORTH:
|
||||
location = location.add(0, 0, -1);
|
||||
break;
|
||||
case EAST -> location = location.add(1, 0, 0);
|
||||
case SOUTH -> location = location.add(-1, 0, 0);
|
||||
case WEST -> location = location.add(0, 0, 1);
|
||||
case NORTH -> location = location.add(0, 0, -1);
|
||||
}
|
||||
Plot newPlot = area.getOwnedPlotAbs(location);
|
||||
if (!plot.equals(newPlot)) {
|
||||
@ -268,6 +259,7 @@ public class BlockEventListener implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -548,8 +540,7 @@ public class BlockEventListener implements Listener {
|
||||
}
|
||||
boolean allowed = plot.getFlag(flag);
|
||||
Entity entity = event.getEntity();
|
||||
if (entity instanceof Player) {
|
||||
Player player = (Player) entity;
|
||||
if (entity instanceof Player player) {
|
||||
BukkitPlayer plotPlayer = BukkitUtil.adapt(player);
|
||||
if (!plot.isAdded(plotPlayer.getUUID())) {
|
||||
if (allowed) {
|
||||
@ -889,37 +880,7 @@ public class BlockEventListener implements Listener {
|
||||
public void onBlockDispense(BlockDispenseEvent event) {
|
||||
Material type = event.getItem().getType();
|
||||
switch (type) {
|
||||
case SHULKER_BOX:
|
||||
case WHITE_SHULKER_BOX:
|
||||
case ORANGE_SHULKER_BOX:
|
||||
case MAGENTA_SHULKER_BOX:
|
||||
case LIGHT_BLUE_SHULKER_BOX:
|
||||
case YELLOW_SHULKER_BOX:
|
||||
case LIME_SHULKER_BOX:
|
||||
case PINK_SHULKER_BOX:
|
||||
case GRAY_SHULKER_BOX:
|
||||
case LIGHT_GRAY_SHULKER_BOX:
|
||||
case CYAN_SHULKER_BOX:
|
||||
case PURPLE_SHULKER_BOX:
|
||||
case BLUE_SHULKER_BOX:
|
||||
case BROWN_SHULKER_BOX:
|
||||
case GREEN_SHULKER_BOX:
|
||||
case RED_SHULKER_BOX:
|
||||
case BLACK_SHULKER_BOX:
|
||||
case CARVED_PUMPKIN:
|
||||
case WITHER_SKELETON_SKULL:
|
||||
case FLINT_AND_STEEL:
|
||||
case BONE_MEAL:
|
||||
case SHEARS:
|
||||
case GLASS_BOTTLE:
|
||||
case GLOWSTONE:
|
||||
case COD_BUCKET:
|
||||
case PUFFERFISH_BUCKET:
|
||||
case SALMON_BUCKET:
|
||||
case TROPICAL_FISH_BUCKET:
|
||||
case BUCKET:
|
||||
case WATER_BUCKET:
|
||||
case LAVA_BUCKET: {
|
||||
case SHULKER_BOX, WHITE_SHULKER_BOX, ORANGE_SHULKER_BOX, MAGENTA_SHULKER_BOX, LIGHT_BLUE_SHULKER_BOX, YELLOW_SHULKER_BOX, LIME_SHULKER_BOX, PINK_SHULKER_BOX, GRAY_SHULKER_BOX, LIGHT_GRAY_SHULKER_BOX, CYAN_SHULKER_BOX, PURPLE_SHULKER_BOX, BLUE_SHULKER_BOX, BROWN_SHULKER_BOX, GREEN_SHULKER_BOX, RED_SHULKER_BOX, BLACK_SHULKER_BOX, CARVED_PUMPKIN, WITHER_SKELETON_SKULL, FLINT_AND_STEEL, BONE_MEAL, SHEARS, GLASS_BOTTLE, GLOWSTONE, COD_BUCKET, PUFFERFISH_BUCKET, SALMON_BUCKET, TROPICAL_FISH_BUCKET, BUCKET, WATER_BUCKET, LAVA_BUCKET -> {
|
||||
if (event.getBlock().getType() == Material.DROPPER) {
|
||||
return;
|
||||
}
|
||||
@ -1100,8 +1061,7 @@ public class BlockEventListener implements Listener {
|
||||
if (ignitingEntity instanceof Fireball) {
|
||||
Projectile fireball = (Projectile) ignitingEntity;
|
||||
Location location = null;
|
||||
if (fireball.getShooter() instanceof Entity) {
|
||||
Entity shooter = (Entity) fireball.getShooter();
|
||||
if (fireball.getShooter() instanceof Entity shooter) {
|
||||
location = BukkitUtil.adapt(shooter.getLocation());
|
||||
} else if (fireball.getShooter() instanceof BlockProjectileSource) {
|
||||
Block shooter =
|
||||
|
@ -259,7 +259,7 @@ public class ChunkListener implements Listener {
|
||||
|
||||
private void cleanChunk(final Chunk chunk) {
|
||||
TaskManager.index.incrementAndGet();
|
||||
final Integer currentIndex = TaskManager.index.get();
|
||||
final int currentIndex = TaskManager.index.get();
|
||||
PlotSquaredTask task = TaskManager.runTaskRepeat(() -> {
|
||||
if (!chunk.isLoaded()) {
|
||||
Objects.requireNonNull(TaskManager.removeTask(currentIndex)).cancel();
|
||||
|
@ -111,8 +111,7 @@ public class EntityEventListener implements Listener {
|
||||
*/
|
||||
if (!BukkitEntityUtil.entityDamage(damager, victim, event.getCause())) {
|
||||
if (event.isCancelled()) {
|
||||
if (victim instanceof Ageable) {
|
||||
Ageable ageable = (Ageable) victim;
|
||||
if (victim instanceof Ageable ageable) {
|
||||
if (ageable.getAge() == -24000) {
|
||||
ageable.setAge(0);
|
||||
ageable.setAdult();
|
||||
|
@ -436,8 +436,7 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
||||
if (!vehicle.getPassengers().isEmpty()) {
|
||||
Entity passenger = vehicle.getPassengers().get(0);
|
||||
|
||||
if (passenger instanceof Player) {
|
||||
final Player player = (Player) passenger;
|
||||
if (passenger instanceof final Player player) {
|
||||
// reset
|
||||
if (moveTmp == null) {
|
||||
moveTmp = new PlayerMoveEvent(null, from, to);
|
||||
@ -778,10 +777,9 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
||||
}
|
||||
|
||||
HumanEntity clicker = event.getWhoClicked();
|
||||
if (!(clicker instanceof Player)) {
|
||||
if (!(clicker instanceof Player player)) {
|
||||
return;
|
||||
}
|
||||
Player player = (Player) clicker;
|
||||
BukkitPlayer pp = BukkitUtil.adapt(player);
|
||||
final PlotInventory inventory = PlotInventory.getOpenPlotInventory(pp);
|
||||
if (inventory != null && event.getRawSlot() == event.getSlot()) {
|
||||
@ -1029,7 +1027,6 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
||||
Block block = event.getClickedBlock();
|
||||
Location location = BukkitUtil.adapt(block.getLocation());
|
||||
Action action = event.getAction();
|
||||
outer:
|
||||
switch (action) {
|
||||
case PHYSICAL: {
|
||||
eventType = PlayerBlockEventType.TRIGGER_PHYSICAL;
|
||||
@ -1077,12 +1074,12 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
||||
if (PaperLib.isPaper()) {
|
||||
if (MaterialTags.SPAWN_EGGS.isTagged(type) || Material.EGG.equals(type)) {
|
||||
eventType = PlayerBlockEventType.SPAWN_MOB;
|
||||
break outer;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
if (type.toString().toLowerCase().endsWith("egg")) {
|
||||
eventType = PlayerBlockEventType.SPAWN_MOB;
|
||||
break outer;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (type.isEdible()) {
|
||||
@ -1090,34 +1087,13 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
||||
return;
|
||||
}
|
||||
switch (type) {
|
||||
case ACACIA_BOAT:
|
||||
case BIRCH_BOAT:
|
||||
case CHEST_MINECART:
|
||||
case COMMAND_BLOCK_MINECART:
|
||||
case DARK_OAK_BOAT:
|
||||
case FURNACE_MINECART:
|
||||
case HOPPER_MINECART:
|
||||
case JUNGLE_BOAT:
|
||||
case MINECART:
|
||||
case OAK_BOAT:
|
||||
case SPRUCE_BOAT:
|
||||
case TNT_MINECART:
|
||||
eventType = PlayerBlockEventType.PLACE_VEHICLE;
|
||||
break outer;
|
||||
case FIREWORK_ROCKET:
|
||||
case FIREWORK_STAR:
|
||||
eventType = PlayerBlockEventType.SPAWN_MOB;
|
||||
break outer;
|
||||
case BOOK:
|
||||
case KNOWLEDGE_BOOK:
|
||||
case WRITABLE_BOOK:
|
||||
case WRITTEN_BOOK:
|
||||
eventType = PlayerBlockEventType.READ;
|
||||
break outer;
|
||||
case ARMOR_STAND:
|
||||
case ACACIA_BOAT, BIRCH_BOAT, CHEST_MINECART, COMMAND_BLOCK_MINECART, DARK_OAK_BOAT, FURNACE_MINECART, HOPPER_MINECART, JUNGLE_BOAT, MINECART, OAK_BOAT, SPRUCE_BOAT, TNT_MINECART -> eventType = PlayerBlockEventType.PLACE_VEHICLE;
|
||||
case FIREWORK_ROCKET, FIREWORK_STAR -> eventType = PlayerBlockEventType.SPAWN_MOB;
|
||||
case BOOK, KNOWLEDGE_BOOK, WRITABLE_BOOK, WRITTEN_BOOK -> eventType = PlayerBlockEventType.READ;
|
||||
case ARMOR_STAND -> {
|
||||
location = BukkitUtil.adapt(block.getRelative(event.getBlockFace()).getLocation());
|
||||
eventType = PlayerBlockEventType.PLACE_MISC;
|
||||
break outer;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -1231,10 +1207,9 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.HIGHEST)
|
||||
public void onInventoryClose(InventoryCloseEvent event) {
|
||||
HumanEntity closer = event.getPlayer();
|
||||
if (!(closer instanceof Player)) {
|
||||
if (!(closer instanceof Player player)) {
|
||||
return;
|
||||
}
|
||||
Player player = (Player) closer;
|
||||
PlotInventory.removePlotInventoryOpen(BukkitUtil.adapt(player));
|
||||
}
|
||||
|
||||
@ -1359,8 +1334,7 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onHangingBreakByEntity(HangingBreakByEntityEvent event) {
|
||||
Entity remover = event.getRemover();
|
||||
if (remover instanceof Player) {
|
||||
Player p = (Player) remover;
|
||||
if (remover instanceof Player p) {
|
||||
Location location = BukkitUtil.adapt(event.getEntity().getLocation());
|
||||
PlotArea area = location.getPlotArea();
|
||||
if (area == null) {
|
||||
@ -1398,10 +1372,8 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
||||
+ " could not break hanging entity because hanging-break = false");
|
||||
}
|
||||
}
|
||||
} else if (remover instanceof Projectile) {
|
||||
Projectile p = (Projectile) remover;
|
||||
if (p.getShooter() instanceof Player) {
|
||||
Player shooter = (Player) p.getShooter();
|
||||
} else if (remover instanceof Projectile p) {
|
||||
if (p.getShooter() instanceof Player shooter) {
|
||||
Location location = BukkitUtil.adapt(event.getEntity().getLocation());
|
||||
PlotArea area = location.getPlotArea();
|
||||
if (area == null) {
|
||||
@ -1535,8 +1507,7 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
||||
return;
|
||||
}
|
||||
Entity attacker = event.getAttacker();
|
||||
if (attacker instanceof Player) {
|
||||
Player p = (Player) attacker;
|
||||
if (attacker instanceof Player p) {
|
||||
BukkitPlayer pp = BukkitUtil.adapt(p);
|
||||
Plot plot = area.getPlot(location);
|
||||
if (plot == null) {
|
||||
@ -1642,8 +1613,7 @@ public class PlayerEventListener extends PlotListener implements Listener {
|
||||
@EventHandler
|
||||
public void onItemPickup(EntityPickupItemEvent event) {
|
||||
LivingEntity ent = event.getEntity();
|
||||
if (ent instanceof Player) {
|
||||
Player player = (Player) ent;
|
||||
if (ent instanceof Player player) {
|
||||
BukkitPlayer pp = BukkitUtil.adapt(player);
|
||||
Location location = pp.getLocation();
|
||||
PlotArea area = location.getPlotArea();
|
||||
|
@ -45,7 +45,7 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass;
|
||||
@SuppressWarnings("unused")
|
||||
public class SingleWorldListener implements Listener {
|
||||
|
||||
private Method methodGetHandleChunk;
|
||||
private final Method methodGetHandleChunk;
|
||||
private Field mustSave;
|
||||
private boolean isTrueForNotSave = true;
|
||||
|
||||
|
@ -53,8 +53,7 @@ public class WorldEvents implements Listener {
|
||||
public void onWorldInit(WorldInitEvent event) {
|
||||
World world = event.getWorld();
|
||||
String name = world.getName();
|
||||
if (this.plotAreaManager instanceof SinglePlotAreaManager) {
|
||||
final SinglePlotAreaManager single = (SinglePlotAreaManager) this.plotAreaManager;
|
||||
if (this.plotAreaManager instanceof final SinglePlotAreaManager single) {
|
||||
if (single.isWorld(name)) {
|
||||
world.setKeepSpawnInMemory(false);
|
||||
return;
|
||||
|
@ -34,7 +34,10 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
/**
|
||||
* Multiverse specific manager that informs Multiverse of
|
||||
* world creation by executing a console command
|
||||
* @deprecated Deprecated and scheduled for removal without replacement
|
||||
* in favor of the build in setup wizard.
|
||||
*/
|
||||
@Deprecated
|
||||
@Singleton
|
||||
public class MultiverseWorldManager extends BukkitWorldManager {
|
||||
|
||||
|
@ -52,8 +52,7 @@ public class BukkitPermissionHandler implements PermissionHandler {
|
||||
public Optional<PermissionProfile> getPermissionProfile(
|
||||
@NonNull PlotPlayer<?> playerPlotPlayer
|
||||
) {
|
||||
if (playerPlotPlayer instanceof BukkitPlayer) {
|
||||
final BukkitPlayer bukkitPlayer = (BukkitPlayer) playerPlotPlayer;
|
||||
if (playerPlotPlayer instanceof final BukkitPlayer bukkitPlayer) {
|
||||
return Optional.of(new BukkitPermissionProfile(bukkitPlayer.getPlatformPlayer()));
|
||||
} else if (playerPlotPlayer instanceof ConsolePlayer) {
|
||||
return Optional.of(ConsolePermissionProfile.INSTANCE);
|
||||
|
@ -65,8 +65,7 @@ public class VaultPermissionHandler implements PermissionHandler {
|
||||
public Optional<PermissionProfile> getPermissionProfile(
|
||||
@NonNull PlotPlayer<?> playerPlotPlayer
|
||||
) {
|
||||
if (playerPlotPlayer instanceof BukkitPlayer) {
|
||||
final BukkitPlayer bukkitPlayer = (BukkitPlayer) playerPlotPlayer;
|
||||
if (playerPlotPlayer instanceof final BukkitPlayer bukkitPlayer) {
|
||||
return Optional.of(new VaultPermissionProfile(bukkitPlayer.getPlatformPlayer()));
|
||||
} else if (playerPlotPlayer instanceof ConsolePlayer) {
|
||||
return Optional.of(ConsolePermissionProfile.INSTANCE);
|
||||
|
@ -263,32 +263,20 @@ public class BukkitPlayer extends PlotPlayer<Player> {
|
||||
@Override
|
||||
public void setWeather(final @NonNull PlotWeather weather) {
|
||||
switch (weather) {
|
||||
case CLEAR:
|
||||
this.player.setPlayerWeather(WeatherType.CLEAR);
|
||||
break;
|
||||
case RAIN:
|
||||
this.player.setPlayerWeather(WeatherType.DOWNFALL);
|
||||
break;
|
||||
case RESET:
|
||||
default:
|
||||
this.player.resetPlayerWeather();
|
||||
break;
|
||||
case CLEAR -> this.player.setPlayerWeather(WeatherType.CLEAR);
|
||||
case RAIN -> this.player.setPlayerWeather(WeatherType.DOWNFALL);
|
||||
default -> this.player.resetPlayerWeather();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public com.sk89q.worldedit.world.gamemode.GameMode getGameMode() {
|
||||
switch (this.player.getGameMode()) {
|
||||
case ADVENTURE:
|
||||
return ADVENTURE;
|
||||
case CREATIVE:
|
||||
return CREATIVE;
|
||||
case SPECTATOR:
|
||||
return SPECTATOR;
|
||||
case SURVIVAL:
|
||||
default:
|
||||
return SURVIVAL;
|
||||
}
|
||||
return switch (this.player.getGameMode()) {
|
||||
case ADVENTURE -> ADVENTURE;
|
||||
case CREATIVE -> CREATIVE;
|
||||
case SPECTATOR -> SPECTATOR;
|
||||
default -> SURVIVAL;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -372,14 +360,11 @@ public class BukkitPlayer extends PlotPlayer<Player> {
|
||||
}
|
||||
|
||||
public PlayerTeleportEvent.TeleportCause getTeleportCause(final @NonNull TeleportCause cause) {
|
||||
switch (cause) {
|
||||
case COMMAND:
|
||||
return PlayerTeleportEvent.TeleportCause.COMMAND;
|
||||
case PLUGIN:
|
||||
return PlayerTeleportEvent.TeleportCause.PLUGIN;
|
||||
default:
|
||||
return PlayerTeleportEvent.TeleportCause.UNKNOWN;
|
||||
}
|
||||
return switch (cause) {
|
||||
case COMMAND -> PlayerTeleportEvent.TeleportCause.COMMAND;
|
||||
case PLUGIN -> PlayerTeleportEvent.TeleportCause.PLUGIN;
|
||||
default -> PlayerTeleportEvent.TeleportCause.UNKNOWN;
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -177,19 +177,11 @@ public class StateWrapper {
|
||||
}
|
||||
org.bukkit.block.BlockState state = block.getState();
|
||||
switch (getId()) {
|
||||
case "chest":
|
||||
case "beacon":
|
||||
case "brewingstand":
|
||||
case "dispenser":
|
||||
case "dropper":
|
||||
case "furnace":
|
||||
case "hopper":
|
||||
case "shulkerbox":
|
||||
if (!(state instanceof Container)) {
|
||||
case "chest", "beacon", "brewingstand", "dispenser", "dropper", "furnace", "hopper", "shulkerbox" -> {
|
||||
if (!(state instanceof Container container)) {
|
||||
return false;
|
||||
}
|
||||
List<Tag> itemsTag = this.tag.getListTag("Items").getValue();
|
||||
Container container = (Container) state;
|
||||
Inventory inv = container.getSnapshotInventory();
|
||||
for (Tag itemTag : itemsTag) {
|
||||
CompoundTag itemComp = (CompoundTag) itemTag;
|
||||
@ -206,9 +198,9 @@ public class StateWrapper {
|
||||
}
|
||||
container.update(true, false);
|
||||
return true;
|
||||
case "sign":
|
||||
if (state instanceof Sign) {
|
||||
Sign sign = (Sign) state;
|
||||
}
|
||||
case "sign" -> {
|
||||
if (state instanceof Sign sign) {
|
||||
sign.setLine(0, jsonToColourCode(tag.getString("Text1")));
|
||||
sign.setLine(1, jsonToColourCode(tag.getString("Text2")));
|
||||
sign.setLine(2, jsonToColourCode(tag.getString("Text3")));
|
||||
@ -218,6 +210,7 @@ public class StateWrapper {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -225,8 +218,7 @@ public class StateWrapper {
|
||||
if (this.tag != null) {
|
||||
return this.tag;
|
||||
}
|
||||
if (this.state instanceof InventoryHolder) {
|
||||
InventoryHolder inv = (InventoryHolder) this.state;
|
||||
if (this.state instanceof InventoryHolder inv) {
|
||||
ItemStack[] contents = inv.getInventory().getContents();
|
||||
Map<String, Tag> values = new HashMap<>();
|
||||
values.put("Items", new ListTag(CompoundTag.class, serializeInventory(contents)));
|
||||
|
@ -144,8 +144,7 @@ public class BukkitEntityUtil {
|
||||
Player player;
|
||||
if (damager instanceof Player) { // attacker is player
|
||||
player = (Player) damager;
|
||||
} else if (damager instanceof Projectile) {
|
||||
Projectile projectile = (Projectile) damager;
|
||||
} else if (damager instanceof Projectile projectile) {
|
||||
ProjectileSource shooter = projectile.getShooter();
|
||||
if (shooter instanceof Player) { // shooter is player
|
||||
player = (Player) shooter;
|
||||
|
@ -135,7 +135,7 @@ public class BukkitSetupUtils extends SetupUtils {
|
||||
PlotAreaType type = builder.plotAreaType();
|
||||
String worldPath = "worlds." + builder.worldName();
|
||||
switch (type) {
|
||||
case PARTIAL: {
|
||||
case PARTIAL -> {
|
||||
if (builder.areaName() != null) {
|
||||
if (!this.worldConfiguration.contains(worldPath)) {
|
||||
this.worldConfiguration.createSection(worldPath);
|
||||
@ -177,9 +177,8 @@ public class BukkitSetupUtils extends SetupUtils {
|
||||
if (gen != null && gen.isFull()) {
|
||||
builder.generatorName(null);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case AUGMENTED: {
|
||||
case AUGMENTED -> {
|
||||
if (!builder.plotManager().endsWith(":single")) {
|
||||
if (!this.worldConfiguration.contains(worldPath)) {
|
||||
this.worldConfiguration.createSection(worldPath);
|
||||
@ -207,9 +206,8 @@ public class BukkitSetupUtils extends SetupUtils {
|
||||
if (gen != null && gen.isFull()) {
|
||||
builder.generatorName(null);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NORMAL: {
|
||||
case NORMAL -> {
|
||||
if (steps.length != 0) {
|
||||
if (!this.worldConfiguration.contains(worldPath)) {
|
||||
this.worldConfiguration.createSection(worldPath);
|
||||
@ -220,7 +218,6 @@ public class BukkitSetupUtils extends SetupUtils {
|
||||
worldSection.set(step.getConstant(), step.getValue());
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -297,8 +297,7 @@ public class BukkitUtil extends WorldUtil {
|
||||
);
|
||||
try {
|
||||
return TaskManager.getPlatformImplementation().sync(() -> {
|
||||
if (block.getState() instanceof Sign) {
|
||||
Sign sign = (Sign) block.getState();
|
||||
if (block.getState() instanceof Sign sign) {
|
||||
return sign.getLines();
|
||||
}
|
||||
return new String[0];
|
||||
@ -364,8 +363,7 @@ public class BukkitUtil extends WorldUtil {
|
||||
block.setBlockData(sign, false);
|
||||
}
|
||||
final org.bukkit.block.BlockState blockstate = block.getState();
|
||||
if (blockstate instanceof Sign) {
|
||||
final Sign sign = (Sign) blockstate;
|
||||
if (blockstate instanceof final Sign sign) {
|
||||
for (int i = 0; i < lines.length; i++) {
|
||||
sign.setLine(i, LEGACY_COMPONENT_SERIALIZER
|
||||
.serialize(MINI_MESSAGE.parse(lines[i].getComponent(LocaleHolder.console()), replacements)));
|
||||
@ -454,23 +452,20 @@ public class BukkitUtil extends WorldUtil {
|
||||
public @NonNull Set<com.sk89q.worldedit.world.entity.EntityType> getTypesInCategory(final @NonNull String category) {
|
||||
final Collection<Class<?>> allowedInterfaces = new HashSet<>();
|
||||
switch (category) {
|
||||
case "animal": {
|
||||
case "animal" -> {
|
||||
allowedInterfaces.add(IronGolem.class);
|
||||
allowedInterfaces.add(Snowman.class);
|
||||
allowedInterfaces.add(Animals.class);
|
||||
allowedInterfaces.add(WaterMob.class);
|
||||
allowedInterfaces.add(Ambient.class);
|
||||
}
|
||||
break;
|
||||
case "tameable": {
|
||||
case "tameable" -> {
|
||||
allowedInterfaces.add(Tameable.class);
|
||||
}
|
||||
break;
|
||||
case "vehicle": {
|
||||
case "vehicle" -> {
|
||||
allowedInterfaces.add(Vehicle.class);
|
||||
}
|
||||
break;
|
||||
case "hostile": {
|
||||
case "hostile" -> {
|
||||
allowedInterfaces.add(Shulker.class);
|
||||
allowedInterfaces.add(Monster.class);
|
||||
allowedInterfaces.add(Boss.class);
|
||||
@ -479,20 +474,16 @@ public class BukkitUtil extends WorldUtil {
|
||||
allowedInterfaces.add(Phantom.class);
|
||||
allowedInterfaces.add(EnderCrystal.class);
|
||||
}
|
||||
break;
|
||||
case "hanging": {
|
||||
case "hanging" -> {
|
||||
allowedInterfaces.add(Hanging.class);
|
||||
}
|
||||
break;
|
||||
case "villager": {
|
||||
case "villager" -> {
|
||||
allowedInterfaces.add(NPC.class);
|
||||
}
|
||||
break;
|
||||
case "projectile": {
|
||||
case "projectile" -> {
|
||||
allowedInterfaces.add(Projectile.class);
|
||||
}
|
||||
break;
|
||||
case "other": {
|
||||
case "other" -> {
|
||||
allowedInterfaces.add(ArmorStand.class);
|
||||
allowedInterfaces.add(FallingBlock.class);
|
||||
allowedInterfaces.add(Item.class);
|
||||
@ -504,15 +495,12 @@ public class BukkitUtil extends WorldUtil {
|
||||
allowedInterfaces.add(EnderSignal.class);
|
||||
allowedInterfaces.add(Firework.class);
|
||||
}
|
||||
break;
|
||||
case "player": {
|
||||
case "player" -> {
|
||||
allowedInterfaces.add(Player.class);
|
||||
}
|
||||
break;
|
||||
default: {
|
||||
default -> {
|
||||
logger.error("Unknown entity category requested: {}", category);
|
||||
}
|
||||
break;
|
||||
}
|
||||
final Set<com.sk89q.worldedit.world.entity.EntityType> types = new HashSet<>();
|
||||
outer:
|
||||
|
@ -87,10 +87,9 @@ public class BukkitWorld implements World<org.bukkit.World> {
|
||||
if (o == this) {
|
||||
return true;
|
||||
}
|
||||
if (!(o instanceof BukkitWorld)) {
|
||||
if (!(o instanceof final BukkitWorld other)) {
|
||||
return false;
|
||||
}
|
||||
final BukkitWorld other = (BukkitWorld) o;
|
||||
if (!other.canEqual(this)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -1,71 +0,0 @@
|
||||
/*
|
||||
* _____ _ _ _____ _
|
||||
* | __ \| | | | / ____| | |
|
||||
* | |__) | | ___ | |_| (___ __ _ _ _ __ _ _ __ ___ __| |
|
||||
* | ___/| |/ _ \| __|\___ \ / _` | | | |/ _` | '__/ _ \/ _` |
|
||||
* | | | | (_) | |_ ____) | (_| | |_| | (_| | | | __/ (_| |
|
||||
* |_| |_|\___/ \__|_____/ \__, |\__,_|\__,_|_| \___|\__,_|
|
||||
* | |
|
||||
* |_|
|
||||
* PlotSquared plot management system for Minecraft
|
||||
* Copyright (C) 2021 IntellectualSites
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.plotsquared.bukkit.util;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class JavaVersionCheck {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger("P2/" + JavaVersionCheck.class.getSimpleName());
|
||||
|
||||
private static int checkJavaVersion() {
|
||||
String javaVersion = System.getProperty("java.version");
|
||||
final Matcher matcher = Pattern.compile("(?:1\\.)?(\\d+)").matcher(javaVersion);
|
||||
if (!matcher.find()) {
|
||||
logger.error("Failed to determine Java version; Could not parse: {}", javaVersion);
|
||||
return -1;
|
||||
}
|
||||
|
||||
final String version = matcher.group(1);
|
||||
try {
|
||||
return Integer.parseInt(version);
|
||||
} catch (final NumberFormatException e) {
|
||||
logger.error("Failed to determine Java version; Could not parse {} from {}", version, javaVersion, e);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public static void checkJvm() {
|
||||
if (checkJavaVersion() < 11) {
|
||||
logger.error("************************************************************");
|
||||
logger.error("* WARNING - YOU ARE RUNNING AN OUTDATED VERSION OF JAVA.");
|
||||
logger.error("* PLOTSQUARED WILL STOP BEING COMPATIBLE WITH THIS VERSION OF");
|
||||
logger.error("* JAVA WHEN MINECRAFT 1.17 IS RELEASED.");
|
||||
logger.error("*");
|
||||
logger.error("* Please update the version of Java to 11. When Minecraft 1.17");
|
||||
logger.error("* is released, support for versions of Java prior to 11 will");
|
||||
logger.error("* be dropped.");
|
||||
logger.error("*");
|
||||
logger.error("* Current Java version: {}", System.getProperty("java.version"));
|
||||
logger.error("************************************************************");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -233,7 +233,7 @@ public interface PlotPlatform<P> extends LocaleHolder {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the {@link SetupUtils} implementation for the platform
|
||||
* Get the {@link SetupUtils} implementation for the platform
|
||||
*
|
||||
* @return Setup utils
|
||||
*/
|
||||
|
@ -1077,22 +1077,15 @@ public class PlotSquared {
|
||||
try {
|
||||
String base = "worlds." + world + ".";
|
||||
switch (key) {
|
||||
case "s":
|
||||
case "size":
|
||||
this.worldConfiguration.set(
|
||||
case "s", "size" -> this.worldConfiguration.set(
|
||||
base + "plot.size",
|
||||
ConfigurationUtil.INTEGER.parseString(value).shortValue()
|
||||
);
|
||||
break;
|
||||
case "g":
|
||||
case "gap":
|
||||
this.worldConfiguration.set(
|
||||
case "g", "gap" -> this.worldConfiguration.set(
|
||||
base + "road.width",
|
||||
ConfigurationUtil.INTEGER.parseString(value).shortValue()
|
||||
);
|
||||
break;
|
||||
case "h":
|
||||
case "height":
|
||||
case "h", "height" -> {
|
||||
this.worldConfiguration.set(
|
||||
base + "road.height",
|
||||
ConfigurationUtil.INTEGER.parseString(value).shortValue()
|
||||
@ -1105,39 +1098,28 @@ public class PlotSquared {
|
||||
base + "wall.height",
|
||||
ConfigurationUtil.INTEGER.parseString(value).shortValue()
|
||||
);
|
||||
break;
|
||||
case "f":
|
||||
case "floor":
|
||||
this.worldConfiguration.set(
|
||||
}
|
||||
case "f", "floor" -> this.worldConfiguration.set(
|
||||
base + "plot.floor",
|
||||
ConfigurationUtil.BLOCK_BUCKET.parseString(value).toString()
|
||||
);
|
||||
break;
|
||||
case "m":
|
||||
case "main":
|
||||
this.worldConfiguration.set(
|
||||
case "m", "main" -> this.worldConfiguration.set(
|
||||
base + "plot.filling",
|
||||
ConfigurationUtil.BLOCK_BUCKET.parseString(value).toString()
|
||||
);
|
||||
break;
|
||||
case "w":
|
||||
case "wall":
|
||||
this.worldConfiguration.set(
|
||||
case "w", "wall" -> this.worldConfiguration.set(
|
||||
base + "wall.filling",
|
||||
ConfigurationUtil.BLOCK_BUCKET.parseString(value).toString()
|
||||
);
|
||||
break;
|
||||
case "b":
|
||||
case "border":
|
||||
this.worldConfiguration.set(
|
||||
case "b", "border" -> this.worldConfiguration.set(
|
||||
base + "wall.block",
|
||||
ConfigurationUtil.BLOCK_BUCKET.parseString(value).toString()
|
||||
);
|
||||
break;
|
||||
default:
|
||||
default -> {
|
||||
logger.error("Key not found: {}", element);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("Invalid value '{}' for arg '{}'", value, element);
|
||||
e.printStackTrace();
|
||||
|
@ -33,7 +33,7 @@ import java.util.Random;
|
||||
|
||||
public class FlatRandomCollection<T> extends RandomCollection<T> {
|
||||
|
||||
private T[] values;
|
||||
private final T[] values;
|
||||
|
||||
public FlatRandomCollection(Map<T, Double> weights, Random random) {
|
||||
super(weights, random);
|
||||
|
@ -82,12 +82,11 @@ public class Alias extends SubCommand {
|
||||
boolean permission;
|
||||
boolean admin;
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "set":
|
||||
case "set" -> {
|
||||
if (args.length != 2) {
|
||||
sendUsage(player);
|
||||
return false;
|
||||
}
|
||||
|
||||
permission = isPermitted(player, Permission.PERMISSION_ALIAS_SET);
|
||||
admin = isPermitted(player, Permission.PERMISSION_ADMIN_ALIAS_SET);
|
||||
if (!admin && !owner) {
|
||||
@ -103,9 +102,8 @@ public class Alias extends SubCommand {
|
||||
Template.of("node", String.valueOf(Permission.PERMISSION_ALIAS_SET))
|
||||
);
|
||||
}
|
||||
|
||||
break;
|
||||
case "remove":
|
||||
}
|
||||
case "remove" -> {
|
||||
permission = isPermitted(player, Permission.PERMISSION_ALIAS_REMOVE);
|
||||
admin = isPermitted(player, Permission.PERMISSION_ADMIN_ALIAS_REMOVE);
|
||||
if (!admin && !owner) {
|
||||
@ -120,11 +118,12 @@ public class Alias extends SubCommand {
|
||||
Template.of("node", String.valueOf(Permission.PERMISSION_ALIAS_REMOVE))
|
||||
);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
}
|
||||
default -> {
|
||||
sendUsage(player);
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -109,7 +109,6 @@ public class Area extends SubCommand {
|
||||
private final HybridPlotWorldFactory hybridPlotWorldFactory;
|
||||
private final SetupUtils setupUtils;
|
||||
private final WorldUtil worldUtil;
|
||||
private final RegionManager regionManager;
|
||||
private final GlobalBlockQueue blockQueue;
|
||||
|
||||
private final Map<UUID, Map<String, Object>> metaData = new HashMap<>();
|
||||
@ -122,7 +121,6 @@ public class Area extends SubCommand {
|
||||
final @NonNull HybridPlotWorldFactory hybridPlotWorldFactory,
|
||||
final @NonNull SetupUtils setupUtils,
|
||||
final @NonNull WorldUtil worldUtil,
|
||||
final @NonNull RegionManager regionManager,
|
||||
final @NonNull GlobalBlockQueue blockQueue
|
||||
) {
|
||||
this.plotAreaManager = plotAreaManager;
|
||||
@ -131,7 +129,6 @@ public class Area extends SubCommand {
|
||||
this.hybridPlotWorldFactory = hybridPlotWorldFactory;
|
||||
this.setupUtils = setupUtils;
|
||||
this.worldUtil = worldUtil;
|
||||
this.regionManager = regionManager;
|
||||
this.blockQueue = blockQueue;
|
||||
}
|
||||
|
||||
@ -142,7 +139,7 @@ public class Area extends SubCommand {
|
||||
return false;
|
||||
}
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "single":
|
||||
case "single" -> {
|
||||
if (player instanceof ConsolePlayer) {
|
||||
player.sendMessage(RequiredType.CONSOLE.getErrorMessage());
|
||||
return false;
|
||||
@ -195,14 +192,16 @@ public class Area extends SubCommand {
|
||||
final BlockVector3 playerSelectionMax = playerSelectedRegion.getMaximumPoint();
|
||||
// Create a new selection that spans the entire vertical range of the world
|
||||
final CuboidRegion selectedRegion =
|
||||
new CuboidRegion(playerSelectedRegion.getWorld(),
|
||||
new CuboidRegion(
|
||||
playerSelectedRegion.getWorld(),
|
||||
BlockVector3.at(playerSelectionMin.getX(), 0, playerSelectionMin.getZ()),
|
||||
BlockVector3.at(playerSelectionMax.getX(), 255, playerSelectionMax.getZ())
|
||||
);
|
||||
// There's only one plot in the area...
|
||||
final PlotId plotId = PlotId.of(1, 1);
|
||||
final HybridPlotWorld hybridPlotWorld = this.hybridPlotWorldFactory
|
||||
.create(player.getLocation().getWorldName(),
|
||||
.create(
|
||||
player.getLocation().getWorldName(),
|
||||
args[1],
|
||||
Objects.requireNonNull(PlotSquared.platform()).defaultGenerator(),
|
||||
plotId,
|
||||
@ -292,9 +291,8 @@ public class Area extends SubCommand {
|
||||
};
|
||||
singleRun.run();
|
||||
return true;
|
||||
case "c":
|
||||
case "setup":
|
||||
case "create":
|
||||
}
|
||||
case "c", "setup", "create" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_CREATE)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -311,7 +309,7 @@ public class Area extends SubCommand {
|
||||
return false;
|
||||
case 2:
|
||||
switch (args[1].toLowerCase()) {
|
||||
case "pos1": { // Set position 1
|
||||
case "pos1" -> { // Set position 1
|
||||
HybridPlotWorld area = (HybridPlotWorld) metaData.computeIfAbsent(
|
||||
player.getUUID(),
|
||||
missingUUID -> new HashMap<>()
|
||||
@ -329,7 +327,8 @@ public class Area extends SubCommand {
|
||||
"area_pos1",
|
||||
location
|
||||
);
|
||||
player.sendMessage(TranslatableCaption.of("set.set_attribute"),
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("set.set_attribute"),
|
||||
Template.of("attribute", "area_pos1"),
|
||||
Template.of("value", location.getX() + "," + location.getZ())
|
||||
);
|
||||
@ -339,7 +338,7 @@ public class Area extends SubCommand {
|
||||
);
|
||||
return true;
|
||||
}
|
||||
case "pos2": // Set position 2 and finish creation for type=2 (partial)
|
||||
case "pos2" -> { // Set position 2 and finish creation for type=2 (partial)
|
||||
final HybridPlotWorld area =
|
||||
(HybridPlotWorld) metaData.computeIfAbsent(
|
||||
player.getUUID(),
|
||||
@ -425,6 +424,7 @@ public class Area extends SubCommand {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
default: // Start creation
|
||||
String[] split = args[1].split(":");
|
||||
String id;
|
||||
@ -468,50 +468,35 @@ public class Area extends SubCommand {
|
||||
return false;
|
||||
}
|
||||
switch (pair[0].toLowerCase()) {
|
||||
case "s":
|
||||
case "size":
|
||||
case "s", "size" -> {
|
||||
pa.PLOT_WIDTH = Integer.parseInt(pair[1]);
|
||||
pa.SIZE = (short) (pa.PLOT_WIDTH + pa.ROAD_WIDTH);
|
||||
break;
|
||||
case "g":
|
||||
case "gap":
|
||||
}
|
||||
case "g", "gap" -> {
|
||||
pa.ROAD_WIDTH = Integer.parseInt(pair[1]);
|
||||
pa.SIZE = (short) (pa.PLOT_WIDTH + pa.ROAD_WIDTH);
|
||||
break;
|
||||
case "h":
|
||||
case "height":
|
||||
}
|
||||
case "h", "height" -> {
|
||||
int value = Integer.parseInt(pair[1]);
|
||||
pa.PLOT_HEIGHT = value;
|
||||
pa.ROAD_HEIGHT = value;
|
||||
pa.WALL_HEIGHT = value;
|
||||
break;
|
||||
case "f":
|
||||
case "floor":
|
||||
pa.TOP_BLOCK = ConfigurationUtil.BLOCK_BUCKET.parseString(pair[1]);
|
||||
break;
|
||||
case "m":
|
||||
case "main":
|
||||
pa.MAIN_BLOCK = ConfigurationUtil.BLOCK_BUCKET.parseString(pair[1]);
|
||||
break;
|
||||
case "w":
|
||||
case "wall":
|
||||
pa.WALL_FILLING = ConfigurationUtil.BLOCK_BUCKET.parseString(pair[1]);
|
||||
break;
|
||||
case "b":
|
||||
case "border":
|
||||
pa.WALL_BLOCK = ConfigurationUtil.BLOCK_BUCKET.parseString(pair[1]);
|
||||
break;
|
||||
case "terrain":
|
||||
}
|
||||
case "f", "floor" -> pa.TOP_BLOCK = ConfigurationUtil.BLOCK_BUCKET.parseString(pair[1]);
|
||||
case "m", "main" -> pa.MAIN_BLOCK = ConfigurationUtil.BLOCK_BUCKET.parseString(pair[1]);
|
||||
case "w", "wall" -> pa.WALL_FILLING = ConfigurationUtil.BLOCK_BUCKET.parseString(pair[1]);
|
||||
case "b", "border" -> pa.WALL_BLOCK = ConfigurationUtil.BLOCK_BUCKET.parseString(pair[1]);
|
||||
case "terrain" -> {
|
||||
pa.setTerrain(PlotAreaTerrainType.fromString(pair[1])
|
||||
.orElseThrow(() -> new IllegalArgumentException(pair[1] + " is not a valid terrain.")));
|
||||
builder.terrainType(pa.getTerrain());
|
||||
break;
|
||||
case "type":
|
||||
}
|
||||
case "type" -> {
|
||||
pa.setType(PlotAreaType.fromString(pair[1])
|
||||
.orElseThrow(() -> new IllegalArgumentException(pair[1] + " is not a valid type.")));
|
||||
builder.plotAreaType(pa.getType());
|
||||
break;
|
||||
default:
|
||||
}
|
||||
default -> {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax_extended"),
|
||||
Template.of("value1", getCommandString()),
|
||||
@ -520,6 +505,7 @@ public class Area extends SubCommand {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pa.getType() != PlotAreaType.PARTIAL) {
|
||||
if (this.worldUtil.isWorld(pa.getWorldName())) {
|
||||
player.sendMessage(
|
||||
@ -566,7 +552,8 @@ public class Area extends SubCommand {
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
Template.of("value", getUsage())
|
||||
);
|
||||
player.sendMessage(TranslatableCaption.of("commandconfig.command_syntax_extended"),
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax_extended"),
|
||||
Template.of("value1", getCommandString()),
|
||||
Template.of("value2", " create [world[:id]] [<modifier>=<value>]...")
|
||||
);
|
||||
@ -590,8 +577,8 @@ public class Area extends SubCommand {
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
case "i":
|
||||
case "info": {
|
||||
}
|
||||
case "i", "info" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_INFO)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -601,19 +588,17 @@ public class Area extends SubCommand {
|
||||
}
|
||||
PlotArea area;
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
area = player.getApplicablePlotArea();
|
||||
break;
|
||||
case 2:
|
||||
area = this.plotAreaManager.getPlotAreaByString(args[1]);
|
||||
break;
|
||||
default:
|
||||
player.sendMessage(TranslatableCaption.of("commandconfig.command_syntax_extended"),
|
||||
case 1 -> area = player.getApplicablePlotArea();
|
||||
case 2 -> area = this.plotAreaManager.getPlotAreaByString(args[1]);
|
||||
default -> {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax_extended"),
|
||||
Template.of("value1", getCommandString()),
|
||||
Template.of("value2", " info [area]")
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (area == null) {
|
||||
if (args.length == 2) {
|
||||
player.sendMessage(TranslatableCaption.of("errors.not_valid_plot_world"), Template.of("value", args[1]));
|
||||
@ -656,7 +641,8 @@ public class Area extends SubCommand {
|
||||
"footer",
|
||||
TranslatableCaption.of("info.plot_info_footer").getComponent(player)
|
||||
);
|
||||
player.sendMessage(TranslatableCaption.of("info.area_info_format"),
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("info.area_info_format"),
|
||||
headerTemplate,
|
||||
nameTemplate,
|
||||
typeTemplate,
|
||||
@ -670,8 +656,7 @@ public class Area extends SubCommand {
|
||||
);
|
||||
return true;
|
||||
}
|
||||
case "l":
|
||||
case "list":
|
||||
case "l", "list" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_LIST)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -690,7 +675,8 @@ public class Area extends SubCommand {
|
||||
break;
|
||||
}
|
||||
default:
|
||||
player.sendMessage(TranslatableCaption.of("commandconfig.command_syntax_extended"),
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax_extended"),
|
||||
Template.of("value1", getCommandString()),
|
||||
Template.of("value2", " list [#]")
|
||||
);
|
||||
@ -724,7 +710,8 @@ public class Area extends SubCommand {
|
||||
Template regionTemplate = Template.of("region", region);
|
||||
Template generatorTemplate = Template.of("generator", generator);
|
||||
String tooltip = MINI_MESSAGE.serialize(MINI_MESSAGE
|
||||
.parse(TranslatableCaption.of("info.area_list_tooltip").getComponent(player),
|
||||
.parse(
|
||||
TranslatableCaption.of("info.area_list_tooltip").getComponent(player),
|
||||
claimedTemplate,
|
||||
usageTemplate,
|
||||
clustersTemplate,
|
||||
@ -739,7 +726,8 @@ public class Area extends SubCommand {
|
||||
Template typeTemplate = Template.of("area_type", area.getType().name());
|
||||
Template terrainTemplate = Template.of("area_terrain", area.getTerrain().name());
|
||||
caption.set(TranslatableCaption.of("info.area_list_item"));
|
||||
caption.setTemplates(tooltipTemplate,
|
||||
caption.setTemplates(
|
||||
tooltipTemplate,
|
||||
visitcmdTemplate,
|
||||
numberTemplate,
|
||||
nameTemplate,
|
||||
@ -750,10 +738,8 @@ public class Area extends SubCommand {
|
||||
}
|
||||
}, "/plot area list", TranslatableCaption.of("list.area_list_header_paged"));
|
||||
return true;
|
||||
case "regen":
|
||||
case "clear":
|
||||
case "reset":
|
||||
case "regenerate": {
|
||||
}
|
||||
case "regen", "clear", "reset", "regenerate" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_REGEN)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -786,11 +772,7 @@ public class Area extends SubCommand {
|
||||
queue.enqueue();
|
||||
return true;
|
||||
}
|
||||
case "goto":
|
||||
case "v":
|
||||
case "teleport":
|
||||
case "visit":
|
||||
case "tp":
|
||||
case "goto", "v", "teleport", "visit", "tp" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_AREA_TP)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -833,11 +815,12 @@ public class Area extends SubCommand {
|
||||
);
|
||||
}
|
||||
return true;
|
||||
case "delete":
|
||||
case "remove":
|
||||
}
|
||||
case "delete", "remove" -> {
|
||||
player.sendMessage(TranslatableCaption.of("single.worldcreation_location"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
sendUsage(player);
|
||||
return false;
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ import com.plotsquared.core.plot.PlotId;
|
||||
|
||||
public abstract class Argument<T> {
|
||||
|
||||
public static final Argument<Integer> Integer = new Argument<Integer>("int", 16) {
|
||||
public static final Argument<Integer> Integer = new Argument<>("int", 16) {
|
||||
@Override
|
||||
public Integer parse(String in) {
|
||||
Integer value = null;
|
||||
@ -40,7 +40,7 @@ public abstract class Argument<T> {
|
||||
return value;
|
||||
}
|
||||
};
|
||||
public static final Argument<Boolean> Boolean = new Argument<Boolean>("boolean", true) {
|
||||
public static final Argument<Boolean> Boolean = new Argument<>("boolean", true) {
|
||||
@Override
|
||||
public Boolean parse(String in) {
|
||||
Boolean value = null;
|
||||
@ -54,21 +54,21 @@ public abstract class Argument<T> {
|
||||
return value;
|
||||
}
|
||||
};
|
||||
public static final Argument<String> String = new Argument<String>("String", "Example") {
|
||||
public static final Argument<String> String = new Argument<>("String", "Example") {
|
||||
@Override
|
||||
public String parse(String in) {
|
||||
return in;
|
||||
}
|
||||
};
|
||||
public static final Argument<String> PlayerName =
|
||||
new Argument<String>("PlayerName", "<player | *>") {
|
||||
new Argument<>("PlayerName", "<player | *>") {
|
||||
@Override
|
||||
public String parse(String in) {
|
||||
return in.length() <= 16 ? in : null;
|
||||
}
|
||||
};
|
||||
public static final Argument<PlotId> PlotID =
|
||||
new Argument<PlotId>("PlotID", PlotId.of(-6, 3)) {
|
||||
new Argument<>("PlotID", PlotId.of(-6, 3)) {
|
||||
@Override
|
||||
public PlotId parse(String in) {
|
||||
return PlotId.fromString(in);
|
||||
|
@ -162,7 +162,7 @@ public class Auto extends SubCommand {
|
||||
}
|
||||
plot.setOwnerAbs(player.getUUID());
|
||||
|
||||
final RunnableVal<Plot> runnableVal = new RunnableVal<Plot>() {
|
||||
final RunnableVal<Plot> runnableVal = new RunnableVal<>() {
|
||||
{
|
||||
this.value = plot;
|
||||
}
|
||||
@ -217,21 +217,22 @@ public class Auto extends SubCommand {
|
||||
try {
|
||||
String[] split = args[0].split(",|;");
|
||||
switch (split.length) {
|
||||
case 1:
|
||||
case 1 -> {
|
||||
size_x = 1;
|
||||
size_z = 1;
|
||||
break;
|
||||
case 2:
|
||||
}
|
||||
case 2 -> {
|
||||
size_x = Integer.parseInt(split[0]);
|
||||
size_z = Integer.parseInt(split[1]);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
default -> {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
Template.of("value", getUsage())
|
||||
);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (size_x < 1 || size_z < 1) {
|
||||
player.sendMessage(TranslatableCaption.of("error.plot_size"));
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ import com.plotsquared.core.plot.PlotArea;
|
||||
permission = "plots.chat",
|
||||
category = CommandCategory.CHAT,
|
||||
requiredType = RequiredType.PLAYER)
|
||||
@Deprecated
|
||||
public class Chat extends SubCommand {
|
||||
|
||||
@Override
|
||||
|
@ -84,7 +84,7 @@ public class Condense extends SubCommand {
|
||||
return false;
|
||||
}
|
||||
switch (args[1].toLowerCase()) {
|
||||
case "start": {
|
||||
case "start" -> {
|
||||
if (args.length == 2) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
@ -216,7 +216,7 @@ public class Condense extends SubCommand {
|
||||
TaskManager.runTaskAsync(run);
|
||||
return true;
|
||||
}
|
||||
case "stop":
|
||||
case "stop" -> {
|
||||
if (!Condense.TASK) {
|
||||
player.sendMessage(TranslatableCaption.of("condense.task_stopped"));
|
||||
return false;
|
||||
@ -224,7 +224,8 @@ public class Condense extends SubCommand {
|
||||
Condense.TASK = false;
|
||||
player.sendMessage(TranslatableCaption.of("condense.task_stopped"));
|
||||
return true;
|
||||
case "info":
|
||||
}
|
||||
case "info" -> {
|
||||
if (args.length == 2) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
@ -268,6 +269,7 @@ public class Condense extends SubCommand {
|
||||
player.sendMessage(TranslatableCaption.of("condense.radius_measured"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
Template.of("value", "/plot condense " + area.getWorldName() + " <start | stop | info> [radius]")
|
||||
|
@ -132,7 +132,7 @@ public class DatabaseCommand extends SubCommand {
|
||||
Database implementation;
|
||||
String prefix = "";
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "import":
|
||||
case "import" -> {
|
||||
if (args.length < 2) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
@ -210,7 +210,8 @@ public class DatabaseCommand extends SubCommand {
|
||||
() -> player.sendMessage(TranslatableCaption.of("database.conversion_done"))
|
||||
);
|
||||
return true;
|
||||
case "mysql":
|
||||
}
|
||||
case "mysql" -> {
|
||||
if (args.length < 6) {
|
||||
player.sendMessage(StaticCaption.of(
|
||||
"/plot database mysql [host] [port] [username] [password] [database] {prefix}"));
|
||||
@ -224,19 +225,20 @@ public class DatabaseCommand extends SubCommand {
|
||||
prefix = args[6];
|
||||
}
|
||||
implementation = new MySQL(host, port, database, username, password);
|
||||
break;
|
||||
case "sqlite":
|
||||
}
|
||||
case "sqlite" -> {
|
||||
if (args.length < 2) {
|
||||
player.sendMessage(StaticCaption.of("/plot database sqlite [file]"));
|
||||
}
|
||||
File sqliteFile =
|
||||
FileUtils.getFile(PlotSquared.platform().getDirectory(), args[1] + ".db");
|
||||
implementation = new SQLite(sqliteFile);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
default -> {
|
||||
player.sendMessage(StaticCaption.of("/plot database [sqlite/mysql]"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
try {
|
||||
SQLManager manager = new SQLManager(
|
||||
implementation,
|
||||
|
@ -93,7 +93,7 @@ public class DebugExec extends SubCommand {
|
||||
if (args.length > 0) {
|
||||
String arg = args[0].toLowerCase();
|
||||
switch (arg) {
|
||||
case "analyze": {
|
||||
case "analyze" -> {
|
||||
Plot plot = player.getCurrentPlot();
|
||||
if (plot == null) {
|
||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||
@ -103,7 +103,7 @@ public class DebugExec extends SubCommand {
|
||||
if (analysis != null) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("debugexec.changes_column"),
|
||||
Template.of("value", String.valueOf(analysis.changes / 1.0))
|
||||
Template.of("value", String.valueOf(analysis.changes))
|
||||
);
|
||||
return true;
|
||||
}
|
||||
@ -119,7 +119,7 @@ public class DebugExec extends SubCommand {
|
||||
});
|
||||
return true;
|
||||
}
|
||||
case "calibrate-analysis":
|
||||
case "calibrate-analysis" -> {
|
||||
if (args.length != 2) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
@ -144,7 +144,8 @@ public class DebugExec extends SubCommand {
|
||||
threshold
|
||||
);
|
||||
return true;
|
||||
case "start-expire":
|
||||
}
|
||||
case "start-expire" -> {
|
||||
if (ExpireManager.IMP == null) {
|
||||
ExpireManager.IMP = new ExpireManager(this.eventDispatcher);
|
||||
}
|
||||
@ -154,14 +155,16 @@ public class DebugExec extends SubCommand {
|
||||
player.sendMessage(TranslatableCaption.of("debugexec.expiry_already_started"));
|
||||
}
|
||||
return true;
|
||||
case "stop-expire":
|
||||
}
|
||||
case "stop-expire" -> {
|
||||
if (ExpireManager.IMP == null || !ExpireManager.IMP.cancelTask()) {
|
||||
player.sendMessage(TranslatableCaption.of("debugexec.task_halted"));
|
||||
} else {
|
||||
player.sendMessage(TranslatableCaption.of("debugexec.task_cancelled"));
|
||||
}
|
||||
return true;
|
||||
case "remove-flag":
|
||||
}
|
||||
case "remove-flag" -> {
|
||||
if (args.length != 2) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
@ -186,7 +189,8 @@ public class DebugExec extends SubCommand {
|
||||
Template.of("value", flag)
|
||||
);
|
||||
return true;
|
||||
case "start-rgar": {
|
||||
}
|
||||
case "start-rgar" -> {
|
||||
if (args.length != 2) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
@ -214,7 +218,7 @@ public class DebugExec extends SubCommand {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
case "stop-rgar":
|
||||
case "stop-rgar" -> {
|
||||
if (!HybridUtils.UPDATE) {
|
||||
player.sendMessage(TranslatableCaption.of("debugexec.task_not_running"));
|
||||
return false;
|
||||
@ -224,6 +228,7 @@ public class DebugExec extends SubCommand {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
player.sendMessage(StaticCaption.of("<prefix><gold>Possible sub commands: </gold><gray>/plot debugexec <"
|
||||
+ StringMan.join(allowedParams, " | ") + "></gray>"));
|
||||
return false;
|
||||
|
@ -105,7 +105,7 @@ public class Done extends SubCommand {
|
||||
finish(plot, player, true);
|
||||
plot.removeRunning();
|
||||
} else {
|
||||
this.hybridUtils.analyzePlot(plot, new RunnableVal<PlotAnalysis>() {
|
||||
this.hybridUtils.analyzePlot(plot, new RunnableVal<>() {
|
||||
@Override
|
||||
public void run(PlotAnalysis value) {
|
||||
plot.removeRunning();
|
||||
|
@ -119,8 +119,7 @@ public final class FlagCommand extends Command {
|
||||
}
|
||||
} catch (NumberFormatException ignore) {
|
||||
}
|
||||
} else if (flag instanceof ListFlag) {
|
||||
final ListFlag<?, ?> listFlag = (ListFlag<?, ?>) flag;
|
||||
} else if (flag instanceof final ListFlag<?, ?> listFlag) {
|
||||
try {
|
||||
PlotFlag<? extends List<?>, ?> parsedFlag = listFlag.parse(value);
|
||||
for (final Object entry : parsedFlag.getValue()) {
|
||||
@ -295,7 +294,7 @@ public final class FlagCommand extends Command {
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
} catch (final Exception e) {
|
||||
} catch (final Exception ignored) {
|
||||
}
|
||||
}
|
||||
return tabOf(player, args, space);
|
||||
|
@ -75,8 +75,7 @@ public class Grant extends Command {
|
||||
);
|
||||
final String arg0 = args[0].toLowerCase();
|
||||
switch (arg0) {
|
||||
case "add":
|
||||
case "check":
|
||||
case "add", "check" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_GRANT.format(arg0))) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -111,7 +110,7 @@ public class Grant extends Command {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
DBFunc.getPersistentMeta(uuid.getUuid(), new RunnableVal<Map<String, byte[]>>() {
|
||||
DBFunc.getPersistentMeta(uuid.getUuid(), new RunnableVal<>() {
|
||||
@Override
|
||||
public void run(Map<String, byte[]> value) {
|
||||
final byte[] array = value.get("grantedPlots");
|
||||
@ -149,6 +148,7 @@ public class Grant extends Command {
|
||||
});
|
||||
return CompletableFuture.completedFuture(true);
|
||||
}
|
||||
}
|
||||
sendUsage(player);
|
||||
return CompletableFuture.completedFuture(true);
|
||||
}
|
||||
|
@ -129,7 +129,7 @@ public class HomeCommand extends Command {
|
||||
PlotArea plotArea;
|
||||
boolean basePlotOnly = true;
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
case 1 -> {
|
||||
identifier = args[0];
|
||||
if (MathMan.isInteger(identifier)) {
|
||||
try {
|
||||
@ -160,8 +160,8 @@ public class HomeCommand extends Command {
|
||||
}
|
||||
// it wasn't a valid plot id, trying to find plot by alias
|
||||
query.withAlias(identifier);
|
||||
break;
|
||||
case 2:
|
||||
}
|
||||
case 2 -> {
|
||||
// we assume args[0] is a plot area and args[1] an identifier
|
||||
plotArea = this.plotAreaManager.getPlotAreaByString(args[0]);
|
||||
identifier = args[1];
|
||||
@ -201,10 +201,8 @@ public class HomeCommand extends Command {
|
||||
// as the query already filters by owner, this is fine
|
||||
basePlotOnly = false;
|
||||
query.withPlot(plot);
|
||||
break;
|
||||
case 0:
|
||||
sortBySettings(query, player);
|
||||
break;
|
||||
}
|
||||
case 0 -> sortBySettings(query, player);
|
||||
}
|
||||
if (basePlotOnly) {
|
||||
query.whereBasePlot();
|
||||
@ -226,7 +224,7 @@ public class HomeCommand extends Command {
|
||||
public Collection<Command> tab(PlotPlayer<?> player, String[] args, boolean space) {
|
||||
final List<Command> completions = new ArrayList<>();
|
||||
switch (args.length - 1) {
|
||||
case 0:
|
||||
case 0 -> {
|
||||
completions.addAll(
|
||||
TabCompletions.completeAreas(args[0]));
|
||||
if (args[0].isEmpty()) {
|
||||
@ -238,11 +236,9 @@ public class HomeCommand extends Command {
|
||||
// complete more numbers from the already given input
|
||||
completions.addAll(
|
||||
TabCompletions.completeNumbers(args[0], 10, 999));
|
||||
break;
|
||||
case 1:
|
||||
completions.addAll(
|
||||
}
|
||||
case 1 -> completions.addAll(
|
||||
TabCompletions.completeNumbers(args[1], 10, 999));
|
||||
break;
|
||||
}
|
||||
return completions;
|
||||
}
|
||||
|
@ -25,7 +25,6 @@
|
||||
*/
|
||||
package com.plotsquared.core.command;
|
||||
|
||||
import com.plotsquared.core.PlotSquared;
|
||||
import com.plotsquared.core.configuration.Settings;
|
||||
import com.plotsquared.core.configuration.caption.Caption;
|
||||
import com.plotsquared.core.configuration.caption.StaticCaption;
|
||||
@ -43,9 +42,7 @@ import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@CommandDeclaration(command = "info",
|
||||
aliases = "i",
|
||||
@ -60,30 +57,16 @@ public class Info extends SubCommand {
|
||||
if (args.length > 0) {
|
||||
arg = args[0];
|
||||
switch (arg) {
|
||||
case "trusted":
|
||||
case "alias":
|
||||
case "inv":
|
||||
case "biome":
|
||||
case "denied":
|
||||
case "flags":
|
||||
case "id":
|
||||
case "size":
|
||||
case "members":
|
||||
case "creationdate":
|
||||
case "seen":
|
||||
case "owner":
|
||||
case "rating":
|
||||
case "likes":
|
||||
plot = Plot.getPlotFromString(player, null, false);
|
||||
break;
|
||||
default:
|
||||
case "trusted", "alias", "inv", "biome", "denied", "flags", "id", "size", "members", "creationdate", "seen", "owner", "rating", "likes" -> plot = Plot
|
||||
.getPlotFromString(player, null, false);
|
||||
default -> {
|
||||
plot = Plot.getPlotFromString(player, arg, false);
|
||||
if (args.length == 2) {
|
||||
arg = args[1];
|
||||
} else {
|
||||
arg = null;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (plot == null) {
|
||||
plot = player.getCurrentPlot();
|
||||
@ -185,36 +168,22 @@ public class Info extends SubCommand {
|
||||
}
|
||||
|
||||
private Caption getCaption(String string) {
|
||||
switch (string) {
|
||||
case "trusted":
|
||||
return TranslatableCaption.of("info.plot_info_trusted");
|
||||
case "alias":
|
||||
return TranslatableCaption.of("info.plot_info_alias");
|
||||
case "biome":
|
||||
return TranslatableCaption.of("info.plot_info_biome");
|
||||
case "denied":
|
||||
return TranslatableCaption.of("info.plot_info_denied");
|
||||
case "flags":
|
||||
return TranslatableCaption.of("info.plot_info_flags");
|
||||
case "id":
|
||||
return TranslatableCaption.of("info.plot_info_id");
|
||||
case "size":
|
||||
return TranslatableCaption.of("info.plot_info_size");
|
||||
case "members":
|
||||
return TranslatableCaption.of("info.plot_info_members");
|
||||
case "owner":
|
||||
return TranslatableCaption.of("info.plot_info_owner");
|
||||
case "rating":
|
||||
return TranslatableCaption.of("info.plot_info_rating");
|
||||
case "likes":
|
||||
return TranslatableCaption.of("info.plot_info_likes");
|
||||
case "seen":
|
||||
return TranslatableCaption.of("info.plot_info_seen");
|
||||
case "creationdate":
|
||||
return TranslatableCaption.of("info.plot_info_creationdate");
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
return switch (string) {
|
||||
case "trusted" -> TranslatableCaption.of("info.plot_info_trusted");
|
||||
case "alias" -> TranslatableCaption.of("info.plot_info_alias");
|
||||
case "biome" -> TranslatableCaption.of("info.plot_info_biome");
|
||||
case "denied" -> TranslatableCaption.of("info.plot_info_denied");
|
||||
case "flags" -> TranslatableCaption.of("info.plot_info_flags");
|
||||
case "id" -> TranslatableCaption.of("info.plot_info_id");
|
||||
case "size" -> TranslatableCaption.of("info.plot_info_size");
|
||||
case "members" -> TranslatableCaption.of("info.plot_info_members");
|
||||
case "owner" -> TranslatableCaption.of("info.plot_info_owner");
|
||||
case "rating" -> TranslatableCaption.of("info.plot_info_rating");
|
||||
case "likes" -> TranslatableCaption.of("info.plot_info_likes");
|
||||
case "seen" -> TranslatableCaption.of("info.plot_info_seen");
|
||||
case "creationdate" -> TranslatableCaption.of("info.plot_info_creationdate");
|
||||
default -> null;
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -100,7 +100,7 @@ public class Like extends SubCommand {
|
||||
final UUID uuid = player.getUUID();
|
||||
if (args.length == 1) {
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "next": {
|
||||
case "next" -> {
|
||||
final List<Plot> plots = PlotQuery.newQuery().whereBasePlot().asList();
|
||||
plots.sort((p1, p2) -> {
|
||||
double v1 = getLikesPercentage(p1);
|
||||
@ -122,7 +122,7 @@ public class Like extends SubCommand {
|
||||
player.sendMessage(TranslatableCaption.of("invalid.found_no_plots"));
|
||||
return true;
|
||||
}
|
||||
case "purge": {
|
||||
case "purge" -> {
|
||||
final Plot plot = player.getCurrentPlot();
|
||||
if (plot == null) {
|
||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||
|
@ -192,7 +192,7 @@ public class ListCmd extends SubCommand {
|
||||
};
|
||||
|
||||
switch (arg) {
|
||||
case "mine":
|
||||
case "mine" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_MINE)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -206,8 +206,8 @@ public class ListCmd extends SubCommand {
|
||||
.ownedBy(player)
|
||||
.whereBasePlot()
|
||||
.withSortingStrategy(SortingStrategy.SORT_BY_TEMP));
|
||||
break;
|
||||
case "shared":
|
||||
}
|
||||
case "shared" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_SHARED)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -219,8 +219,8 @@ public class ListCmd extends SubCommand {
|
||||
.newQuery()
|
||||
.withMember(player.getUUID())
|
||||
.thatPasses(plot -> !plot.isOwnerAbs(player.getUUID())));
|
||||
break;
|
||||
case "world":
|
||||
}
|
||||
case "world" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_WORLD)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -236,8 +236,8 @@ public class ListCmd extends SubCommand {
|
||||
return false;
|
||||
}
|
||||
plotConsumer.accept(PlotQuery.newQuery().inWorld(world));
|
||||
break;
|
||||
case "expired":
|
||||
}
|
||||
case "expired" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_EXPIRED)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -250,8 +250,8 @@ public class ListCmd extends SubCommand {
|
||||
} else {
|
||||
plotConsumer.accept(PlotQuery.newQuery().expiredPlots());
|
||||
}
|
||||
break;
|
||||
case "area":
|
||||
}
|
||||
case "area" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_AREA)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -271,8 +271,8 @@ public class ListCmd extends SubCommand {
|
||||
} else {
|
||||
plotConsumer.accept(PlotQuery.newQuery().inArea(area));
|
||||
}
|
||||
break;
|
||||
case "all":
|
||||
}
|
||||
case "all" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_ALL)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -281,8 +281,8 @@ public class ListCmd extends SubCommand {
|
||||
return false;
|
||||
}
|
||||
plotConsumer.accept(PlotQuery.newQuery().allPlots());
|
||||
break;
|
||||
case "done":
|
||||
}
|
||||
case "done" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_DONE)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -296,8 +296,8 @@ public class ListCmd extends SubCommand {
|
||||
.allPlots()
|
||||
.thatPasses(DoneFlag::isDone)
|
||||
.withSortingStrategy(SortingStrategy.SORT_BY_DONE));
|
||||
break;
|
||||
case "top":
|
||||
}
|
||||
case "top" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_TOP)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -307,8 +307,8 @@ public class ListCmd extends SubCommand {
|
||||
}
|
||||
sort[0] = false;
|
||||
plotConsumer.accept(PlotQuery.newQuery().allPlots().withSortingStrategy(SortingStrategy.SORT_BY_RATING));
|
||||
break;
|
||||
case "forsale":
|
||||
}
|
||||
case "forsale" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_FOR_SALE)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -320,8 +320,8 @@ public class ListCmd extends SubCommand {
|
||||
break;
|
||||
}
|
||||
plotConsumer.accept(PlotQuery.newQuery().allPlots().thatPasses(plot -> plot.getFlag(PriceFlag.class) > 0));
|
||||
break;
|
||||
case "unowned":
|
||||
}
|
||||
case "unowned" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_UNOWNED)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -330,8 +330,8 @@ public class ListCmd extends SubCommand {
|
||||
return false;
|
||||
}
|
||||
plotConsumer.accept(PlotQuery.newQuery().allPlots().thatPasses(plot -> plot.getOwner() == null));
|
||||
break;
|
||||
case "fuzzy":
|
||||
}
|
||||
case "fuzzy" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_FUZZY)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -354,8 +354,8 @@ public class ListCmd extends SubCommand {
|
||||
}
|
||||
sort[0] = false;
|
||||
plotConsumer.accept(PlotQuery.newQuery().plotsBySearch(term));
|
||||
break;
|
||||
default:
|
||||
}
|
||||
default -> {
|
||||
if (this.plotAreaManager.hasPlotArea(args[0])) {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_LIST_WORLD)) {
|
||||
player.sendMessage(
|
||||
@ -374,7 +374,6 @@ public class ListCmd extends SubCommand {
|
||||
plotConsumer.accept(PlotQuery.newQuery().inWorld(args[0]));
|
||||
break;
|
||||
}
|
||||
|
||||
PlotSquared.get().getImpromptuUUIDPipeline().getSingle(args[0], (uuid, throwable) -> {
|
||||
if (throwable instanceof TimeoutException) {
|
||||
player.sendMessage(TranslatableCaption.of("players.fetching_players_timeout"));
|
||||
@ -404,6 +403,7 @@ public class ListCmd extends SubCommand {
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -411,7 +411,7 @@ public class ListCmd extends SubCommand {
|
||||
public void displayPlots(final PlotPlayer<?> player, List<Plot> plots, int pageSize, int page, String[] args) {
|
||||
// Header
|
||||
plots.removeIf(plot -> !plot.isBasePlot());
|
||||
this.paginate(player, plots, pageSize, page, new RunnableVal3<Integer, Plot, CaptionHolder>() {
|
||||
this.paginate(player, plots, pageSize, page, new RunnableVal3<>() {
|
||||
@Override
|
||||
public void run(Integer i, Plot plot, CaptionHolder caption) {
|
||||
Caption color;
|
||||
|
@ -184,7 +184,7 @@ public class MainCommand extends Command {
|
||||
}
|
||||
}
|
||||
try {
|
||||
getInstance().execute(player, args, new RunnableVal3<Command, Runnable, Runnable>() {
|
||||
getInstance().execute(player, args, new RunnableVal3<>() {
|
||||
@Override
|
||||
public void run(final Command cmd, final Runnable success, final Runnable failure) {
|
||||
if (cmd.hasConfirmation(player)) {
|
||||
@ -222,7 +222,7 @@ public class MainCommand extends Command {
|
||||
success.run();
|
||||
}
|
||||
}
|
||||
}, new RunnableVal2<Command, CommandResult>() {
|
||||
}, new RunnableVal2<>() {
|
||||
@Override
|
||||
public void run(Command cmd, CommandResult result) {
|
||||
// Post command stuff!?
|
||||
@ -281,7 +281,7 @@ public class MainCommand extends Command {
|
||||
}
|
||||
if (args.length >= 2 && !args[0].isEmpty() && args[0].charAt(0) == '-') {
|
||||
if ("f".equals(args[0].substring(1))) {
|
||||
confirm = new RunnableVal3<Command, Runnable, Runnable>() {
|
||||
confirm = new RunnableVal3<>() {
|
||||
@Override
|
||||
public void run(Command cmd, Runnable success, Runnable failure) {
|
||||
if (area != null && PlotSquared.platform().econHandler().isEnabled(area)) {
|
||||
|
@ -74,23 +74,13 @@ public class Merge extends SubCommand {
|
||||
public static String direction(float yaw) {
|
||||
yaw = yaw / 90;
|
||||
int i = Math.round(yaw);
|
||||
switch (i) {
|
||||
case -4:
|
||||
case 0:
|
||||
case 4:
|
||||
return "SOUTH";
|
||||
case -1:
|
||||
case 3:
|
||||
return "EAST";
|
||||
case -2:
|
||||
case 2:
|
||||
return "NORTH";
|
||||
case -3:
|
||||
case 1:
|
||||
return "WEST";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
return switch (i) {
|
||||
case -4, 0, 4 -> "SOUTH";
|
||||
case -1, 3 -> "EAST";
|
||||
case -2, 2 -> "NORTH";
|
||||
case -3, 1 -> "WEST";
|
||||
default -> "";
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -112,18 +102,10 @@ public class Merge extends SubCommand {
|
||||
Direction direction = null;
|
||||
if (args.length == 0) {
|
||||
switch (direction(player.getLocationFull().getYaw())) {
|
||||
case "NORTH":
|
||||
direction = Direction.NORTH;
|
||||
break;
|
||||
case "EAST":
|
||||
direction = Direction.EAST;
|
||||
break;
|
||||
case "SOUTH":
|
||||
direction = Direction.SOUTH;
|
||||
break;
|
||||
case "WEST":
|
||||
direction = Direction.WEST;
|
||||
break;
|
||||
case "NORTH" -> direction = Direction.NORTH;
|
||||
case "EAST" -> direction = Direction.EAST;
|
||||
case "SOUTH" -> direction = Direction.SOUTH;
|
||||
case "WEST" -> direction = Direction.WEST;
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < values.length; i++) {
|
||||
|
@ -70,7 +70,6 @@ public class Owner extends SetCommand {
|
||||
@Override
|
||||
public boolean set(final PlotPlayer<?> player, final Plot plot, String value) {
|
||||
if (value == null || value.isEmpty()) {
|
||||
player.sendMessage(TranslatableCaption.of("owner.set_owner_missing_player"));
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
Template.of("value", "/plot setowner <owner>")
|
||||
@ -155,7 +154,7 @@ public class Owner extends SetCommand {
|
||||
other.getPlotCount() :
|
||||
other.getPlotCount(plot.getWorldName())) + size;
|
||||
try (final MetaDataAccess<Integer> metaDataAccess = player.accessPersistentMetaData(PlayerMetaDataKeys.PERSISTENT_GRANTED_PLOTS)) {
|
||||
int grants = 0;
|
||||
int grants;
|
||||
if (currentPlots >= other.getAllowedPlots()) {
|
||||
if (metaDataAccess.isPresent()) {
|
||||
grants = metaDataAccess.get().orElse(0);
|
||||
|
@ -206,9 +206,7 @@ public class Purge extends SubCommand {
|
||||
"/plot purge " + StringMan.join(args, " ") + " (" + toDelete.size() + " plots)";
|
||||
boolean finalClear = clear;
|
||||
Runnable run = () -> {
|
||||
if (Settings.DEBUG) {
|
||||
logger.info("Calculating plots to purge, please wait...");
|
||||
}
|
||||
HashSet<Integer> ids = new HashSet<>();
|
||||
Iterator<Plot> iterator = toDelete.iterator();
|
||||
AtomicBoolean cleared = new AtomicBoolean(true);
|
||||
@ -223,9 +221,7 @@ public class Purge extends SubCommand {
|
||||
ids.add(plot.temp);
|
||||
if (finalClear) {
|
||||
plot.getPlotModificationManager().clear(false, true, player, () -> {
|
||||
if (Settings.DEBUG) {
|
||||
logger.info("Plot {} cleared by purge", plot.getId());
|
||||
}
|
||||
});
|
||||
} else {
|
||||
plot.getPlotModificationManager().removeSign();
|
||||
|
@ -81,7 +81,7 @@ public class Rate extends SubCommand {
|
||||
public boolean onCommand(final PlotPlayer<?> player, String[] args) {
|
||||
if (args.length == 1) {
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "next": {
|
||||
case "next" -> {
|
||||
final List<Plot> plots = PlotQuery.newQuery().whereBasePlot().asList();
|
||||
plots.sort((p1, p2) -> {
|
||||
double v1 = 0;
|
||||
@ -115,7 +115,7 @@ public class Rate extends SubCommand {
|
||||
player.sendMessage(TranslatableCaption.of("invalid.found_no_plots"));
|
||||
return false;
|
||||
}
|
||||
case "purge": {
|
||||
case "purge" -> {
|
||||
final Plot plot = player.getCurrentPlot();
|
||||
if (plot == null) {
|
||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot"));
|
||||
@ -292,7 +292,7 @@ public class Rate extends SubCommand {
|
||||
return TabCompletions.completePlayers(String.join(",", args).trim(), Collections.emptyList());
|
||||
}
|
||||
|
||||
private class MutableInt {
|
||||
private static class MutableInt {
|
||||
|
||||
private int value;
|
||||
|
||||
|
@ -86,7 +86,7 @@ public class SchematicCmd extends SubCommand {
|
||||
}
|
||||
String arg = args[0].toLowerCase();
|
||||
switch (arg) {
|
||||
case "paste": {
|
||||
case "paste" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_SCHEMATIC_PASTE)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -179,10 +179,8 @@ public class SchematicCmd extends SubCommand {
|
||||
}
|
||||
);
|
||||
});
|
||||
break;
|
||||
}
|
||||
case "saveall":
|
||||
case "exportall": {
|
||||
case "saveall", "exportall" -> {
|
||||
Location loc = player.getLocation();
|
||||
final Plot plot = loc.getPlotAbs();
|
||||
if (!(player instanceof ConsolePlayer)) {
|
||||
@ -227,10 +225,8 @@ public class SchematicCmd extends SubCommand {
|
||||
Template.of("amount", String.valueOf(plots.size()))
|
||||
);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "export":
|
||||
case "save":
|
||||
case "export", "save" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_SCHEMATIC_SAVE)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -272,8 +268,8 @@ public class SchematicCmd extends SubCommand {
|
||||
} else {
|
||||
player.sendMessage(TranslatableCaption.of("schematics.schematic_exportall_started"));
|
||||
}
|
||||
break;
|
||||
case "list": {
|
||||
}
|
||||
case "list" -> {
|
||||
if (!Permissions.hasPermission(player, Permission.PERMISSION_SCHEMATIC_LIST)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("permission.no_permission"),
|
||||
@ -287,13 +283,10 @@ public class SchematicCmd extends SubCommand {
|
||||
Template.of("list", string)
|
||||
);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
player.sendMessage(
|
||||
default -> player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
Template.of("value", "Possible values: save, paste, exportall, list")
|
||||
);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -47,16 +47,13 @@ public class SetHome extends SetCommand {
|
||||
return false;
|
||||
}
|
||||
switch (value.toLowerCase()) {
|
||||
case "unset":
|
||||
case "reset":
|
||||
case "remove":
|
||||
case "none": {
|
||||
case "unset", "reset", "remove", "none" -> {
|
||||
Plot base = plot.getBasePlot(false);
|
||||
base.setHome(null);
|
||||
player.sendMessage(TranslatableCaption.of("position.position_unset"));
|
||||
return true;
|
||||
}
|
||||
case "": {
|
||||
case "" -> {
|
||||
Plot base = plot.getBasePlot(false);
|
||||
Location bottom = base.getBottomAbs();
|
||||
Location location = player.getLocationFull();
|
||||
@ -67,7 +64,7 @@ public class SetHome extends SetCommand {
|
||||
player.sendMessage(TranslatableCaption.of("position.position_set"));
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
default -> {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
Template.of("value", "Use /plot set home [none]")
|
||||
@ -75,5 +72,6 @@ public class SetHome extends SetCommand {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ public abstract class SubCommand extends Command {
|
||||
super(MainCommand.getInstance(), true);
|
||||
}
|
||||
|
||||
public SubCommand(Argument... arguments) {
|
||||
public SubCommand(Argument<?>... arguments) {
|
||||
this();
|
||||
setRequiredArguments(arguments);
|
||||
}
|
||||
|
@ -192,7 +192,7 @@ public class Template extends SubCommand {
|
||||
}
|
||||
final String world = args[1];
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "import": {
|
||||
case "import" -> {
|
||||
if (args.length != 3) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
@ -245,7 +245,7 @@ public class Template extends SubCommand {
|
||||
});
|
||||
return true;
|
||||
}
|
||||
case "export":
|
||||
case "export" -> {
|
||||
if (args.length != 2) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("commandconfig.command_syntax"),
|
||||
@ -276,8 +276,8 @@ public class Template extends SubCommand {
|
||||
player.sendMessage(TranslatableCaption.of("debugimportworlds.done"));
|
||||
});
|
||||
return true;
|
||||
default:
|
||||
sendUsage(player);
|
||||
}
|
||||
default -> sendUsage(player);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -107,7 +107,7 @@ public class Trim extends SubCommand {
|
||||
StaticCaption.of(" - MCA #: " + result.value1.size());
|
||||
StaticCaption.of(" - CHUNKS: " + (result.value1.size() * 1024) + " (max)");
|
||||
StaticCaption.of(" - TIME ESTIMATE: 12 Parsecs");
|
||||
TaskManager.getPlatformImplementation().objectTask(plots, new RunnableVal<Plot>() {
|
||||
TaskManager.getPlatformImplementation().objectTask(plots, new RunnableVal<>() {
|
||||
@Override
|
||||
public void run(Plot plot) {
|
||||
Location pos1 = plot.getCorners()[0];
|
||||
@ -147,7 +147,7 @@ public class Trim extends SubCommand {
|
||||
}
|
||||
Trim.TASK = true;
|
||||
final boolean regen = args.length == 2 && Boolean.parseBoolean(args[1]);
|
||||
getTrimRegions(world, new RunnableVal2<Set<BlockVector2>, Set<BlockVector2>>() {
|
||||
getTrimRegions(world, new RunnableVal2<>() {
|
||||
@Override
|
||||
public void run(Set<BlockVector2> viable, final Set<BlockVector2> nonViable) {
|
||||
Runnable regenTask;
|
||||
@ -199,7 +199,7 @@ public class Trim extends SubCommand {
|
||||
}
|
||||
}
|
||||
final QueueCoordinator queue = blockQueue.getNewQueue(worldUtil.getWeWorld(world));
|
||||
TaskManager.getPlatformImplementation().objectTask(chunks, new RunnableVal<BlockVector2>() {
|
||||
TaskManager.getPlatformImplementation().objectTask(chunks, new RunnableVal<>() {
|
||||
@Override
|
||||
public void run(BlockVector2 value) {
|
||||
queue.regenChunk(value.getX(), value.getZ());
|
||||
|
@ -314,10 +314,8 @@ public class Visit extends Command {
|
||||
public Collection<Command> tab(PlotPlayer<?> player, String[] args, boolean space) {
|
||||
final List<Command> completions = new ArrayList<>();
|
||||
switch (args.length - 1) {
|
||||
case 0:
|
||||
completions.addAll(TabCompletions.completePlayers(args[0], Collections.emptyList()));
|
||||
break;
|
||||
case 1:
|
||||
case 0 -> completions.addAll(TabCompletions.completePlayers(args[0], Collections.emptyList()));
|
||||
case 1 -> {
|
||||
completions.addAll(
|
||||
TabCompletions.completeAreas(args[1]));
|
||||
if (args[1].isEmpty()) {
|
||||
@ -328,8 +326,8 @@ public class Visit extends Command {
|
||||
}
|
||||
completions.addAll(
|
||||
TabCompletions.completeNumbers(args[1], 10, 999));
|
||||
break;
|
||||
case 2:
|
||||
}
|
||||
case 2 -> {
|
||||
if (args[2].isEmpty()) {
|
||||
// if no input is given, only suggest 1 - 3
|
||||
completions.addAll(
|
||||
@ -338,7 +336,7 @@ public class Visit extends Command {
|
||||
}
|
||||
completions.addAll(
|
||||
TabCompletions.completeNumbers(args[2], 10, 999));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return completions;
|
||||
|
@ -1,45 +0,0 @@
|
||||
/*
|
||||
* _____ _ _ _____ _
|
||||
* | __ \| | | | / ____| | |
|
||||
* | |__) | | ___ | |_| (___ __ _ _ _ __ _ _ __ ___ __| |
|
||||
* | ___/| |/ _ \| __|\___ \ / _` | | | |/ _` | '__/ _ \/ _` |
|
||||
* | | | | (_) | |_ ____) | (_| | |_| | (_| | | | __/ (_| |
|
||||
* |_| |_|\___/ \__|_____/ \__, |\__,_|\__,_|_| \___|\__,_|
|
||||
* | |
|
||||
* |_|
|
||||
* PlotSquared plot management system for Minecraft
|
||||
* Copyright (C) 2021 IntellectualSites
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.plotsquared.core.command;
|
||||
|
||||
import com.plotsquared.core.player.PlotPlayer;
|
||||
|
||||
@CommandDeclaration(command = "weanywhere",
|
||||
permission = "plots.worldedit.bypass",
|
||||
aliases = {"wea"},
|
||||
usage = "/plot weanywhere",
|
||||
requiredType = RequiredType.NONE,
|
||||
category = CommandCategory.ADMINISTRATION)
|
||||
@Deprecated
|
||||
public class WE_Anywhere extends SubCommand {
|
||||
|
||||
@Override
|
||||
public boolean onCommand(PlotPlayer<?> player, String[] arguments) {
|
||||
MainCommand.getInstance().toggle.worldedit(this, player, new String[0], null, null);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
@ -170,12 +170,11 @@ public class Config {
|
||||
}
|
||||
StringBuilder m = new StringBuilder();
|
||||
for (Object obj : listValue) {
|
||||
m.append(System.lineSeparator() + spacing + "- " + toYamlString(obj, spacing));
|
||||
m.append(System.lineSeparator()).append(spacing).append("- ").append(toYamlString(obj, spacing));
|
||||
}
|
||||
return m.toString();
|
||||
}
|
||||
if (value instanceof String) {
|
||||
String stringValue = (String) value;
|
||||
if (value instanceof String stringValue) {
|
||||
if (stringValue.isEmpty()) {
|
||||
return "''";
|
||||
}
|
||||
@ -448,7 +447,7 @@ public class Config {
|
||||
@Ignore // This is not part of the config
|
||||
public static class ConfigBlock<T> {
|
||||
|
||||
private HashMap<String, T> INSTANCES = new HashMap<>();
|
||||
private final HashMap<String, T> INSTANCES = new HashMap<>();
|
||||
|
||||
public T get(String key) {
|
||||
return INSTANCES.get(key);
|
||||
|
@ -255,7 +255,7 @@ public interface ConfigurationSection {
|
||||
* <p>If the path exists but is not a String, this will return false. If
|
||||
* the path does not exist, this will return false. If the path does not
|
||||
* exist but a default value has been specified, this will check if that
|
||||
* defaultvalue is a String and return appropriately.
|
||||
* default value is a String and return appropriately.
|
||||
*
|
||||
* @param path Path of the String to check.
|
||||
* @return Whether or not the specified path is a String.
|
||||
|
@ -45,7 +45,7 @@ import java.util.function.Supplier;
|
||||
*/
|
||||
public class ConfigurationUtil {
|
||||
|
||||
public static final SettingValue<Integer> INTEGER = new SettingValue<Integer>("INTEGER") {
|
||||
public static final SettingValue<Integer> INTEGER = new SettingValue<>("INTEGER") {
|
||||
@Override
|
||||
public boolean validateValue(String string) {
|
||||
try {
|
||||
@ -61,7 +61,7 @@ public class ConfigurationUtil {
|
||||
return Integer.parseInt(string);
|
||||
}
|
||||
};
|
||||
public static final SettingValue<Boolean> BOOLEAN = new SettingValue<Boolean>("BOOLEAN") {
|
||||
public static final SettingValue<Boolean> BOOLEAN = new SettingValue<>("BOOLEAN") {
|
||||
@Override
|
||||
public boolean validateValue(String string) {
|
||||
//noinspection ResultOfMethodCallIgnored
|
||||
@ -74,7 +74,7 @@ public class ConfigurationUtil {
|
||||
return Boolean.parseBoolean(string);
|
||||
}
|
||||
};
|
||||
public static final SettingValue<BiomeType> BIOME = new SettingValue<BiomeType>("BIOME") {
|
||||
public static final SettingValue<BiomeType> BIOME = new SettingValue<>("BIOME") {
|
||||
@Override
|
||||
public boolean validateValue(String string) {
|
||||
try {
|
||||
@ -94,7 +94,7 @@ public class ConfigurationUtil {
|
||||
};
|
||||
|
||||
public static final SettingValue<BlockBucket> BLOCK_BUCKET =
|
||||
new SettingValue<BlockBucket>("BLOCK_BUCKET") {
|
||||
new SettingValue<>("BLOCK_BUCKET") {
|
||||
|
||||
@Override
|
||||
public BlockBucket parseString(final String string) {
|
||||
|
@ -95,8 +95,7 @@ public class MemorySection implements ConfigurationSection {
|
||||
return Double.parseDouble((String) obj);
|
||||
} catch (NumberFormatException ignored) {
|
||||
}
|
||||
} else if (obj instanceof List) {
|
||||
List<?> val = (List<?>) obj;
|
||||
} else if (obj instanceof List<?> val) {
|
||||
if (!val.isEmpty()) {
|
||||
return toDouble(val.get(0), def);
|
||||
}
|
||||
@ -113,8 +112,7 @@ public class MemorySection implements ConfigurationSection {
|
||||
return Integer.parseInt((String) obj);
|
||||
} catch (NumberFormatException ignored) {
|
||||
}
|
||||
} else if (obj instanceof List) {
|
||||
List<?> val = (List<?>) obj;
|
||||
} else if (obj instanceof List<?> val) {
|
||||
if (!val.isEmpty()) {
|
||||
return toInt(val.get(0), def);
|
||||
}
|
||||
@ -131,8 +129,7 @@ public class MemorySection implements ConfigurationSection {
|
||||
return Long.parseLong((String) obj);
|
||||
} catch (NumberFormatException ignored) {
|
||||
}
|
||||
} else if (obj instanceof List) {
|
||||
List<?> val = (List<?>) obj;
|
||||
} else if (obj instanceof List<?> val) {
|
||||
if (!val.isEmpty()) {
|
||||
return toLong(val.get(0), def);
|
||||
}
|
||||
@ -716,8 +713,7 @@ public class MemorySection implements ConfigurationSection {
|
||||
for (Object object : list) {
|
||||
if (object instanceof Character) {
|
||||
result.add((Character) object);
|
||||
} else if (object instanceof String) {
|
||||
String str = (String) object;
|
||||
} else if (object instanceof String str) {
|
||||
|
||||
if (str.length() == 1) {
|
||||
result.add(str.charAt(0));
|
||||
@ -798,14 +794,12 @@ public class MemorySection implements ConfigurationSection {
|
||||
}
|
||||
|
||||
protected void mapChildrenKeys(Set<String> output, ConfigurationSection section, boolean deep) {
|
||||
if (section instanceof MemorySection) {
|
||||
MemorySection sec = (MemorySection) section;
|
||||
if (section instanceof MemorySection sec) {
|
||||
|
||||
for (Map.Entry<String, Object> entry : sec.map.entrySet()) {
|
||||
output.add(createPath(section, entry.getKey(), this));
|
||||
|
||||
if (deep && (entry.getValue() instanceof ConfigurationSection)) {
|
||||
ConfigurationSection subsection = (ConfigurationSection) entry.getValue();
|
||||
if (deep && (entry.getValue() instanceof ConfigurationSection subsection)) {
|
||||
mapChildrenKeys(output, subsection, deep);
|
||||
}
|
||||
}
|
||||
@ -822,8 +816,7 @@ public class MemorySection implements ConfigurationSection {
|
||||
Map<String, Object> output, ConfigurationSection section,
|
||||
boolean deep
|
||||
) {
|
||||
if (section instanceof MemorySection) {
|
||||
MemorySection sec = (MemorySection) section;
|
||||
if (section instanceof MemorySection sec) {
|
||||
|
||||
for (Map.Entry<String, Object> entry : sec.map.entrySet()) {
|
||||
output.put(createPath(section, entry.getKey(), this), entry.getValue());
|
||||
|
@ -167,9 +167,6 @@ public class Settings extends Config {
|
||||
Teleport.ON_CLEAR = config.getBoolean("teleport.on_clear", Teleport.ON_CLEAR);
|
||||
Teleport.ON_DELETE = config.getBoolean("teleport.on_delete", Teleport.ON_DELETE);
|
||||
|
||||
// WorldEdit
|
||||
//WE_ALLOW_HELPER = config.getBoolean("worldedit.enable-for-helpers");
|
||||
|
||||
// Chunk processor
|
||||
Enabled_Components.CHUNK_PROCESSOR =
|
||||
config.getBoolean("chunk-processor.enabled", Enabled_Components.CHUNK_PROCESSOR);
|
||||
|
@ -81,13 +81,11 @@ public class YamlConfiguration extends FileConfiguration {
|
||||
dest = new File(file.getAbsolutePath() + "_broken_" + i++);
|
||||
}
|
||||
Files.copy(file.toPath(), dest.toPath(), StandardCopyOption.REPLACE_EXISTING);
|
||||
if (Settings.DEBUG) {
|
||||
logger.error("Could not read: {}", file);
|
||||
logger.error("Renamed to: {}", file);
|
||||
logger.error("============ Full stacktrace ============");
|
||||
ex.printStackTrace();
|
||||
logger.error("=========================================");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@ -117,7 +115,7 @@ public class YamlConfiguration extends FileConfiguration {
|
||||
|
||||
Map<?, ?> input;
|
||||
try {
|
||||
input = (Map<?, ?>) yaml.load(contents);
|
||||
input = yaml.load(contents);
|
||||
} catch (YAMLException e) {
|
||||
throw new InvalidConfigurationException(e);
|
||||
} catch (ClassCastException ignored) {
|
||||
@ -183,8 +181,7 @@ public class YamlConfiguration extends FileConfiguration {
|
||||
if (options().copyHeader()) {
|
||||
Configuration def = getDefaults();
|
||||
|
||||
if (def instanceof FileConfiguration) {
|
||||
FileConfiguration fileDefaults = (FileConfiguration) def;
|
||||
if (def instanceof FileConfiguration fileDefaults) {
|
||||
String defaultsHeader = fileDefaults.buildHeader();
|
||||
|
||||
if ((defaultsHeader != null) && !defaultsHeader.isEmpty()) {
|
||||
|
@ -51,7 +51,6 @@ class YamlRepresenter extends Representer {
|
||||
|
||||
}
|
||||
|
||||
|
||||
private class RepresentConfigurationSerializable extends RepresentMap {
|
||||
|
||||
@Override
|
||||
|
@ -196,10 +196,7 @@ public class SQLManager implements AbstractDB {
|
||||
}
|
||||
TaskManager.runTaskAsync(() -> {
|
||||
long last = System.currentTimeMillis();
|
||||
while (true) {
|
||||
if (SQLManager.this.closed) {
|
||||
break;
|
||||
}
|
||||
while (!SQLManager.this.closed) {
|
||||
boolean hasTask =
|
||||
!globalTasks.isEmpty() || !playerTasks.isEmpty() || !plotTasks.isEmpty()
|
||||
|| !clusterTasks.isEmpty();
|
||||
@ -685,7 +682,7 @@ public class SQLManager implements AbstractDB {
|
||||
* @param myList list of plots to be created
|
||||
*/
|
||||
public void createTiers(ArrayList<UUIDPair> myList, final String tier, Runnable whenDone) {
|
||||
StmtMod<UUIDPair> mod = new StmtMod<UUIDPair>() {
|
||||
StmtMod<UUIDPair> mod = new StmtMod<>() {
|
||||
@Override
|
||||
public String getCreateMySQL(int size) {
|
||||
return getCreateMySQL(size, SQLManager.this.CREATE_TIERS.replaceAll("%tier%", tier),
|
||||
@ -750,13 +747,11 @@ public class SQLManager implements AbstractDB {
|
||||
e.printStackTrace();
|
||||
continue;
|
||||
}
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(
|
||||
"- Finished converting flag values for plot with entry ID: {}",
|
||||
plot.getId()
|
||||
);
|
||||
}
|
||||
}
|
||||
} catch (final Exception e) {
|
||||
logger.error("Failed to store flag values", e);
|
||||
}
|
||||
@ -770,7 +765,7 @@ public class SQLManager implements AbstractDB {
|
||||
* @param myList list of plots to be created
|
||||
*/
|
||||
public void createPlots(List<Plot> myList, Runnable whenDone) {
|
||||
StmtMod<Plot> mod = new StmtMod<Plot>() {
|
||||
StmtMod<Plot> mod = new StmtMod<>() {
|
||||
@Override
|
||||
public String getCreateMySQL(int size) {
|
||||
return getCreateMySQL(size, SQLManager.this.CREATE_PLOTS, 5);
|
||||
@ -1007,7 +1002,7 @@ public class SQLManager implements AbstractDB {
|
||||
}
|
||||
|
||||
public void createEmptySettings(final ArrayList<Integer> myList, final Runnable whenDone) {
|
||||
final StmtMod<Integer> mod = new StmtMod<Integer>() {
|
||||
final StmtMod<Integer> mod = new StmtMod<>() {
|
||||
@Override
|
||||
public String getCreateMySQL(int size) {
|
||||
return getCreateMySQL(size, SQLManager.this.CREATE_SETTINGS, 1);
|
||||
@ -1673,7 +1668,7 @@ public class SQLManager implements AbstractDB {
|
||||
}
|
||||
|
||||
public void deleteRows(ArrayList<Integer> rowIds, final String table, final String column) {
|
||||
setBulk(rowIds, new StmtMod<Integer>() {
|
||||
setBulk(rowIds, new StmtMod<>() {
|
||||
|
||||
@Override
|
||||
public String getCreateMySQL(int size) {
|
||||
@ -1786,14 +1781,11 @@ public class SQLManager implements AbstractDB {
|
||||
String.format("%.1f", ((float) flagsProcessed / totalFlags) * 100)
|
||||
);
|
||||
}
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(
|
||||
"- Finished converting flags for plot with entry ID: {}",
|
||||
plotFlagEntry.getKey()
|
||||
);
|
||||
}
|
||||
}
|
||||
} catch (final Exception e) {
|
||||
logger.error("Failed to store flag values", e);
|
||||
return false;
|
||||
@ -1905,7 +1897,7 @@ public class SQLManager implements AbstractDB {
|
||||
if (last != null) {
|
||||
if (Settings.Enabled_Components.DATABASE_PURGER) {
|
||||
toDelete.add(last.temp);
|
||||
} else if (Settings.DEBUG) {
|
||||
} else {
|
||||
logger.info(
|
||||
"Plot #{}({}) in `{}plot` is a duplicate."
|
||||
+ " Delete this plot or set `database-purger: true` in the settings.yml",
|
||||
@ -1942,7 +1934,7 @@ public class SQLManager implements AbstractDB {
|
||||
plot.getSettings().getRatings().put(user, r.getInt("rating"));
|
||||
} else if (Settings.Enabled_Components.DATABASE_PURGER) {
|
||||
toDelete.add(id);
|
||||
} else if (Settings.DEBUG) {
|
||||
} else {
|
||||
logger.info("Entry #{}({}) in `plot_rating` does not exist."
|
||||
+ " Create this plot or set `database-purger: true` in settings.yml", id, plot);
|
||||
}
|
||||
@ -1970,7 +1962,7 @@ public class SQLManager implements AbstractDB {
|
||||
plot.getTrusted().add(user);
|
||||
} else if (Settings.Enabled_Components.DATABASE_PURGER) {
|
||||
toDelete.add(id);
|
||||
} else if (Settings.DEBUG) {
|
||||
} else {
|
||||
logger.info("Entry #{}({}) in `plot_helpers` does not exist."
|
||||
+ " Create this plot or set `database-purger: true` in settings.yml", id, plot);
|
||||
}
|
||||
@ -1997,7 +1989,7 @@ public class SQLManager implements AbstractDB {
|
||||
plot.getMembers().add(user);
|
||||
} else if (Settings.Enabled_Components.DATABASE_PURGER) {
|
||||
toDelete.add(id);
|
||||
} else if (Settings.DEBUG) {
|
||||
} else {
|
||||
logger.info("Entry #{}({}) in `plot_trusted` does not exist."
|
||||
+ " Create this plot or set `database-purger: true` in settings.yml", id, plot);
|
||||
}
|
||||
@ -2024,7 +2016,7 @@ public class SQLManager implements AbstractDB {
|
||||
plot.getDenied().add(user);
|
||||
} else if (Settings.Enabled_Components.DATABASE_PURGER) {
|
||||
toDelete.add(id);
|
||||
} else if (Settings.DEBUG) {
|
||||
} else {
|
||||
logger.info("Entry #{}({}) in `plot_denied` does not exist."
|
||||
+ " Create this plot or set `database-purger: true` in settings.yml", id, plot);
|
||||
}
|
||||
@ -2065,7 +2057,7 @@ public class SQLManager implements AbstractDB {
|
||||
}
|
||||
} else if (Settings.Enabled_Components.DATABASE_PURGER) {
|
||||
toDelete.add(id);
|
||||
} else if (Settings.DEBUG) {
|
||||
} else {
|
||||
logger.info("Entry #{}({}) in `plot_flags` does not exist."
|
||||
+ " Create this plot or set `database-purger: true` in settings.yml", id, plot);
|
||||
}
|
||||
@ -2076,12 +2068,10 @@ public class SQLManager implements AbstractDB {
|
||||
for (final Map.Entry<Plot, Collection<PlotFlag<?, ?>>> plotFlagEntry : invalidFlags
|
||||
.entrySet()) {
|
||||
for (final PlotFlag<?, ?> flag : plotFlagEntry.getValue()) {
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(
|
||||
"Plot {} has an invalid flag ({}). A fix has been attempted",
|
||||
plotFlagEntry.getKey(), flag.getName()
|
||||
);
|
||||
}
|
||||
removeFlag(plotFlagEntry.getKey(), flag);
|
||||
}
|
||||
}
|
||||
@ -2122,7 +2112,7 @@ public class SQLManager implements AbstractDB {
|
||||
plot.getSettings().setMerged(merged);
|
||||
} else if (Settings.Enabled_Components.DATABASE_PURGER) {
|
||||
toDelete.add(id);
|
||||
} else if (Settings.DEBUG) {
|
||||
} else {
|
||||
logger.info("Entry #{}({}) in `plot_settings` does not exist."
|
||||
+ " Create this plot or set `database-purger: true` in settings.yml", id, plot);
|
||||
}
|
||||
@ -2295,9 +2285,7 @@ public class SQLManager implements AbstractDB {
|
||||
*/
|
||||
@Override
|
||||
public void purgeIds(final Set<Integer> uniqueIds) {
|
||||
addGlobalTask(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
addGlobalTask(() -> {
|
||||
if (!uniqueIds.isEmpty()) {
|
||||
try {
|
||||
ArrayList<Integer> uniqueIdsList = new ArrayList<>(uniqueIds);
|
||||
@ -2356,10 +2344,7 @@ public class SQLManager implements AbstractDB {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (Settings.DEBUG) {
|
||||
logger.info("Successfully purged {} plots", uniqueIds.size());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -2919,7 +2904,7 @@ public class SQLManager implements AbstractDB {
|
||||
cluster = clusters.get(id);
|
||||
if (cluster != null) {
|
||||
cluster.helpers.add(user);
|
||||
} else if (Settings.DEBUG) {
|
||||
} else {
|
||||
logger.warn("Cluster #{}({}) in cluster_helpers does not exist."
|
||||
+ " Please create the cluster or remove this entry", id, cluster);
|
||||
}
|
||||
@ -2938,7 +2923,7 @@ public class SQLManager implements AbstractDB {
|
||||
cluster = clusters.get(id);
|
||||
if (cluster != null) {
|
||||
cluster.invited.add(user);
|
||||
} else if (Settings.DEBUG) {
|
||||
} else {
|
||||
logger.warn("Cluster #{}({}) in cluster_helpers does not exist."
|
||||
+ " Please create the cluster or remove this entry", id, cluster);
|
||||
}
|
||||
@ -2973,7 +2958,7 @@ public class SQLManager implements AbstractDB {
|
||||
merged[3 - i] = (m & 1 << i) != 0;
|
||||
}
|
||||
cluster.settings.setMerged(merged);
|
||||
} else if (Settings.DEBUG) {
|
||||
} else {
|
||||
logger.warn("Cluster #{}({}) in cluster_helpers does not exist."
|
||||
+ " Please create the cluster or remove this entry", id, cluster);
|
||||
}
|
||||
@ -3446,7 +3431,7 @@ public class SQLManager implements AbstractDB {
|
||||
|
||||
}
|
||||
|
||||
public abstract class UniqueStatement {
|
||||
public abstract static class UniqueStatement {
|
||||
|
||||
public final String method;
|
||||
|
||||
@ -3468,7 +3453,7 @@ public class SQLManager implements AbstractDB {
|
||||
|
||||
}
|
||||
|
||||
private class UUIDPair {
|
||||
private static class UUIDPair {
|
||||
|
||||
public final int id;
|
||||
public final UUID uuid;
|
||||
|
@ -42,7 +42,7 @@ public enum Result {
|
||||
ACCEPT(1),
|
||||
FORCE(2);
|
||||
|
||||
private static Map<Integer, Result> map = new HashMap<>();
|
||||
private static final Map<Integer, Result> map = new HashMap<>();
|
||||
|
||||
static {
|
||||
for (Result eventResult : Result.values()) {
|
||||
@ -50,7 +50,7 @@ public enum Result {
|
||||
}
|
||||
}
|
||||
|
||||
private int value;
|
||||
private final int value;
|
||||
|
||||
Result(int value) {
|
||||
this.value = value;
|
||||
|
@ -76,27 +76,16 @@ public class ClassicPlotManager extends SquarePlotManager {
|
||||
@Nullable QueueCoordinator queue
|
||||
) {
|
||||
final Optional<ClassicPlotManagerComponent> componentOptional = ClassicPlotManagerComponent.fromString(component);
|
||||
if (componentOptional.isPresent()) {
|
||||
switch (componentOptional.get()) {
|
||||
case FLOOR:
|
||||
return setFloor(plotId, blocks, actor, queue);
|
||||
case WALL:
|
||||
return setWallFilling(plotId, blocks, actor, queue);
|
||||
case AIR:
|
||||
return setAir(plotId, blocks, actor, queue);
|
||||
case MAIN:
|
||||
return setMain(plotId, blocks, actor, queue);
|
||||
case MIDDLE:
|
||||
return setMiddle(plotId, blocks, queue);
|
||||
case OUTLINE:
|
||||
return setOutline(plotId, blocks, actor, queue);
|
||||
case BORDER:
|
||||
return setWall(plotId, blocks, actor, queue);
|
||||
case ALL:
|
||||
return setAll(plotId, blocks, actor, queue);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return componentOptional.map(classicPlotManagerComponent -> switch (classicPlotManagerComponent) {
|
||||
case FLOOR -> setFloor(plotId, blocks, actor, queue);
|
||||
case WALL -> setWallFilling(plotId, blocks, actor, queue);
|
||||
case AIR -> setAir(plotId, blocks, actor, queue);
|
||||
case MAIN -> setMain(plotId, blocks, actor, queue);
|
||||
case MIDDLE -> setMiddle(plotId, blocks, queue);
|
||||
case OUTLINE -> setOutline(plotId, blocks, actor, queue);
|
||||
case BORDER -> setWall(plotId, blocks, actor, queue);
|
||||
case ALL -> setAll(plotId, blocks, actor, queue);
|
||||
}).orElse(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -144,11 +144,10 @@ public class HybridUtils {
|
||||
|
||||
final PlotArea area = this.plotAreaManager.getPlotArea(world, null);
|
||||
|
||||
if (!(area instanceof HybridPlotWorld)) {
|
||||
if (!(area instanceof HybridPlotWorld hpw)) {
|
||||
return;
|
||||
}
|
||||
|
||||
HybridPlotWorld hpw = (HybridPlotWorld) area;
|
||||
ChunkQueueCoordinator chunk = new ChunkQueueCoordinator(bot, top, false);
|
||||
hpw.getGenerator().generateChunk(chunk, hpw);
|
||||
|
||||
@ -352,7 +351,7 @@ public class HybridUtils {
|
||||
}
|
||||
CuboidRegion region = zones.poll();
|
||||
final Runnable task = this;
|
||||
analyzeRegion(origin.getWorldName(), region, new RunnableVal<PlotAnalysis>() {
|
||||
analyzeRegion(origin.getWorldName(), region, new RunnableVal<>() {
|
||||
@Override
|
||||
public void run(PlotAnalysis value) {
|
||||
analysis.add(value);
|
||||
@ -431,13 +430,11 @@ public class HybridUtils {
|
||||
BlockVector2 chunk = iter.next();
|
||||
iter.remove();
|
||||
boolean regenedRoad = regenerateRoad(area, chunk, extend);
|
||||
if (!regenedRoad && Settings.DEBUG) {
|
||||
if (!regenedRoad) {
|
||||
logger.info("Failed to regenerate roads");
|
||||
}
|
||||
}
|
||||
if (Settings.DEBUG) {
|
||||
logger.info("Cancelled road task");
|
||||
}
|
||||
return;
|
||||
}
|
||||
count.incrementAndGet();
|
||||
@ -459,10 +456,8 @@ public class HybridUtils {
|
||||
Iterator<BlockVector2> iterator = HybridUtils.regions.iterator();
|
||||
BlockVector2 loc = iterator.next();
|
||||
iterator.remove();
|
||||
if (Settings.DEBUG) {
|
||||
logger.info("Updating .mcr: {}, {} (approx 1024 chunks)", loc.getX(), loc.getZ());
|
||||
logger.info("- Remaining: {}", HybridUtils.regions.size());
|
||||
}
|
||||
chunks.addAll(getChunks(loc));
|
||||
System.gc();
|
||||
}
|
||||
@ -475,7 +470,7 @@ public class HybridUtils {
|
||||
final BlockVector2 chunk = iterator.next();
|
||||
iterator.remove();
|
||||
boolean regenedRoads = regenerateRoad(area, chunk, extend);
|
||||
if (!regenedRoads && Settings.DEBUG) {
|
||||
if (!regenedRoads) {
|
||||
logger.info("Failed to regenerate road");
|
||||
}
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ public class ProcessedWEExtent extends AbstractDelegateExtent {
|
||||
boolean Eblocked = false;
|
||||
private int count;
|
||||
private Extent parent;
|
||||
private Map<Long, Integer[]> tileEntityCount = new HashMap<>();
|
||||
private final Map<Long, Integer[]> tileEntityCount = new HashMap<>();
|
||||
|
||||
public ProcessedWEExtent(
|
||||
String world,
|
||||
|
@ -98,7 +98,7 @@ public class WESubscriber {
|
||||
if (Permissions.hasPermission(plotPlayer, "plots.worldedit.bypass")) {
|
||||
plotPlayer.sendMessage(
|
||||
TranslatableCaption.of("worldedit.worldedit_bypass"),
|
||||
Template.of("command", "/plot wea")
|
||||
Template.of("command", "/plot toggle worldedit")
|
||||
);
|
||||
}
|
||||
if (this.plotAreaManager.hasPlotArea(world)) {
|
||||
|
@ -44,8 +44,8 @@ public enum Direction {
|
||||
;
|
||||
|
||||
|
||||
private int index;
|
||||
private String name;
|
||||
private final int index;
|
||||
private final String name;
|
||||
|
||||
Direction(int index, String name) {
|
||||
|
||||
|
@ -58,7 +58,6 @@ import java.util.UUID;
|
||||
|
||||
public class ConsolePlayer extends PlotPlayer<Actor> {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger("P2/" + ConsolePlayer.class.getSimpleName());
|
||||
private static final MiniMessage MINI_MESSAGE = MiniMessage.builder().build();
|
||||
private static ConsolePlayer instance;
|
||||
|
||||
|
@ -587,11 +587,9 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
||||
if (Settings.Enabled_Components.BAN_DELETER && isBanned()) {
|
||||
for (Plot owned : getPlots()) {
|
||||
owned.getPlotModificationManager().deletePlot(null, null);
|
||||
if (Settings.DEBUG) {
|
||||
logger.info("Plot {} was deleted + cleared due to {} getting banned", owned.getId(), getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ExpireManager.IMP != null) {
|
||||
ExpireManager.IMP.storeDate(getUUID(), System.currentTimeMillis());
|
||||
}
|
||||
@ -636,7 +634,7 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
||||
|
||||
public void populatePersistentMetaMap() {
|
||||
if (Settings.Enabled_Components.PERSISTENT_META) {
|
||||
DBFunc.getPersistentMeta(getUUID(), new RunnableVal<Map<String, byte[]>>() {
|
||||
DBFunc.getPersistentMeta(getUUID(), new RunnableVal<>() {
|
||||
@Override
|
||||
public void run(Map<String, byte[]> value) {
|
||||
try {
|
||||
@ -928,10 +926,9 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
||||
|
||||
@Override
|
||||
public boolean equals(final Object obj) {
|
||||
if (!(obj instanceof PlotPlayer)) {
|
||||
if (!(obj instanceof final PlotPlayer<?> other)) {
|
||||
return false;
|
||||
}
|
||||
final PlotPlayer<?> other = (PlotPlayer<?>) obj;
|
||||
return this.getUUID().equals(other.getUUID());
|
||||
}
|
||||
|
||||
|
@ -50,10 +50,10 @@ import java.util.regex.Matcher;
|
||||
@SuppressWarnings({"unused", "WeakerAccess"})
|
||||
public final class BlockBucket implements ConfigurationSerializable {
|
||||
|
||||
private static java.util.regex.Pattern regex = java.util.regex.Pattern.compile(
|
||||
private static final java.util.regex.Pattern regex = java.util.regex.Pattern.compile(
|
||||
"((?<namespace>[A-Za-z_]+):)?(?<block>([A-Za-z_]+(\\[?[\\S\\s]+\\])?))(:(?<chance>[0-9]{1,3}))?");
|
||||
private boolean compiled;
|
||||
private StringBuilder input;
|
||||
private final StringBuilder input;
|
||||
private BlockState single;
|
||||
private Pattern pattern;
|
||||
|
||||
@ -198,10 +198,9 @@ public final class BlockBucket implements ConfigurationSerializable {
|
||||
if (o == this) {
|
||||
return true;
|
||||
}
|
||||
if (!(o instanceof BlockBucket)) {
|
||||
if (!(o instanceof final BlockBucket other)) {
|
||||
return false;
|
||||
}
|
||||
final BlockBucket other = (BlockBucket) o;
|
||||
final Object this$input = this.input;
|
||||
final Object other$input = other.input;
|
||||
return Objects.equals(this$input, other$input);
|
||||
@ -247,10 +246,9 @@ public final class BlockBucket implements ConfigurationSerializable {
|
||||
if (o == this) {
|
||||
return true;
|
||||
}
|
||||
if (!(o instanceof Range)) {
|
||||
if (!(o instanceof final Range other)) {
|
||||
return false;
|
||||
}
|
||||
final Range other = (Range) o;
|
||||
if (this.getMin() != other.getMin()) {
|
||||
return false;
|
||||
}
|
||||
|
@ -1699,7 +1699,7 @@ public class Plot {
|
||||
e.printStackTrace();
|
||||
return true;
|
||||
}
|
||||
schematicHandler.paste(sch, this, 0, 1, 0, Settings.Schematics.PASTE_ON_TOP, player, new RunnableVal<Boolean>() {
|
||||
schematicHandler.paste(sch, this, 0, 1, 0, Settings.Schematics.PASTE_ON_TOP, player, new RunnableVal<>() {
|
||||
@Override
|
||||
public void run(Boolean value) {
|
||||
if (value) {
|
||||
|
@ -355,26 +355,10 @@ public abstract class PlotArea {
|
||||
this.minBuildHeight = config.getInt("world.min_height");
|
||||
|
||||
switch (config.getString("world.gamemode").toLowerCase()) {
|
||||
case "creative":
|
||||
case "c":
|
||||
case "1":
|
||||
this.gameMode = GameModes.CREATIVE;
|
||||
break;
|
||||
case "adventure":
|
||||
case "a":
|
||||
case "2":
|
||||
this.gameMode = GameModes.ADVENTURE;
|
||||
break;
|
||||
case "spectator":
|
||||
case "3":
|
||||
this.gameMode = GameModes.SPECTATOR;
|
||||
break;
|
||||
case "survival":
|
||||
case "s":
|
||||
case "0":
|
||||
default:
|
||||
this.gameMode = GameModes.SURVIVAL;
|
||||
break;
|
||||
case "creative", "c", "1" -> this.gameMode = GameModes.CREATIVE;
|
||||
case "adventure", "a", "2" -> this.gameMode = GameModes.ADVENTURE;
|
||||
case "spectator", "3" -> this.gameMode = GameModes.SPECTATOR;
|
||||
default -> this.gameMode = GameModes.SURVIVAL;
|
||||
}
|
||||
|
||||
String homeNonMembers = config.getString("home.nonmembers");
|
||||
@ -1114,7 +1098,7 @@ public abstract class PlotArea {
|
||||
|
||||
public void addCluster(final @Nullable PlotCluster plotCluster) {
|
||||
if (this.clusters == null) {
|
||||
this.clusters = new QuadMap<PlotCluster>(Integer.MAX_VALUE, 0, 0, 62) {
|
||||
this.clusters = new QuadMap<>(Integer.MAX_VALUE, 0, 0, 62) {
|
||||
@Override
|
||||
public CuboidRegion getRegion(PlotCluster value) {
|
||||
BlockVector2 pos1 = BlockVector2.at(value.getP1().getX(), value.getP1().getY());
|
||||
|
@ -181,17 +181,13 @@ public final class PlotId {
|
||||
* @return Relative plot ID
|
||||
*/
|
||||
public @NonNull PlotId getRelative(final @NonNull Direction direction) {
|
||||
switch (direction) {
|
||||
case NORTH:
|
||||
return PlotId.of(this.getX(), this.getY() - 1);
|
||||
case EAST:
|
||||
return PlotId.of(this.getX() + 1, this.getY());
|
||||
case SOUTH:
|
||||
return PlotId.of(this.getX(), this.getY() + 1);
|
||||
case WEST:
|
||||
return PlotId.of(this.getX() - 1, this.getY());
|
||||
}
|
||||
return this;
|
||||
return switch (direction) {
|
||||
case NORTH -> PlotId.of(this.getX(), this.getY() - 1);
|
||||
case EAST -> PlotId.of(this.getX() + 1, this.getY());
|
||||
case SOUTH -> PlotId.of(this.getX(), this.getY() + 1);
|
||||
case WEST -> PlotId.of(this.getX() - 1, this.getY());
|
||||
default -> this;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -35,8 +35,6 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
public class PlotInventory {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger("P2/" + PlotInventory.class.getSimpleName());
|
||||
|
||||
private final PlotPlayer<?> player;
|
||||
private final int lines;
|
||||
private final PlotItemStack[] items;
|
||||
|
@ -106,10 +106,9 @@ public abstract class PlotWorld {
|
||||
if (o == this) {
|
||||
return true;
|
||||
}
|
||||
if (!(o instanceof PlotWorld)) {
|
||||
if (!(o instanceof final PlotWorld other)) {
|
||||
return false;
|
||||
}
|
||||
final PlotWorld other = (PlotWorld) o;
|
||||
if (!other.canEqual(this)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -58,11 +58,11 @@ public abstract class CommentInbox {
|
||||
*/
|
||||
public boolean canWrite(Plot plot, PlotPlayer<?> player) {
|
||||
if (plot == null) {
|
||||
return Permissions.hasPermission(player, "plots.inbox.write." + toString(), true);
|
||||
return Permissions.hasPermission(player, "plots.inbox.write." + this, true);
|
||||
}
|
||||
return Permissions.hasPermission(player, "plots.inbox.write." + toString(), true) && (
|
||||
return Permissions.hasPermission(player, "plots.inbox.write." + this, true) && (
|
||||
plot.isOwner(player.getUUID()) || Permissions
|
||||
.hasPermission(player, "plots.inbox.write." + toString() + ".other", true));
|
||||
.hasPermission(player, "plots.inbox.write." + this + ".other", true));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -72,9 +72,9 @@ public abstract class CommentInbox {
|
||||
*/
|
||||
@SuppressWarnings({"BooleanMethodIsAlwaysInverted"})
|
||||
public boolean canModify(Plot plot, PlotPlayer<?> player) {
|
||||
if (Permissions.hasPermission(player, "plots.inbox.modify." + toString(), true)) {
|
||||
if (Permissions.hasPermission(player, "plots.inbox.modify." + this, true)) {
|
||||
return plot.isOwner(player.getUUID()) || Permissions
|
||||
.hasPermission(player, "plots.inbox.modify." + toString() + ".other", true);
|
||||
.hasPermission(player, "plots.inbox.modify." + this + ".other", true);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -70,7 +70,6 @@ import java.util.concurrent.ConcurrentLinkedDeque;
|
||||
public class ExpireManager {
|
||||
|
||||
public static ExpireManager IMP;
|
||||
private final Logger logger = LoggerFactory.getLogger("P2/" + ExpireManager.class);
|
||||
private final ConcurrentHashMap<UUID, Long> dates_cache;
|
||||
private final ConcurrentHashMap<UUID, Long> account_age_cache;
|
||||
private final EventDispatcher eventDispatcher;
|
||||
@ -195,7 +194,7 @@ public class ExpireManager {
|
||||
}
|
||||
|
||||
public boolean runAutomatedTask() {
|
||||
return runTask(new RunnableVal3<Plot, Runnable, Boolean>() {
|
||||
return runTask(new RunnableVal3<>() {
|
||||
@Override
|
||||
public void run(Plot plot, Runnable runnable, Boolean confirm) {
|
||||
if (confirm) {
|
||||
@ -346,10 +345,10 @@ public class ExpireManager {
|
||||
}
|
||||
}
|
||||
final RunnableVal<PlotAnalysis> handleAnalysis =
|
||||
new RunnableVal<PlotAnalysis>() {
|
||||
new RunnableVal<>() {
|
||||
@Override
|
||||
public void run(final PlotAnalysis changed) {
|
||||
passesComplexity(changed, expired, new RunnableVal<Boolean>() {
|
||||
passesComplexity(changed, expired, new RunnableVal<>() {
|
||||
@Override
|
||||
public void run(Boolean confirmation) {
|
||||
expiredTask.run(
|
||||
@ -379,7 +378,7 @@ public class ExpireManager {
|
||||
|
||||
PlotAnalysis analysis = newPlot.getComplexity(null);
|
||||
if (analysis != null) {
|
||||
passesComplexity(analysis, expired, new RunnableVal<Boolean>() {
|
||||
passesComplexity(analysis, expired, new RunnableVal<>() {
|
||||
@Override
|
||||
public void run(Boolean value) {
|
||||
doAnalysis.run();
|
||||
|
@ -97,16 +97,11 @@ public class PlotAnalysis {
|
||||
*/
|
||||
public static void calcOptimalModifiers(final Runnable whenDone, final double threshold) {
|
||||
if (running) {
|
||||
if (Settings.DEBUG) {
|
||||
logger.info("Calibration task already in progress!");
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (threshold <= 0 || threshold >= 1) {
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(
|
||||
"Invalid threshold provided! (Cannot be 0 or 100 as then there's no point in calibrating)");
|
||||
}
|
||||
logger.info("Invalid threshold provided! (Cannot be 0 or 100 as then there's no point in calibrating)");
|
||||
return;
|
||||
}
|
||||
running = true;
|
||||
@ -115,9 +110,7 @@ public class PlotAnalysis {
|
||||
@Override
|
||||
public void run() {
|
||||
Iterator<Plot> iterator = plots.iterator();
|
||||
if (Settings.DEBUG) {
|
||||
logger.info("- Reducing {} plots to those with sufficient data", plots.size());
|
||||
}
|
||||
while (iterator.hasNext()) {
|
||||
Plot plot = iterator.next();
|
||||
if (plot.getSettings().getRatings() == null || plot.getSettings().getRatings()
|
||||
@ -129,20 +122,14 @@ public class PlotAnalysis {
|
||||
}
|
||||
|
||||
if (plots.size() < 3) {
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(
|
||||
"Calibration cancelled due to insufficient comparison data, please try again later");
|
||||
}
|
||||
logger.info("Calibration cancelled due to insufficient comparison data, please try again later");
|
||||
running = false;
|
||||
for (Plot plot : plots) {
|
||||
plot.removeRunning();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info("- Analyzing plot contents (this may take a while)");
|
||||
}
|
||||
|
||||
int[] changes = new int[plots.size()];
|
||||
int[] faces = new int[plots.size()];
|
||||
@ -160,19 +147,15 @@ public class PlotAnalysis {
|
||||
|
||||
final AtomicInteger mi = new AtomicInteger(0);
|
||||
|
||||
Thread ratingAnalysis = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Thread ratingAnalysis = new Thread(() -> {
|
||||
for (; mi.intValue() < plots.size(); mi.incrementAndGet()) {
|
||||
int i = mi.intValue();
|
||||
Plot plot = plots.get(i);
|
||||
ratings[i] = (int) (
|
||||
(plot.getAverageRating() + plot.getSettings().getRatings().size())
|
||||
* 100);
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" | {} (rating) {}", plot, ratings[i]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
ratingAnalysis.start();
|
||||
@ -183,14 +166,13 @@ public class PlotAnalysis {
|
||||
if (queuePlot == null) {
|
||||
break;
|
||||
}
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" | {}", queuePlot);
|
||||
}
|
||||
|
||||
final Object lock = new Object();
|
||||
TaskManager.runTask(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
analyzePlot(queuePlot, new RunnableVal<PlotAnalysis>() {
|
||||
analyzePlot(queuePlot, new RunnableVal<>() {
|
||||
@Override
|
||||
public void run(PlotAnalysis value) {
|
||||
try {
|
||||
@ -217,9 +199,7 @@ public class PlotAnalysis {
|
||||
}
|
||||
}
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" - Waiting on plot rating thread: {}%", mi.intValue() * 100 / plots.size());
|
||||
}
|
||||
|
||||
try {
|
||||
ratingAnalysis.join();
|
||||
@ -227,15 +207,12 @@ public class PlotAnalysis {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(
|
||||
" - Processing and grouping single plot analysis for bulk processing");
|
||||
}
|
||||
logger.info(" - Processing and grouping single plot analysis for bulk processing");
|
||||
|
||||
for (int i = 0; i < plots.size(); i++) {
|
||||
Plot plot = plots.get(i);
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" | {}", plot);
|
||||
}
|
||||
|
||||
PlotAnalysis analysis = plot.getComplexity(null);
|
||||
|
||||
changes[i] = analysis.changes;
|
||||
@ -251,22 +228,16 @@ public class PlotAnalysis {
|
||||
variety_sd[i] = analysis.variety_sd;
|
||||
}
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" - Calculating rankings");
|
||||
}
|
||||
|
||||
int[] rankRatings = rank(ratings);
|
||||
int n = rankRatings.length;
|
||||
|
||||
int optimalIndex = (int) Math.round((1 - threshold) * (n - 1));
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" - Calculating rank correlation: ");
|
||||
logger.info(
|
||||
" - The analyzed plots which were processed and put into bulk data will be compared and correlated to the plot ranking");
|
||||
logger.info(
|
||||
" - The calculated correlation constant will then be used to calibrate the threshold for auto plot clearing");
|
||||
}
|
||||
logger.info(" - The analyzed plots which were processed and put into bulk data will be compared and correlated to the plot ranking");
|
||||
logger.info(" - The calculated correlation constant will then be used to calibrate the threshold for auto plot clearing");
|
||||
|
||||
Settings.Auto_Clear settings = new Settings.Auto_Clear();
|
||||
|
||||
@ -279,9 +250,7 @@ public class PlotAnalysis {
|
||||
0 :
|
||||
(int) (factorChanges * 1000 / MathMan.getMean(changes));
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" - | changes {}", factorChanges);
|
||||
}
|
||||
|
||||
int[] rankFaces = rank(faces);
|
||||
int[] sdFaces = getSD(rankFaces, rankRatings);
|
||||
@ -291,9 +260,7 @@ public class PlotAnalysis {
|
||||
settings.CALIBRATION.FACES =
|
||||
factorFaces == 1 ? 0 : (int) (factorFaces * 1000 / MathMan.getMean(faces));
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" - | faces {}", factorFaces);
|
||||
}
|
||||
|
||||
int[] rankData = rank(data);
|
||||
int[] sdData = getSD(rankData, rankRatings);
|
||||
@ -303,9 +270,7 @@ public class PlotAnalysis {
|
||||
settings.CALIBRATION.DATA =
|
||||
factor_data == 1 ? 0 : (int) (factor_data * 1000 / MathMan.getMean(data));
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" - | data {}", factor_data);
|
||||
}
|
||||
|
||||
int[] rank_air = rank(air);
|
||||
int[] sd_air = getSD(rank_air, rankRatings);
|
||||
@ -315,9 +280,8 @@ public class PlotAnalysis {
|
||||
settings.CALIBRATION.AIR =
|
||||
factor_air == 1 ? 0 : (int) (factor_air * 1000 / MathMan.getMean(air));
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info("- | air {}", factor_air);
|
||||
}
|
||||
|
||||
|
||||
int[] rank_variety = rank(variety);
|
||||
int[] sd_variety = getSD(rank_variety, rankRatings);
|
||||
@ -328,9 +292,7 @@ public class PlotAnalysis {
|
||||
0 :
|
||||
(int) (factor_variety * 1000 / MathMan.getMean(variety));
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info("- | variety {}", factor_variety);
|
||||
}
|
||||
|
||||
int[] rank_changes_sd = rank(changes_sd);
|
||||
int[] sd_changes_sd = getSD(rank_changes_sd, rankRatings);
|
||||
@ -341,9 +303,7 @@ public class PlotAnalysis {
|
||||
0 :
|
||||
(int) (factor_changes_sd * 1000 / MathMan.getMean(changes_sd));
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" - | changed_sd {}", factor_changes_sd);
|
||||
}
|
||||
|
||||
int[] rank_faces_sd = rank(faces_sd);
|
||||
int[] sd_faces_sd = getSD(rank_faces_sd, rankRatings);
|
||||
@ -354,9 +314,7 @@ public class PlotAnalysis {
|
||||
0 :
|
||||
(int) (factor_faces_sd * 1000 / MathMan.getMean(faces_sd));
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" - | faced_sd {}", factor_faces_sd);
|
||||
}
|
||||
|
||||
int[] rank_data_sd = rank(data_sd);
|
||||
int[] sd_data_sd = getSD(rank_data_sd, rankRatings);
|
||||
@ -367,9 +325,7 @@ public class PlotAnalysis {
|
||||
0 :
|
||||
(int) (factor_data_sd * 1000 / MathMan.getMean(data_sd));
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" - | data_sd {}", factor_data_sd);
|
||||
}
|
||||
|
||||
int[] rank_air_sd = rank(air_sd);
|
||||
int[] sd_air_sd = getSD(rank_air_sd, rankRatings);
|
||||
@ -379,9 +335,7 @@ public class PlotAnalysis {
|
||||
settings.CALIBRATION.AIR_SD =
|
||||
factor_air_sd == 1 ? 0 : (int) (factor_air_sd * 1000 / MathMan.getMean(air_sd));
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" - | air_sd {}", factor_air_sd);
|
||||
}
|
||||
|
||||
int[] rank_variety_sd = rank(variety_sd);
|
||||
int[] sd_variety_sd = getSD(rank_variety_sd, rankRatings);
|
||||
@ -392,15 +346,11 @@ public class PlotAnalysis {
|
||||
0 :
|
||||
(int) (factor_variety_sd * 1000 / MathMan.getMean(variety_sd));
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" - | variety_sd {}", factor_variety_sd);
|
||||
}
|
||||
|
||||
int[] complexity = new int[n];
|
||||
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" Calculating threshold");
|
||||
}
|
||||
logger.info("Calculating threshold");
|
||||
|
||||
int max = 0;
|
||||
int min = 0;
|
||||
@ -430,11 +380,9 @@ public class PlotAnalysis {
|
||||
logln("Correlation: ");
|
||||
logln(getCC(n, sum(square(getSD(rankComplexity, rankRatings)))));
|
||||
if (optimalComplexity == Integer.MAX_VALUE) {
|
||||
if (Settings.DEBUG) {
|
||||
logger.info("Insufficient data to determine correlation! {} | {}",
|
||||
optimalIndex, n
|
||||
);
|
||||
}
|
||||
running = false;
|
||||
for (Plot plot : plots) {
|
||||
plot.removeRunning();
|
||||
@ -444,7 +392,6 @@ public class PlotAnalysis {
|
||||
} else { // Use the fast radix sort algorithm
|
||||
int[] sorted = complexity.clone();
|
||||
sort(sorted);
|
||||
optimalComplexity = sorted[optimalIndex];
|
||||
logln("Complexity: ");
|
||||
logln(complexity);
|
||||
logln("Ratings: ");
|
||||
@ -452,43 +399,37 @@ public class PlotAnalysis {
|
||||
}
|
||||
|
||||
// Save calibration
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" Saving calibration");
|
||||
}
|
||||
Settings.AUTO_CLEAR.put("auto-calibrated", settings);
|
||||
Settings.save(PlotSquared.get().getWorldsFile());
|
||||
running = false;
|
||||
for (Plot plot : plots) {
|
||||
plot.removeRunning();
|
||||
}
|
||||
if (Settings.DEBUG) {
|
||||
logger.info(" Done!");
|
||||
}
|
||||
whenDone.run();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void logln(Object obj) {
|
||||
if (Settings.DEBUG) {
|
||||
logger.info("" + log(obj));
|
||||
}
|
||||
}
|
||||
|
||||
public static String log(Object obj) {
|
||||
String result = "";
|
||||
StringBuilder result = new StringBuilder();
|
||||
if (obj.getClass().isArray()) {
|
||||
String prefix = "";
|
||||
|
||||
for (int i = 0; i < Array.getLength(obj); i++) {
|
||||
result += prefix + log(Array.get(obj, i));
|
||||
result.append(prefix).append(log(Array.get(obj, i)));
|
||||
prefix = ",";
|
||||
}
|
||||
return "( " + result + " )";
|
||||
} else if (obj instanceof List<?>) {
|
||||
String prefix = "";
|
||||
for (Object element : (List<?>) obj) {
|
||||
result += prefix + log(element);
|
||||
result.append(prefix).append(log(element));
|
||||
prefix = ",";
|
||||
}
|
||||
return "[ " + result + " ]";
|
||||
|
@ -340,10 +340,9 @@ public class FlagContainer {
|
||||
if (o == this) {
|
||||
return true;
|
||||
}
|
||||
if (!(o instanceof FlagContainer)) {
|
||||
if (!(o instanceof final FlagContainer other)) {
|
||||
return false;
|
||||
}
|
||||
final FlagContainer other = (FlagContainer) o;
|
||||
if (!other.canEqual(this)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -193,11 +193,10 @@ public abstract class PlotFlag<T, F extends PlotFlag<T, F>> {
|
||||
if (o == this) {
|
||||
return true;
|
||||
}
|
||||
if (!(o instanceof PlotFlag)) {
|
||||
if (!(o instanceof final PlotFlag<?, ?> other)) {
|
||||
return false;
|
||||
}
|
||||
final PlotFlag<?, ?> other = (PlotFlag<?, ?>) o;
|
||||
if (!other.canEqual((Object) this)) {
|
||||
if (!other.canEqual(this)) {
|
||||
return false;
|
||||
}
|
||||
final Object this$value = this.getValue();
|
||||
|
@ -48,18 +48,11 @@ public class FlyFlag extends PlotFlag<FlyFlag.FlyStatus, FlyFlag> {
|
||||
|
||||
@Override
|
||||
public FlyFlag parse(final @NonNull String input) {
|
||||
switch (input.toLowerCase()) {
|
||||
case "true":
|
||||
case "enabled":
|
||||
case "allow":
|
||||
return FLIGHT_FLAG_ENABLED;
|
||||
case "false":
|
||||
case "disabled":
|
||||
case "disallow":
|
||||
return FLIGHT_FLAG_DISABLED;
|
||||
default:
|
||||
return FLIGHT_FLAG_DEFAULT;
|
||||
}
|
||||
return switch (input.toLowerCase()) {
|
||||
case "true", "enabled", "allow" -> FLIGHT_FLAG_ENABLED;
|
||||
case "false", "disabled", "disallow" -> FLIGHT_FLAG_DISABLED;
|
||||
default -> FLIGHT_FLAG_DEFAULT;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -65,26 +65,13 @@ public class GamemodeFlag extends PlotFlag<GameMode, GamemodeFlag> {
|
||||
|
||||
@Override
|
||||
public GamemodeFlag parse(@NonNull String input) throws FlagParseException {
|
||||
switch (input) {
|
||||
case "creative":
|
||||
case "c":
|
||||
case "1":
|
||||
return flagOf(GameModes.CREATIVE);
|
||||
case "adventure":
|
||||
case "a":
|
||||
case "2":
|
||||
return flagOf(GameModes.ADVENTURE);
|
||||
case "spectator":
|
||||
case "sp":
|
||||
case "3":
|
||||
return flagOf(GameModes.SPECTATOR);
|
||||
case "survival":
|
||||
case "s":
|
||||
case "0":
|
||||
return flagOf(GameModes.SURVIVAL);
|
||||
default:
|
||||
return flagOf(DEFAULT);
|
||||
}
|
||||
return switch (input) {
|
||||
case "creative", "c", "1" -> flagOf(GameModes.CREATIVE);
|
||||
case "adventure", "a", "2" -> flagOf(GameModes.ADVENTURE);
|
||||
case "spectator", "sp", "3" -> flagOf(GameModes.SPECTATOR);
|
||||
case "survival", "s", "0" -> flagOf(GameModes.SURVIVAL);
|
||||
default -> flagOf(DEFAULT);
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -104,18 +91,13 @@ public class GamemodeFlag extends PlotFlag<GameMode, GamemodeFlag> {
|
||||
|
||||
@Override
|
||||
protected GamemodeFlag flagOf(@NonNull GameMode value) {
|
||||
switch (value.getId()) {
|
||||
case "creative":
|
||||
return GAMEMODE_FLAG_CREATIVE;
|
||||
case "adventure":
|
||||
return GAMEMODE_FLAG_ADVENTURE;
|
||||
case "spectator":
|
||||
return GAMEMODE_FLAG_SPECTATOR;
|
||||
case "survival":
|
||||
return GAMEMODE_FLAG_SURVIVAL;
|
||||
default:
|
||||
return GAMEMODE_FLAG_DEFAULT;
|
||||
}
|
||||
return switch (value.getId()) {
|
||||
case "creative" -> GAMEMODE_FLAG_CREATIVE;
|
||||
case "adventure" -> GAMEMODE_FLAG_ADVENTURE;
|
||||
case "spectator" -> GAMEMODE_FLAG_SPECTATOR;
|
||||
case "survival" -> GAMEMODE_FLAG_SURVIVAL;
|
||||
default -> GAMEMODE_FLAG_DEFAULT;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -60,26 +60,13 @@ public class GuestGamemodeFlag extends PlotFlag<GameMode, GuestGamemodeFlag> {
|
||||
|
||||
@Override
|
||||
public GuestGamemodeFlag parse(@NonNull String input) throws FlagParseException {
|
||||
switch (input) {
|
||||
case "creative":
|
||||
case "c":
|
||||
case "1":
|
||||
return flagOf(GameModes.CREATIVE);
|
||||
case "adventure":
|
||||
case "a":
|
||||
case "2":
|
||||
return flagOf(GameModes.ADVENTURE);
|
||||
case "spectator":
|
||||
case "sp":
|
||||
case "3":
|
||||
return flagOf(GameModes.SPECTATOR);
|
||||
case "survival":
|
||||
case "s":
|
||||
case "0":
|
||||
return flagOf(GameModes.SURVIVAL);
|
||||
default:
|
||||
return flagOf(GamemodeFlag.DEFAULT);
|
||||
}
|
||||
return switch (input) {
|
||||
case "creative", "c", "1" -> flagOf(GameModes.CREATIVE);
|
||||
case "adventure", "a", "2" -> flagOf(GameModes.ADVENTURE);
|
||||
case "spectator", "sp", "3" -> flagOf(GameModes.SPECTATOR);
|
||||
case "survival", "s", "0" -> flagOf(GameModes.SURVIVAL);
|
||||
default -> flagOf(GamemodeFlag.DEFAULT);
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -99,18 +86,13 @@ public class GuestGamemodeFlag extends PlotFlag<GameMode, GuestGamemodeFlag> {
|
||||
|
||||
@Override
|
||||
protected GuestGamemodeFlag flagOf(@NonNull GameMode value) {
|
||||
switch (value.getId()) {
|
||||
case "creative":
|
||||
return GUEST_GAMEMODE_FLAG_CREATIVE;
|
||||
case "adventure":
|
||||
return GUEST_GAMEMODE_FLAG_ADVENTURE;
|
||||
case "spectator":
|
||||
return GUEST_GAMEMODE_FLAG_SPECTATOR;
|
||||
case "survival":
|
||||
return GUEST_GAMEMODE_FLAG_SURVIVAL;
|
||||
default:
|
||||
return GUEST_GAMEMODE_FLAG_DEFAULT;
|
||||
}
|
||||
return switch (value.getId()) {
|
||||
case "creative" -> GUEST_GAMEMODE_FLAG_CREATIVE;
|
||||
case "adventure" -> GUEST_GAMEMODE_FLAG_ADVENTURE;
|
||||
case "spectator" -> GUEST_GAMEMODE_FLAG_SPECTATOR;
|
||||
case "survival" -> GUEST_GAMEMODE_FLAG_SURVIVAL;
|
||||
default -> GUEST_GAMEMODE_FLAG_DEFAULT;
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -55,14 +55,11 @@ public class KeepFlag extends PlotFlag<Object, KeepFlag> {
|
||||
return flagOf(value);
|
||||
}
|
||||
}
|
||||
switch (input.toLowerCase()) {
|
||||
case "true":
|
||||
return flagOf(true);
|
||||
case "false":
|
||||
return flagOf(false);
|
||||
default:
|
||||
return flagOf(TimeUtil.timeToSec(input) * 1000 + System.currentTimeMillis());
|
||||
}
|
||||
return switch (input.toLowerCase()) {
|
||||
case "true" -> flagOf(true);
|
||||
case "false" -> flagOf(false);
|
||||
default -> flagOf(TimeUtil.timeToSec(input) * 1000 + System.currentTimeMillis());
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -49,18 +49,11 @@ public class LiquidFlowFlag extends PlotFlag<LiquidFlowFlag.FlowStatus, LiquidFl
|
||||
|
||||
@Override
|
||||
public LiquidFlowFlag parse(final @NonNull String input) {
|
||||
switch (input.toLowerCase()) {
|
||||
case "true":
|
||||
case "enabled":
|
||||
case "allow":
|
||||
return LIQUID_FLOW_ENABLED;
|
||||
case "false":
|
||||
case "disabled":
|
||||
case "disallow":
|
||||
return LIQUID_FLOW_DISABLED;
|
||||
default:
|
||||
return LIQUID_FLOW_DEFAULT;
|
||||
}
|
||||
return switch (input.toLowerCase()) {
|
||||
case "true", "enabled", "allow" -> LIQUID_FLOW_ENABLED;
|
||||
case "false", "disabled", "disallow" -> LIQUID_FLOW_DISABLED;
|
||||
default -> LIQUID_FLOW_DEFAULT;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -83,14 +76,11 @@ public class LiquidFlowFlag extends PlotFlag<LiquidFlowFlag.FlowStatus, LiquidFl
|
||||
|
||||
@Override
|
||||
protected LiquidFlowFlag flagOf(final @NonNull FlowStatus value) {
|
||||
switch (value) {
|
||||
case ENABLED:
|
||||
return LIQUID_FLOW_ENABLED;
|
||||
case DISABLED:
|
||||
return LIQUID_FLOW_DISABLED;
|
||||
default:
|
||||
return LIQUID_FLOW_DEFAULT;
|
||||
}
|
||||
return switch (value) {
|
||||
case ENABLED -> LIQUID_FLOW_ENABLED;
|
||||
case DISABLED -> LIQUID_FLOW_DISABLED;
|
||||
default -> LIQUID_FLOW_DEFAULT;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -54,20 +54,11 @@ public class WeatherFlag extends PlotFlag<PlotWeather, WeatherFlag> {
|
||||
|
||||
@Override
|
||||
public WeatherFlag parse(@NonNull String input) {
|
||||
switch (input.toLowerCase()) {
|
||||
case "rain":
|
||||
case "storm":
|
||||
case "on":
|
||||
case "lightning":
|
||||
case "thunder":
|
||||
return flagOf(PlotWeather.RAIN);
|
||||
case "clear":
|
||||
case "off":
|
||||
case "sun":
|
||||
return flagOf(PlotWeather.CLEAR);
|
||||
default:
|
||||
return flagOf(PlotWeather.RESET);
|
||||
}
|
||||
return switch (input.toLowerCase()) {
|
||||
case "rain" -> flagOf(PlotWeather.RAIN);
|
||||
case "clear" -> flagOf(PlotWeather.CLEAR);
|
||||
default -> flagOf(PlotWeather.RESET);
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -82,25 +73,22 @@ public class WeatherFlag extends PlotFlag<PlotWeather, WeatherFlag> {
|
||||
|
||||
@Override
|
||||
public String getExample() {
|
||||
return "storm";
|
||||
return "rain";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected WeatherFlag flagOf(@NonNull PlotWeather value) {
|
||||
switch (value) {
|
||||
case RAIN:
|
||||
return PLOT_WEATHER_FLAG_RAIN;
|
||||
case CLEAR:
|
||||
return PLOT_WEATHER_FLAG_CLEAR;
|
||||
default:
|
||||
return PLOT_WEATHER_FLAG_OFF;
|
||||
}
|
||||
return switch (value) {
|
||||
case RAIN -> PLOT_WEATHER_FLAG_RAIN;
|
||||
case CLEAR -> PLOT_WEATHER_FLAG_CLEAR;
|
||||
default -> PLOT_WEATHER_FLAG_OFF;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<String> getTabCompletions() {
|
||||
return Arrays
|
||||
.asList("rain", "storm", "on", "lightning", "thunder", "clear", "off", "sun", "reset");
|
||||
.asList("clear", "rain");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ import java.util.function.Consumer;
|
||||
|
||||
public class SinglePlot extends Plot {
|
||||
|
||||
private Set<CuboidRegion> regions = Collections.singleton(
|
||||
private final Set<CuboidRegion> regions = Collections.singleton(
|
||||
new CuboidRegion(
|
||||
BlockVector3.at(Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE),
|
||||
BlockVector3.at(Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE)
|
||||
|
@ -278,9 +278,7 @@ public enum CommonSetupSteps implements SetupStep {
|
||||
}
|
||||
|
||||
private static boolean isValidWorldName(String s) {
|
||||
return s.chars().allMatch((i) -> {
|
||||
return i == 95 || i == 45 || i >= 97 && i <= 122 || i >= 65 && i <= 90 || i >= 48 && i <= 57 || i == 46;
|
||||
});
|
||||
return s.chars().allMatch((i) -> i == 95 || i == 45 || i >= 97 && i <= 122 || i >= 65 && i <= 90 || i >= 48 && i <= 57 || i == 46);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -135,7 +135,7 @@ public final class BlockUtil {
|
||||
* Deserialize a serialized {@link BlockState}
|
||||
*
|
||||
* @param map Serialized block state
|
||||
* @return Deserialized block state, or {@code null} if the map is
|
||||
* @return Deserialized block state, or {@code null} if the map is
|
||||
* not a properly serialized block state
|
||||
*/
|
||||
public static @Nullable BlockState deserialize(final @NonNull Map<String, Object> map) {
|
||||
|
@ -25,9 +25,6 @@
|
||||
*/
|
||||
package com.plotsquared.core.util;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* plot functions
|
||||
*
|
||||
@ -36,9 +33,6 @@ import org.slf4j.LoggerFactory;
|
||||
@Deprecated
|
||||
public class MainUtil {
|
||||
|
||||
private static final Logger logger =
|
||||
LoggerFactory.getLogger("P2/" + MainUtil.class.getSimpleName());
|
||||
|
||||
/**
|
||||
* Cache of mapping x,y,z coordinates to the chunk array<br>
|
||||
* - Used for efficient world generation<br>
|
||||
|
@ -355,7 +355,7 @@ public abstract class WorldUtil {
|
||||
*
|
||||
* @param block1 First block
|
||||
* @param block2 Second block
|
||||
* @return {@code true} if the blocks have the same type, {@code false} if not
|
||||
* @return {@code true} if the blocks have the same type, {@code false} if not
|
||||
*/
|
||||
public abstract boolean isBlockSame(@NonNull BlockState block1, @NonNull BlockState block2);
|
||||
|
||||
|
@ -1,55 +0,0 @@
|
||||
/*
|
||||
* _____ _ _ _____ _
|
||||
* | __ \| | | | / ____| | |
|
||||
* | |__) | | ___ | |_| (___ __ _ _ _ __ _ _ __ ___ __| |
|
||||
* | ___/| |/ _ \| __|\___ \ / _` | | | |/ _` | '__/ _ \/ _` |
|
||||
* | | | | (_) | |_ ____) | (_| | |_| | (_| | | | __/ (_| |
|
||||
* |_| |_|\___/ \__|_____/ \__, |\__,_|\__,_|_| \___|\__,_|
|
||||
* | |
|
||||
* |_|
|
||||
* PlotSquared plot management system for Minecraft
|
||||
* Copyright (C) 2021 IntellectualSites
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.plotsquared.core.util.net;
|
||||
|
||||
import com.plotsquared.core.configuration.Settings;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
|
||||
public class HttpUtil {
|
||||
|
||||
public static String readUrl(String urlString) {
|
||||
try (BufferedReader reader = new BufferedReader(
|
||||
new InputStreamReader(new URL(urlString).openStream()))) {
|
||||
StringBuilder buffer = new StringBuilder();
|
||||
int read;
|
||||
char[] chars = new char[1024];
|
||||
while ((read = reader.read(chars)) != -1) {
|
||||
buffer.append(chars, 0, read);
|
||||
}
|
||||
return buffer.toString();
|
||||
} catch (IOException e) {
|
||||
if (Settings.DEBUG) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@ -55,10 +55,9 @@ public class UUIDMapping {
|
||||
if (o == this) {
|
||||
return true;
|
||||
}
|
||||
if (!(o instanceof UUIDMapping)) {
|
||||
if (!(o instanceof final UUIDMapping other)) {
|
||||
return false;
|
||||
}
|
||||
final UUIDMapping other = (UUIDMapping) o;
|
||||
if (!other.canEqual(this)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -176,7 +176,7 @@ public class UUIDPipeline {
|
||||
} catch (TimeoutException ignored) {
|
||||
// This is completely valid, we just don't care anymore
|
||||
if (Settings.DEBUG) {
|
||||
logger.warn("(UUID) Request for {} timed out", username);
|
||||
logger.warn("(UUID) Request for {} timed out. Rate limit.", username);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@ -201,7 +201,7 @@ public class UUIDPipeline {
|
||||
} catch (TimeoutException ignored) {
|
||||
// This is completely valid, we just don't care anymore
|
||||
if (Settings.DEBUG) {
|
||||
logger.warn("(UUID) Request for {} timed out", uuid);
|
||||
logger.warn("(UUID) Request for {} timed out. Rate limit.", uuid);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
@ -392,7 +392,6 @@
|
||||
"members.not_added_trusted": "<prefix><red>You must be added or trusted to the plot to run that command.</red>",
|
||||
"owner.set_owner": "<prefix><dark_aqua>You successfully set the plot owner.</dark_aqua>",
|
||||
"owner.set_owner_cancelled": "<prefix><red>The set owner action was cancelled.</red>",
|
||||
"owner.set_owner_missing_player": "<prefix><red>You need to specify a new owner.</red>",
|
||||
"owner.now_owner": "<prefix><dark_aqua>You are now the plot owner of plot <plot>.</dark_aqua>",
|
||||
"signs.owner_sign_line_1": "<gold>ID: </gold><gray><id></gray>",
|
||||
"signs.owner_sign_line_2": "<gold>Owner:",
|
||||
|
Loading…
Reference in New Issue
Block a user