From 0ac9453f7b4839ccaa6606f88f34c097b5f6003c Mon Sep 17 00:00:00 2001 From: Flemmli97 Date: Sat, 8 Jan 2022 14:53:13 +0100 Subject: [PATCH] less strict check for fake players. also some reformatting --- .../flemmli97/flan/CrossPlatformStuff.java | 5 -- .../io/github/flemmli97/flan/claim/Claim.java | 11 ++-- .../flemmli97/flan/claim/ClaimStorage.java | 2 +- .../flemmli97/flan/claim/GlobalClaim.java | 9 +-- .../flemmli97/flan/commands/CommandClaim.java | 57 +++++++------------ .../flan/event/BlockInteractEvents.java | 6 +- .../flan/event/EntityInteractEvents.java | 25 +++----- .../flan/event/ItemInteractEvents.java | 7 +-- .../flemmli97/flan/event/WorldEvents.java | 3 +- .../flan/gui/ClaimMenuScreenHandler.java | 27 +++++---- .../flemmli97/flan/gui/ClaimTextHandler.java | 45 ++++++--------- .../flan/gui/ConfirmScreenHandler.java | 19 +++---- .../flan/gui/ServerOnlyScreenHandler.java | 40 +++---------- .../flan/gui/ServerScreenHelper.java | 32 ++++------- .../flan/gui/StringResultScreenHandler.java | 12 +--- .../flan/mixin/PlayerClaimMixin.java | 10 ---- .../flemmli97/flan/player/ClaimDisplay.java | 16 +++--- .../flan/player/PlayerClaimData.java | 11 ++-- .../flemmli97/flan/player/TeleportUtils.java | 16 ++---- .../flan/fabric/FabricRegistryWrapper.java | 8 +-- .../fabric/PermissionNodeHandlerImpl.java | 3 +- .../flan/forge/ForgeRegistryWrapper.java | 9 +-- .../forge/PermissionNodeHandlerImpl.java | 3 +- 23 files changed, 119 insertions(+), 257 deletions(-) diff --git a/common/src/main/java/io/github/flemmli97/flan/CrossPlatformStuff.java b/common/src/main/java/io/github/flemmli97/flan/CrossPlatformStuff.java index 1e055a7..1ebab77 100644 --- a/common/src/main/java/io/github/flemmli97/flan/CrossPlatformStuff.java +++ b/common/src/main/java/io/github/flemmli97/flan/CrossPlatformStuff.java @@ -4,7 +4,6 @@ import dev.architectury.injectables.annotations.ExpectPlatform; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.effect.MobEffect; import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; @@ -47,8 +46,4 @@ public class CrossPlatformStuff { public static boolean blockDataContains(CompoundTag nbt, String tag) { throw new AssertionError(); } - - public static boolean isRealPlayer(Player player) { - throw new AssertionError(); - } } diff --git a/common/src/main/java/io/github/flemmli97/flan/claim/Claim.java b/common/src/main/java/io/github/flemmli97/flan/claim/Claim.java index 5bf9d45..b1211d7 100644 --- a/common/src/main/java/io/github/flemmli97/flan/claim/Claim.java +++ b/common/src/main/java/io/github/flemmli97/flan/claim/Claim.java @@ -5,6 +5,7 @@ import com.google.common.collect.Lists; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import com.mojang.authlib.GameProfile; import io.github.flemmli97.flan.CrossPlatformStuff; import io.github.flemmli97.flan.Flan; import io.github.flemmli97.flan.api.data.IPermissionContainer; @@ -237,6 +238,7 @@ public class Claim implements IPermissionContainer { @Override public boolean canInteract(ServerPlayer player, ClaimPermission perm, BlockPos pos, boolean message) { + message = message && player.getClass().equals(ServerPlayer.class); //dont send messages to fake players InteractionResult res = ClaimPermissionCheck.check(player, perm, pos); if (res != InteractionResult.PASS) return res != InteractionResult.FAIL; @@ -706,8 +708,7 @@ public class Claim implements IPermissionContainer { public boolean equals(Object obj) { if (this == obj) return true; - if (obj instanceof Claim) { - Claim other = (Claim) obj; + if (obj instanceof Claim other) { if (this.claimID == null && other.claimID == null) return Arrays.equals(this.getDimensions(), ((Claim) obj).getDimensions()); if (this.claimID != null) @@ -731,7 +732,7 @@ public class Claim implements IPermissionContainer { boolean perms = this.canInteract(player, PermissionRegistry.EDITPERMS, player.blockPosition()); List l = new ArrayList<>(); l.add(PermHelper.simpleColoredText("=============================================", ChatFormatting.GREEN)); - String ownerName = this.isAdminClaim() ? "Admin" : player.getServer().getProfileCache().get(this.owner).map(prof -> prof.getName()).orElse(""); + String ownerName = this.isAdminClaim() ? "Admin" : player.getServer().getProfileCache().get(this.owner).map(GameProfile::getName).orElse(""); if (this.parent == null) { if (this.claimName.isEmpty()) l.add(PermHelper.simpleColoredText(String.format(ConfigHandler.lang.claimBasicInfo, ownerName, this.minX, this.minZ, this.maxX, this.maxZ, this.subClaims.size()), ChatFormatting.GOLD)); @@ -778,9 +779,7 @@ public class Claim implements IPermissionContainer { interface ClaimUpdater { - Map updater = Config.createHashMap(map -> { - map.put(2, claim -> claim.globalPerm.put(PermissionRegistry.LOCKITEMS, true)); - }); + Map updater = Config.createHashMap(map -> map.put(2, claim -> claim.globalPerm.put(PermissionRegistry.LOCKITEMS, true))); static void updateClaim(Claim claim) { updater.entrySet().stream().filter(e -> e.getKey() > ConfigHandler.config.preConfigVersion).map(Map.Entry::getValue) diff --git a/common/src/main/java/io/github/flemmli97/flan/claim/ClaimStorage.java b/common/src/main/java/io/github/flemmli97/flan/claim/ClaimStorage.java index 96b6ea9..f34421c 100644 --- a/common/src/main/java/io/github/flemmli97/flan/claim/ClaimStorage.java +++ b/common/src/main/java/io/github/flemmli97/flan/claim/ClaimStorage.java @@ -91,7 +91,7 @@ public class ClaimStorage implements IPermissionStorage { return false; } if (!data.isAdminIgnoreClaim() && ConfigHandler.config.maxClaims != -1 && !PermissionNodeHandler.permBelowEqVal(player, PermissionNodeHandler.permMaxClaims, this.playerClaimMap.getOrDefault(player.getUUID(), Sets.newHashSet()).size() + 1, ConfigHandler.config.maxClaims)) { - player.displayClientMessage(PermHelper.simpleColoredText(String.format(ConfigHandler.lang.maxClaims), ChatFormatting.RED), false); + player.displayClientMessage(PermHelper.simpleColoredText(ConfigHandler.lang.maxClaims, ChatFormatting.RED), false); return false; } if (!data.isAdminIgnoreClaim() && !data.canUseClaimBlocks(claim.getPlane())) { diff --git a/common/src/main/java/io/github/flemmli97/flan/claim/GlobalClaim.java b/common/src/main/java/io/github/flemmli97/flan/claim/GlobalClaim.java index 8108db1..d725e67 100644 --- a/common/src/main/java/io/github/flemmli97/flan/claim/GlobalClaim.java +++ b/common/src/main/java/io/github/flemmli97/flan/claim/GlobalClaim.java @@ -11,16 +11,11 @@ import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; -public class GlobalClaim implements IPermissionContainer { - - private final ServerLevel world; - - public GlobalClaim(ServerLevel world) { - this.world = world; - } +public record GlobalClaim(ServerLevel world) implements IPermissionContainer { @Override public boolean canInteract(ServerPlayer player, ClaimPermission perm, BlockPos pos, boolean message) { + message = message && player.getClass().equals(ServerPlayer.class); //dont send messages to fake players Config.GlobalType global = ConfigHandler.config.getGlobal(this.world, perm); if (global != Config.GlobalType.NONE && (player == null || !PlayerClaimData.get(player).isAdminIgnoreClaim())) { if (global.getValue()) diff --git a/common/src/main/java/io/github/flemmli97/flan/commands/CommandClaim.java b/common/src/main/java/io/github/flemmli97/flan/commands/CommandClaim.java index c4e7e7a..fcacf7f 100644 --- a/common/src/main/java/io/github/flemmli97/flan/commands/CommandClaim.java +++ b/common/src/main/java/io/github/flemmli97/flan/commands/CommandClaim.java @@ -487,8 +487,7 @@ public class CommandClaim { private static int adminDeleteAll(CommandContext context) throws CommandSyntaxException { CommandSourceStack src = context.getSource(); - if (src.getEntity() instanceof ServerPlayer) { - ServerPlayer player = (ServerPlayer) src.getEntity(); + if (src.getEntity() instanceof ServerPlayer player) { PlayerClaimData data = PlayerClaimData.get(player); if (!data.confirmedDeleteAll()) { data.setConfirmDeleteAll(true); @@ -634,34 +633,22 @@ public class CommandClaim { } private static int editGlobalPerm(CommandContext context) throws CommandSyntaxException { - int mode = 0; - switch (StringArgumentType.getString(context, "toggle")) { - case "true": - mode = 1; - break; - case "false": - mode = 0; - break; - case "default": - mode = -1; - break; - } + int mode = switch (StringArgumentType.getString(context, "toggle")) { + case "true" -> 1; + case "false" -> 0; + case "default" -> -1; + default -> 0; + }; return editPerms(context, null, mode); } private static int editGroupPerm(CommandContext context) throws CommandSyntaxException { - int mode = 0; - switch (StringArgumentType.getString(context, "toggle")) { - case "true": - mode = 1; - break; - case "false": - mode = 0; - break; - case "default": - mode = -1; - break; - } + int mode = switch (StringArgumentType.getString(context, "toggle")) { + case "true" -> 1; + case "false" -> 0; + case "default" -> -1; + default -> 0; + }; return editPerms(context, StringArgumentType.getString(context, "group"), mode); } @@ -706,18 +693,12 @@ public class CommandClaim { private static int editPersonalPerm(CommandContext context) throws CommandSyntaxException { ServerPlayer player = context.getSource().getPlayerOrException(); String group = StringArgumentType.getString(context, "group"); - int mode = 0; - switch (StringArgumentType.getString(context, "toggle")) { - case "true": - mode = 1; - break; - case "false": - mode = 0; - break; - case "default": - mode = -1; - break; - } + int mode = switch (StringArgumentType.getString(context, "toggle")) { + case "true" -> 1; + case "false" -> 0; + case "default" -> -1; + default -> 0; + }; ClaimPermission perm; String p = StringArgumentType.getString(context, "permission"); try { diff --git a/common/src/main/java/io/github/flemmli97/flan/event/BlockInteractEvents.java b/common/src/main/java/io/github/flemmli97/flan/event/BlockInteractEvents.java index 71e3ebe..0547afa 100644 --- a/common/src/main/java/io/github/flemmli97/flan/event/BlockInteractEvents.java +++ b/common/src/main/java/io/github/flemmli97/flan/event/BlockInteractEvents.java @@ -43,9 +43,8 @@ public class BlockInteractEvents { } public static boolean breakBlocks(Level world, Player p, BlockPos pos, BlockState state, BlockEntity tile) { - if (world.isClientSide || p.isSpectator()) + if (!(p instanceof ServerPlayer player) || p.isSpectator()) return true; - ServerPlayer player = (ServerPlayer) p; ClaimStorage storage = ClaimStorage.get((ServerLevel) world); IPermissionContainer claim = storage.getForPermissionCheck(pos); if (claim != null) { @@ -62,9 +61,8 @@ public class BlockInteractEvents { //Right click block public static InteractionResult useBlocks(Player p, Level world, InteractionHand hand, BlockHitResult hitResult) { - if (world.isClientSide) + if (!(p instanceof ServerPlayer player)) return InteractionResult.PASS; - ServerPlayer player = (ServerPlayer) p; ItemStack stack = player.getItemInHand(hand); if (stack.getItem() == ConfigHandler.config.claimingItem) { ItemInteractEvents.claimLandHandling(player, hitResult.getBlockPos()); diff --git a/common/src/main/java/io/github/flemmli97/flan/event/EntityInteractEvents.java b/common/src/main/java/io/github/flemmli97/flan/event/EntityInteractEvents.java index 6cb3a47..37ba745 100644 --- a/common/src/main/java/io/github/flemmli97/flan/event/EntityInteractEvents.java +++ b/common/src/main/java/io/github/flemmli97/flan/event/EntityInteractEvents.java @@ -63,7 +63,7 @@ public class EntityInteractEvents { } public static InteractionResult useAtEntity(Player player, Level world, InteractionHand hand, Entity entity, /* Nullable */ EntityHitResult hitResult) { - if (player.level.isClientSide || player.isSpectator() || canInteract(entity)) + if (!(player instanceof ServerPlayer) || player.isSpectator() || canInteract(entity)) return InteractionResult.PASS; ClaimStorage storage = ClaimStorage.get((ServerLevel) world); BlockPos pos = entity.blockPosition(); @@ -78,9 +78,8 @@ public class EntityInteractEvents { } public static InteractionResult useEntity(Player p, Level world, InteractionHand hand, Entity entity) { - if (p.level.isClientSide || p.isSpectator() || canInteract(entity)) + if (!(p instanceof ServerPlayer player) || p.isSpectator() || canInteract(entity)) return InteractionResult.PASS; - ServerPlayer player = (ServerPlayer) p; ClaimStorage storage = ClaimStorage.get((ServerLevel) world); BlockPos pos = entity.blockPosition(); IPermissionContainer claim = storage.getForPermissionCheck(pos); @@ -96,8 +95,7 @@ public class EntityInteractEvents { return claim.canInteract(player, PermissionRegistry.TRADING, pos, true) ? InteractionResult.PASS : InteractionResult.FAIL; if (entity instanceof ItemFrame) return claim.canInteract(player, PermissionRegistry.ITEMFRAMEROTATE, pos, true) ? InteractionResult.PASS : InteractionResult.FAIL; - if (entity instanceof TamableAnimal) { - TamableAnimal tame = (TamableAnimal) entity; + if (entity instanceof TamableAnimal tame) { if (tame.isOwnedBy(player)) return InteractionResult.PASS; } @@ -117,8 +115,7 @@ public class EntityInteractEvents { if (proj.level.isClientSide) return false; Entity owner = proj.getOwner(); - if (owner instanceof ServerPlayer) { - ServerPlayer player = (ServerPlayer) owner; + if (owner instanceof ServerPlayer player) { if (res.getType() == HitResult.Type.BLOCK) { BlockHitResult blockRes = (BlockHitResult) res; BlockPos pos = blockRes.getBlockPos(); @@ -138,8 +135,7 @@ public class EntityInteractEvents { return false; boolean flag = !claim.canInteract(player, perm, pos, true); if (flag) { - if (proj instanceof AbstractArrow) { - AbstractArrow pers = (AbstractArrow) proj; + if (proj instanceof AbstractArrow pers) { ((IPersistentProjectileVars) pers).setInBlockState(pers.level.getBlockState(pos)); Vec3 vec3d = blockRes.getLocation().subtract(pers.getX(), pers.getY(), pers.getZ()); pers.setDeltaMovement(vec3d); @@ -168,8 +164,7 @@ public class EntityInteractEvents { } Entity hit = ((EntityHitResult) res).getEntity(); boolean fail = attackSimple(player, hit, true) != InteractionResult.PASS; - if (fail && proj instanceof AbstractArrow && ((AbstractArrow) proj).getPierceLevel() > 0) { - AbstractArrow pers = (AbstractArrow) proj; + if (fail && proj instanceof AbstractArrow pers && ((AbstractArrow) proj).getPierceLevel() > 0) { IntOpenHashSet pierced = ((IPersistentProjectileVars) pers).getPiercedEntities(); if (pierced == null) pierced = new IntOpenHashSet(5); @@ -194,11 +189,10 @@ public class EntityInteractEvents { } public static InteractionResult attackSimple(Player p, Entity entity, boolean message) { - if (p.level.isClientSide || p.isSpectator() || canInteract(entity)) + if (!(p instanceof ServerPlayer player) || p.isSpectator() || canInteract(entity)) return InteractionResult.PASS; if (entity instanceof Enemy) return InteractionResult.PASS; - ServerPlayer player = (ServerPlayer) p; ClaimStorage storage = ClaimStorage.get(player.getLevel()); BlockPos pos = entity.blockPosition(); IPermissionContainer claim = storage.getForPermissionCheck(pos); @@ -224,8 +218,7 @@ public class EntityInteractEvents { } public static boolean canCollideWith(Player player, Entity entity) { - if (player instanceof ServerPlayer) { - ServerPlayer sPlayer = (ServerPlayer) player; + if (player instanceof ServerPlayer sPlayer) { if (entity instanceof ItemEntity) { IOwnedItem ownedItem = (IOwnedItem) entity; if (ownedItem.getDeathPlayer() != null) { @@ -329,7 +322,7 @@ public class EntityInteractEvents { if (!currentClaim.canInteract(player, PermissionRegistry.CANSTAY, bPos, true)) { Claim sub = currentClaim.getSubClaim(bPos); Vec3 tp = TeleportUtils.getTeleportPos(player, pos, storage, sub != null ? sub.getDimensions() : currentClaim.getDimensions(), true, bPos, (claim, nPos) -> claim.canInteract(player, PermissionRegistry.CANSTAY, nPos, false)); - if(player.isPassenger()) + if (player.isPassenger()) player.stopRiding(); player.teleportToWithTicket(tp.x(), tp.y(), tp.z()); } diff --git a/common/src/main/java/io/github/flemmli97/flan/event/ItemInteractEvents.java b/common/src/main/java/io/github/flemmli97/flan/event/ItemInteractEvents.java index ebcbbf9..8e96d87 100644 --- a/common/src/main/java/io/github/flemmli97/flan/event/ItemInteractEvents.java +++ b/common/src/main/java/io/github/flemmli97/flan/event/ItemInteractEvents.java @@ -43,9 +43,8 @@ import java.util.Set; public class ItemInteractEvents { public static InteractionResultHolder useItem(Player p, Level world, InteractionHand hand) { - if (world.isClientSide || p.isSpectator()) + if (!(p instanceof ServerPlayer player) || p.isSpectator()) return InteractionResultHolder.pass(p.getItemInHand(hand)); - ServerPlayer player = (ServerPlayer) p; ItemStack stack = player.getItemInHand(hand); if (stack.getItem() == ConfigHandler.config.claimingItem) { HitResult ray = player.pick(64, 0, false); @@ -96,8 +95,7 @@ public class ItemInteractEvents { private static final Set blackListedItems = Sets.newHashSet(Items.COMPASS, Items.FILLED_MAP, Items.FIREWORK_ROCKET); public static InteractionResult onItemUseBlock(UseOnContext context) { - //Check for Fakeplayer. Since there is no api for that directly check the class - if (!(context.getPlayer() instanceof ServerPlayer) || !context.getPlayer().getClass().equals(ServerPlayer.class) || context.getItemInHand().isEmpty()) + if (!(context.getPlayer() instanceof ServerPlayer player) || context.getItemInHand().isEmpty()) return InteractionResult.PASS; ClaimStorage storage = ClaimStorage.get((ServerLevel) context.getLevel()); BlockPos placePos = new BlockPlaceContext(context).getClickedPos(); @@ -107,7 +105,6 @@ public class ItemInteractEvents { if (blackListedItems.contains(context.getItemInHand().getItem())) return InteractionResult.PASS; boolean actualInClaim = !(claim instanceof Claim) || placePos.getY() >= ((Claim) claim).getDimensions()[4]; - ServerPlayer player = (ServerPlayer) context.getPlayer(); ClaimPermission perm = ObjectToPermissionMap.getFromItem(context.getItemInHand().getItem()); if (perm != null) { if (claim.canInteract(player, perm, placePos, false)) diff --git a/common/src/main/java/io/github/flemmli97/flan/event/WorldEvents.java b/common/src/main/java/io/github/flemmli97/flan/event/WorldEvents.java index f064395..6473914 100644 --- a/common/src/main/java/io/github/flemmli97/flan/event/WorldEvents.java +++ b/common/src/main/java/io/github/flemmli97/flan/event/WorldEvents.java @@ -81,10 +81,9 @@ public class WorldEvents { } public static boolean lightningFire(LightningBolt lightning) { - if (!(lightning.level instanceof ServerLevel)) + if (!(lightning.level instanceof ServerLevel world)) return true; BlockPos.MutableBlockPos mutable = lightning.blockPosition().mutable(); - ServerLevel world = (ServerLevel) lightning.level; for (int x = -1; x <= 1; x++) for (int z = -1; z <= 1; z++) { mutable.set(mutable.getX() + x, mutable.getY(), mutable.getZ() + z); diff --git a/common/src/main/java/io/github/flemmli97/flan/gui/ClaimMenuScreenHandler.java b/common/src/main/java/io/github/flemmli97/flan/gui/ClaimMenuScreenHandler.java index 1847198..d0be96c 100644 --- a/common/src/main/java/io/github/flemmli97/flan/gui/ClaimMenuScreenHandler.java +++ b/common/src/main/java/io/github/flemmli97/flan/gui/ClaimMenuScreenHandler.java @@ -48,48 +48,47 @@ public class ClaimMenuScreenHandler extends ServerOnlyScreenHandler { protected void fillInventoryWith(Player player, SeparateInv inv, Claim claim) { for (int i = 0; i < 9; i++) { switch (i) { - case 0: + case 0 -> { ItemStack close = new ItemStack(Items.TNT); close.setHoverName(ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenClose, ChatFormatting.DARK_RED)); inv.updateStack(i, close); - break; - case 2: + } + case 2 -> { ItemStack perm = new ItemStack(Items.BEACON); perm.setHoverName(ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenMenuGlobal, ChatFormatting.GOLD)); if (player instanceof ServerPlayer && !this.hasEditPerm(claim, (ServerPlayer) player)) ServerScreenHelper.addLore(perm, ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenNoPerm, ChatFormatting.DARK_RED)); inv.updateStack(i, perm); - break; - case 3: + } + case 3 -> { ItemStack group = new ItemStack(Items.WRITABLE_BOOK); group.setHoverName(ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenMenuGroup, ChatFormatting.GOLD)); if (player instanceof ServerPlayer && !this.hasEditPerm(claim, (ServerPlayer) player)) ServerScreenHelper.addLore(group, ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenNoPerm, ChatFormatting.DARK_RED)); inv.updateStack(i, group); - break; - case 4: + } + case 4 -> { ItemStack potions = new ItemStack(Items.POTION); potions.setHoverName(ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenMenuPotion, ChatFormatting.GOLD)); if (player instanceof ServerPlayer && !this.hasPerm(claim, (ServerPlayer) player, PermissionRegistry.EDITPOTIONS)) ServerScreenHelper.addLore(potions, ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenNoPerm, ChatFormatting.DARK_RED)); inv.updateStack(i, potions); - break; - case 5: + } + case 5 -> { ItemStack sign = new ItemStack(Items.OAK_SIGN); sign.setHoverName(ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenMenuClaimText, ChatFormatting.GOLD)); if (player instanceof ServerPlayer && !this.hasPerm(claim, (ServerPlayer) player, PermissionRegistry.EDITCLAIM)) ServerScreenHelper.addLore(sign, ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenNoPerm, ChatFormatting.DARK_RED)); inv.updateStack(i, sign); - break; - case 8: + } + case 8 -> { ItemStack delete = new ItemStack(Items.BARRIER); delete.setHoverName(ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenMenuDelete, ChatFormatting.RED)); if (player instanceof ServerPlayer && !this.hasPerm(claim, (ServerPlayer) player, PermissionRegistry.EDITCLAIM)) ServerScreenHelper.addLore(delete, ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenNoPerm, ChatFormatting.DARK_RED)); inv.updateStack(i, delete); - break; - default: - inv.updateStack(i, ServerScreenHelper.emptyFiller()); + } + default -> inv.updateStack(i, ServerScreenHelper.emptyFiller()); } } } diff --git a/common/src/main/java/io/github/flemmli97/flan/gui/ClaimTextHandler.java b/common/src/main/java/io/github/flemmli97/flan/gui/ClaimTextHandler.java index da806e5..eb986cc 100644 --- a/common/src/main/java/io/github/flemmli97/flan/gui/ClaimTextHandler.java +++ b/common/src/main/java/io/github/flemmli97/flan/gui/ClaimTextHandler.java @@ -51,41 +51,40 @@ public class ClaimTextHandler extends ServerOnlyScreenHandler { protected void fillInventoryWith(Player player, SeparateInv inv, Claim claim) { for (int i = 0; i < 9; i++) { switch (i) { - case 0: + case 0 -> { ItemStack close = new ItemStack(Items.TNT); close.setHoverName(ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenBack, ChatFormatting.DARK_RED)); inv.updateStack(i, close); - break; - case 2: + } + case 2 -> { ItemStack stack = new ItemStack(Items.OAK_SIGN); stack.setHoverName(ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenEnterText, ChatFormatting.GOLD)); if (claim.enterTitle != null) ServerScreenHelper.addLore(stack, claim.enterTitle); inv.updateStack(i, stack); - break; - case 3: + } + case 3 -> { ItemStack stack2 = new ItemStack(Items.OAK_SIGN); stack2.setHoverName(ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenEnterSubText, ChatFormatting.GOLD)); if (claim.enterSubtitle != null) ServerScreenHelper.addLore(stack2, claim.enterSubtitle); inv.updateStack(i, stack2); - break; - case 4: + } + case 4 -> { ItemStack stack3 = new ItemStack(Items.OAK_SIGN); stack3.setHoverName(ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenLeaveText, ChatFormatting.GOLD)); if (claim.leaveTitle != null) ServerScreenHelper.addLore(stack3, claim.leaveTitle); inv.updateStack(i, stack3); - break; - case 5: + } + case 5 -> { ItemStack stack4 = new ItemStack(Items.OAK_SIGN); stack4.setHoverName(ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenLeaveSubText, ChatFormatting.GOLD)); if (claim.leaveSubtitle != null) ServerScreenHelper.addLore(stack4, claim.leaveSubtitle); inv.updateStack(i, stack4); - break; - default: - inv.updateStack(i, ServerScreenHelper.emptyFiller()); + } + default -> inv.updateStack(i, ServerScreenHelper.emptyFiller()); } } } @@ -102,21 +101,13 @@ public class ClaimTextHandler extends ServerOnlyScreenHandler { player.getServer().execute(() -> ClaimMenuScreenHandler.openClaimMenu(player, this.claim)); ServerScreenHelper.playSongToPlayer(player, SoundEvents.UI_BUTTON_CLICK, 1, 1f); } else { - Consumer cons = null; - switch (index) { - case 2: - cons = text -> this.claim.setEnterTitle(text, this.claim.enterSubtitle); - break; - case 3: - cons = text -> this.claim.setEnterTitle(this.claim.enterTitle, text); - break; - case 4: - cons = text -> this.claim.setLeaveTitle(text, this.claim.leaveSubtitle); - break; - case 5: - cons = text -> this.claim.setLeaveTitle(this.claim.leaveTitle, text); - break; - } + Consumer cons = switch (index) { + case 2 -> text -> this.claim.setEnterTitle(text, this.claim.enterSubtitle); + case 3 -> text -> this.claim.setEnterTitle(this.claim.enterTitle, text); + case 4 -> text -> this.claim.setLeaveTitle(text, this.claim.leaveSubtitle); + case 5 -> text -> this.claim.setLeaveTitle(this.claim.leaveTitle, text); + default -> null; + }; if (cons != null) { player.closeContainer(); Consumer finalCons = cons; diff --git a/common/src/main/java/io/github/flemmli97/flan/gui/ConfirmScreenHandler.java b/common/src/main/java/io/github/flemmli97/flan/gui/ConfirmScreenHandler.java index b450c14..e2868fc 100644 --- a/common/src/main/java/io/github/flemmli97/flan/gui/ConfirmScreenHandler.java +++ b/common/src/main/java/io/github/flemmli97/flan/gui/ConfirmScreenHandler.java @@ -45,18 +45,17 @@ public class ConfirmScreenHandler extends ServerOnlyScreenHandler { protected void fillInventoryWith(Player player, SeparateInv inv, Object additionalData) { for (int i = 0; i < 9; i++) { switch (i) { - case 3: + case 3 -> { ItemStack yes = new ItemStack(Items.GREEN_WOOL); yes.setHoverName(ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenYes, ChatFormatting.GREEN)); inv.updateStack(i, yes); - break; - case 5: + } + case 5 -> { ItemStack no = new ItemStack(Items.RED_WOOL); no.setHoverName(ServerScreenHelper.coloredGuiText(ConfigHandler.lang.screenNo, ChatFormatting.RED)); inv.updateStack(i, no); - break; - default: - inv.updateStack(i, ServerScreenHelper.emptyFiller()); + } + default -> inv.updateStack(i, ServerScreenHelper.emptyFiller()); } } } @@ -69,12 +68,8 @@ public class ConfirmScreenHandler extends ServerOnlyScreenHandler { @Override protected boolean handleSlotClicked(ServerPlayer player, int index, Slot slot, int clickType) { switch (index) { - case 3: - this.cons.accept(true); - break; - case 5: - this.cons.accept(false); - break; + case 3 -> this.cons.accept(true); + case 5 -> this.cons.accept(false); } return true; } diff --git a/common/src/main/java/io/github/flemmli97/flan/gui/ServerOnlyScreenHandler.java b/common/src/main/java/io/github/flemmli97/flan/gui/ServerOnlyScreenHandler.java index bf984a5..ab39f89 100644 --- a/common/src/main/java/io/github/flemmli97/flan/gui/ServerOnlyScreenHandler.java +++ b/common/src/main/java/io/github/flemmli97/flan/gui/ServerOnlyScreenHandler.java @@ -18,7 +18,6 @@ import net.minecraft.world.item.ItemStack; public abstract class ServerOnlyScreenHandler extends AbstractContainerMenu { private final SeparateInvImpl inventory; - private boolean update = true; protected ServerOnlyScreenHandler(int syncId, Inventory playerInventory, int rows, T additionalData) { super(fromRows(rows), syncId); @@ -65,19 +64,14 @@ public abstract class ServerOnlyScreenHandler extends AbstractContainerMenu { } private static MenuType fromRows(int rows) { - switch (rows) { - case 2: - return MenuType.GENERIC_9x2; - case 3: - return MenuType.GENERIC_9x3; - case 4: - return MenuType.GENERIC_9x4; - case 5: - return MenuType.GENERIC_9x5; - case 6: - return MenuType.GENERIC_9x6; - } - return MenuType.GENERIC_9x1; + return switch (rows) { + case 2 -> MenuType.GENERIC_9x2; + case 3 -> MenuType.GENERIC_9x3; + case 4 -> MenuType.GENERIC_9x4; + case 5 -> MenuType.GENERIC_9x5; + case 6 -> MenuType.GENERIC_9x6; + default -> MenuType.GENERIC_9x1; + }; } protected abstract void fillInventoryWith(Player player, SeparateInv inv, T additionalData); @@ -112,24 +106,6 @@ public abstract class ServerOnlyScreenHandler extends AbstractContainerMenu { return slot.getItem().copy(); } - /*@Override - public void addSlotListener(ContainerListener listener) { - this.update = false; - super.addSlotListener(listener); - if (!this.listeners.contains(listener)) { - this.listeners.add(listener); - listener.refreshContainer(this, this.getItems()); - this.update = true; - this.broadcastChanges(); - } - }*/ - - @Override - public void broadcastChanges() { - //if (this.update) - super.broadcastChanges(); - } - protected abstract boolean isRightSlot(int slot); /** diff --git a/common/src/main/java/io/github/flemmli97/flan/gui/ServerScreenHelper.java b/common/src/main/java/io/github/flemmli97/flan/gui/ServerScreenHelper.java index f5794ac..db330c5 100644 --- a/common/src/main/java/io/github/flemmli97/flan/gui/ServerScreenHelper.java +++ b/common/src/main/java/io/github/flemmli97/flan/gui/ServerScreenHelper.java @@ -53,30 +53,18 @@ public class ServerScreenHelper { if (claim.parentClaim() == null) permFlag = "" + (claim.permEnabled(perm) == 1); else { - switch (claim.permEnabled(perm)) { - case -1: - permFlag = ConfigHandler.lang.screenDefault; - break; - case 1: - permFlag = ConfigHandler.lang.screenTrue; - break; - default: - permFlag = ConfigHandler.lang.screenFalse; - break; - } + permFlag = switch (claim.permEnabled(perm)) { + case -1 -> ConfigHandler.lang.screenDefault; + case 1 -> ConfigHandler.lang.screenTrue; + default -> ConfigHandler.lang.screenFalse; + }; } } else { - switch (claim.groupHasPerm(group, perm)) { - case -1: - permFlag = ConfigHandler.lang.screenDefault; - break; - case 1: - permFlag = ConfigHandler.lang.screenTrue; - break; - default: - permFlag = ConfigHandler.lang.screenFalse; - break; - } + permFlag = switch (claim.groupHasPerm(group, perm)) { + case -1 -> ConfigHandler.lang.screenDefault; + case 1 -> ConfigHandler.lang.screenTrue; + default -> ConfigHandler.lang.screenFalse; + }; } Component text = ServerScreenHelper.coloredGuiText(String.format(ConfigHandler.lang.screenEnableText, permFlag), permFlag.equals(ConfigHandler.lang.screenTrue) ? ChatFormatting.GREEN : ChatFormatting.RED); lore.add(text); diff --git a/common/src/main/java/io/github/flemmli97/flan/gui/StringResultScreenHandler.java b/common/src/main/java/io/github/flemmli97/flan/gui/StringResultScreenHandler.java index 8bb44ec..7a34314 100644 --- a/common/src/main/java/io/github/flemmli97/flan/gui/StringResultScreenHandler.java +++ b/common/src/main/java/io/github/flemmli97/flan/gui/StringResultScreenHandler.java @@ -71,9 +71,8 @@ public class StringResultScreenHandler extends AnvilMenu { @Override public void clicked(int i, int j, ClickType actionType, Player playerEntity) { - if (i < 0 || !(playerEntity instanceof ServerPlayer)) + if (i < 0 || !(playerEntity instanceof ServerPlayer player)) return; - ServerPlayer player = (ServerPlayer) playerEntity; Slot slot = this.slots.get(i); if (((AbstractContainerAccessor) this).containerSync() != null) ((AbstractContainerAccessor) this).containerSync().sendCarriedChange(this, this.getCarried().copy()); @@ -105,15 +104,6 @@ public class StringResultScreenHandler extends AnvilMenu { this.broadcastChanges(); return ItemStack.EMPTY; } -/* - @Override - public void addSlotListener(ContainerListener listener) { - if (!this.listeners.contains(listener)) { - this.listeners.add(listener); - listener.refreshContainer(this, this.getItems()); - this.broadcastChanges(); - } - }*/ @Override public void broadcastChanges() { diff --git a/common/src/main/java/io/github/flemmli97/flan/mixin/PlayerClaimMixin.java b/common/src/main/java/io/github/flemmli97/flan/mixin/PlayerClaimMixin.java index 50bffed..d91bbc8 100644 --- a/common/src/main/java/io/github/flemmli97/flan/mixin/PlayerClaimMixin.java +++ b/common/src/main/java/io/github/flemmli97/flan/mixin/PlayerClaimMixin.java @@ -29,16 +29,6 @@ public abstract class PlayerClaimMixin implements IPlayerClaimImpl { this.flanClaimData = new PlayerClaimData((ServerPlayer) (Object) this); } - /*@Inject(method = "readCustomDataFromTag", at = @At("RETURN")) - private void readData(CompoundTag tag, CallbackInfo info) { - this.claimData.read(this.server); - } - - @Inject(method = "writeCustomDataToTag", at = @At("RETURN")) - private void writeData(CompoundTag tag, CallbackInfo info) { - this.claimData.save(this.server); - }*/ - @Inject(method = "tick", at = @At("HEAD")) private void tickData(CallbackInfo info) { this.flanClaimData.tick(this.flanCurrentClaim, claim -> this.flanCurrentClaim = claim); diff --git a/common/src/main/java/io/github/flemmli97/flan/player/ClaimDisplay.java b/common/src/main/java/io/github/flemmli97/flan/player/ClaimDisplay.java index 3a94f77..21d9722 100644 --- a/common/src/main/java/io/github/flemmli97/flan/player/ClaimDisplay.java +++ b/common/src/main/java/io/github/flemmli97/flan/player/ClaimDisplay.java @@ -38,22 +38,22 @@ public class ClaimDisplay { this.type = type; this.height = Math.max(1 + claim.getWorld().getMinBuildHeight(), y); switch (type) { - case SUB: + case SUB -> { this.corner = ParticleIndicators.SUBCLAIMCORNER; this.middle = ParticleIndicators.SUBCLAIMMIDDLE; - break; - case CONFLICT: + } + case CONFLICT -> { this.corner = ParticleIndicators.OVERLAPCLAIM; this.middle = ParticleIndicators.OVERLAPCLAIM; - break; - case EDIT: + } + case EDIT -> { this.corner = ParticleIndicators.EDITCLAIMCORNER; this.middle = ParticleIndicators.EDITCLAIMMIDDLE; - break; - default: + } + default -> { this.corner = ParticleIndicators.CLAIMCORNER; this.middle = ParticleIndicators.CLAIMMIDDLE; - break; + } } } diff --git a/common/src/main/java/io/github/flemmli97/flan/player/PlayerClaimData.java b/common/src/main/java/io/github/flemmli97/flan/player/PlayerClaimData.java index 50f2d68..63ab66a 100644 --- a/common/src/main/java/io/github/flemmli97/flan/player/PlayerClaimData.java +++ b/common/src/main/java/io/github/flemmli97/flan/player/PlayerClaimData.java @@ -159,8 +159,7 @@ public class PlayerClaimData implements IPlayerData { } public void addDisplayClaim(IPermissionContainer cont, EnumDisplayType type, int height) { - if (cont instanceof Claim) { - Claim claim = (Claim) cont; + if (cont instanceof Claim claim) { this.displayToAdd.add(new ClaimDisplay(claim, type, height)); if (type == EnumDisplayType.MAIN) for (Claim sub : claim.getAllSubclaims()) @@ -306,7 +305,7 @@ public class PlayerClaimData implements IPlayerData { tpTo.set(tpTo.getX(), tpTo.getY() + 1, tpTo.getZ()); } else tpTo.set(tpTo.getX(), yHighest, tpTo.getZ()); - if(this.player.isPassenger()) + if (this.player.isPassenger()) this.player.stopRiding(); this.player.teleportToWithTicket(tpTo.getX() + 0.5, tpTo.getY(), tpTo.getZ() + 0.5); this.tpPos = null; @@ -314,7 +313,7 @@ public class PlayerClaimData implements IPlayerData { Vec3 tp = TeleportUtils.getTeleportPos(this.player, this.player.position(), ClaimStorage.get(this.player.getLevel()), ((IPlayerClaimImpl) this.player).getCurrentClaim().getDimensions(), TeleportUtils.roundedBlockPos(this.player.position()).mutable(), (claim, nPos) -> false); - if(this.player.isPassenger()) + if (this.player.isPassenger()) this.player.stopRiding(); this.player.teleportToWithTicket(tp.x(), tp.y(), tp.z()); } @@ -454,9 +453,7 @@ public class PlayerClaimData implements IPlayerData { } public static void updateScoreFor(ServerPlayer player, ObjectiveCriteria criterion, int val) { - player.getScoreboard().forAllObjectives(criterion, player.getScoreboardName(), (scoreboardPlayerScore) -> { - scoreboardPlayerScore.setScore(val); - }); + player.getScoreboard().forAllObjectives(criterion, player.getScoreboardName(), (scoreboardPlayerScore) -> scoreboardPlayerScore.setScore(val)); } public static void editForOfflinePlayer(MinecraftServer server, UUID uuid, int additionalClaimBlocks) { diff --git a/common/src/main/java/io/github/flemmli97/flan/player/TeleportUtils.java b/common/src/main/java/io/github/flemmli97/flan/player/TeleportUtils.java index 76eef1d..adfcd80 100644 --- a/common/src/main/java/io/github/flemmli97/flan/player/TeleportUtils.java +++ b/common/src/main/java/io/github/flemmli97/flan/player/TeleportUtils.java @@ -43,18 +43,10 @@ public class TeleportUtils { } int[] newDim = claim.getDimensions(); switch (pos.getA()) { - case NORTH: - dim[2] = newDim[2]; - break; - case SOUTH: - dim[3] = newDim[3]; - break; - case EAST: - dim[1] = newDim[1]; - break; - default: - dim[0] = newDim[0]; - break; + case NORTH -> dim[2] = newDim[2]; + case SOUTH -> dim[3] = newDim[3]; + case EAST -> dim[1] = newDim[1]; + default -> dim[0] = newDim[0]; } return getTeleportPos(player, playerPos, storage, dim, checkSub, bPos, check); } diff --git a/fabric/src/main/java/io/github/flemmli97/flan/fabric/FabricRegistryWrapper.java b/fabric/src/main/java/io/github/flemmli97/flan/fabric/FabricRegistryWrapper.java index ddab4bb..279ba1f 100644 --- a/fabric/src/main/java/io/github/flemmli97/flan/fabric/FabricRegistryWrapper.java +++ b/fabric/src/main/java/io/github/flemmli97/flan/fabric/FabricRegistryWrapper.java @@ -4,13 +4,7 @@ import io.github.flemmli97.flan.SimpleRegistryWrapper; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; -public class FabricRegistryWrapper implements SimpleRegistryWrapper { - - private final Registry delegate; - - public FabricRegistryWrapper(Registry delegate) { - this.delegate = delegate; - } +public record FabricRegistryWrapper(Registry delegate) implements SimpleRegistryWrapper { @Override public T getFromId(ResourceLocation id) { diff --git a/fabric/src/main/java/io/github/flemmli97/flan/integration/permissions/fabric/PermissionNodeHandlerImpl.java b/fabric/src/main/java/io/github/flemmli97/flan/integration/permissions/fabric/PermissionNodeHandlerImpl.java index f3e42a0..c24e794 100644 --- a/fabric/src/main/java/io/github/flemmli97/flan/integration/permissions/fabric/PermissionNodeHandlerImpl.java +++ b/fabric/src/main/java/io/github/flemmli97/flan/integration/permissions/fabric/PermissionNodeHandlerImpl.java @@ -15,8 +15,7 @@ public class PermissionNodeHandlerImpl { return Permissions.check(src, perm, ConfigHandler.config.permissionLevel); return Permissions.check(src, perm, true); } - if (Flan.ftbRanks && src.getEntity() instanceof ServerPlayer) { - ServerPlayer player = (ServerPlayer) src.getEntity(); + if (Flan.ftbRanks && src.getEntity() instanceof ServerPlayer player) { return FTBRanksAPI.getPermissionValue(player, perm).asBoolean().orElse(!adminCmd || player.hasPermissions(ConfigHandler.config.permissionLevel)); } return !adminCmd || src.hasPermission(ConfigHandler.config.permissionLevel); diff --git a/forge/src/main/java/io/github/flemmli97/flan/forge/ForgeRegistryWrapper.java b/forge/src/main/java/io/github/flemmli97/flan/forge/ForgeRegistryWrapper.java index 7e01f94..bf2780d 100644 --- a/forge/src/main/java/io/github/flemmli97/flan/forge/ForgeRegistryWrapper.java +++ b/forge/src/main/java/io/github/flemmli97/flan/forge/ForgeRegistryWrapper.java @@ -5,13 +5,8 @@ import net.minecraft.resources.ResourceLocation; import net.minecraftforge.registries.IForgeRegistry; import net.minecraftforge.registries.IForgeRegistryEntry; -public class ForgeRegistryWrapper> implements SimpleRegistryWrapper { - - private final IForgeRegistry registry; - - public ForgeRegistryWrapper(IForgeRegistry registry) { - this.registry = registry; - } +public record ForgeRegistryWrapper>( + IForgeRegistry registry) implements SimpleRegistryWrapper { @Override public T getFromId(ResourceLocation id) { diff --git a/forge/src/main/java/io/github/flemmli97/flan/integration/permissions/forge/PermissionNodeHandlerImpl.java b/forge/src/main/java/io/github/flemmli97/flan/integration/permissions/forge/PermissionNodeHandlerImpl.java index 2a7679b..41c0fa6 100644 --- a/forge/src/main/java/io/github/flemmli97/flan/integration/permissions/forge/PermissionNodeHandlerImpl.java +++ b/forge/src/main/java/io/github/flemmli97/flan/integration/permissions/forge/PermissionNodeHandlerImpl.java @@ -8,9 +8,8 @@ import net.minecraft.server.level.ServerPlayer; public class PermissionNodeHandlerImpl { public static boolean perm(CommandSourceStack src, String perm, boolean adminCmd) { - if (!Flan.ftbRanks || !(src.getEntity() instanceof ServerPlayer)) + if (!Flan.ftbRanks || !(src.getEntity() instanceof ServerPlayer player)) return !adminCmd || src.hasPermission(ConfigHandler.config.permissionLevel); - ServerPlayer player = (ServerPlayer) src.getEntity(); return /*FTBRanksAPI.getPermissionValue(player, perm).asBoolean().orElse(!adminCmd || */player.hasPermissions(ConfigHandler.config.permissionLevel); }