From 87c878f9eee086b2c7230bb36a78413fb5557758 Mon Sep 17 00:00:00 2001 From: Flemmli97 Date: Fri, 18 Feb 2022 19:11:51 +0100 Subject: [PATCH] remove @ExpectedPlatform for an arch independent implementation --- .../flemmli97/flan/CrossPlatformStuff.java | 49 ---------------- .../api/permission/ObjectToPermissionMap.java | 14 ++--- .../io/github/flemmli97/flan/claim/Claim.java | 9 +-- .../flan/claim/ClaimPermissionCheck.java | 15 ----- .../flemmli97/flan/claim/ClaimStorage.java | 4 +- .../flemmli97/flan/commands/CommandClaim.java | 58 +++++++++---------- .../flemmli97/flan/config/BuySellHandler.java | 6 +- .../github/flemmli97/flan/config/Config.java | 12 ++-- .../flemmli97/flan/config/LangManager.java | 6 +- .../flan/event/BlockInteractEvents.java | 10 ++-- .../flan/event/EntityInteractEvents.java | 4 +- .../flan/event/ItemInteractEvents.java | 4 +- .../flan/gui/PotionEditScreenHandler.java | 10 ++-- .../integration/currency/CommandCurrency.java | 20 ------- .../flan/platform/ClaimPermissionCheck.java | 17 ++++++ .../flan/platform/CrossPlatformStuff.java | 34 +++++++++++ .../integration/currency/CommandCurrency.java | 19 ++++++ .../permissions/PermissionNodeHandler.java | 28 ++++----- .../flan/player/PlayerClaimData.java | 4 +- .../fabric/ClaimPermissionCheckImpl.java | 14 ----- .../flemmli97/flan/fabric/FlanFabric.java | 10 +++- .../platform/ClaimPermissionCheckImpl.java | 20 +++++++ .../CrossPlatformStuffImpl.java | 40 +++++++------ .../currency/fabric/CommandCurrencyImpl.java | 15 +++-- .../fabric/PermissionNodeHandlerImpl.java | 18 ++++-- .../playerability/PlayerAbilityEvents.java | 2 +- .../flemmli97/flan/forge/FlanForge.java | 19 ++++-- .../forgeevent/BlockInteractEventsForge.java | 2 +- .../forgeevent/EntityInteractEventsForge.java | 2 +- .../forgeevent/ItemInteractEventsForge.java | 2 +- .../{ => forge}/forgeevent/ServerEvents.java | 2 +- .../forgeevent/WorldEventsForge.java | 2 +- .../platform}/ClaimPermissionCheckImpl.java | 12 +++- .../CrossPlatformStuffImpl.java | 31 +++++++--- .../currency/forge/CommandCurrencyImpl.java | 15 +++-- .../forge/PermissionNodeHandlerImpl.java | 18 ++++-- 36 files changed, 302 insertions(+), 245 deletions(-) delete mode 100644 common/src/main/java/io/github/flemmli97/flan/CrossPlatformStuff.java delete mode 100644 common/src/main/java/io/github/flemmli97/flan/claim/ClaimPermissionCheck.java delete mode 100644 common/src/main/java/io/github/flemmli97/flan/integration/currency/CommandCurrency.java create mode 100644 common/src/main/java/io/github/flemmli97/flan/platform/ClaimPermissionCheck.java create mode 100644 common/src/main/java/io/github/flemmli97/flan/platform/CrossPlatformStuff.java create mode 100644 common/src/main/java/io/github/flemmli97/flan/platform/integration/currency/CommandCurrency.java rename common/src/main/java/io/github/flemmli97/flan/{ => platform}/integration/permissions/PermissionNodeHandler.java (76%) delete mode 100644 fabric/src/main/java/io/github/flemmli97/flan/claim/fabric/ClaimPermissionCheckImpl.java create mode 100644 fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/ClaimPermissionCheckImpl.java rename fabric/src/main/java/io/github/flemmli97/flan/fabric/{ => platform}/CrossPlatformStuffImpl.java (55%) rename fabric/src/main/java/io/github/flemmli97/flan/{ => fabric/platform}/integration/currency/fabric/CommandCurrencyImpl.java (84%) rename fabric/src/main/java/io/github/flemmli97/flan/{ => fabric/platform}/integration/permissions/fabric/PermissionNodeHandlerImpl.java (71%) rename fabric/src/main/java/io/github/flemmli97/flan/{ => fabric/platform}/integration/playerability/PlayerAbilityEvents.java (93%) rename forge/src/main/java/io/github/flemmli97/flan/{ => forge}/forgeevent/BlockInteractEventsForge.java (97%) rename forge/src/main/java/io/github/flemmli97/flan/{ => forge}/forgeevent/EntityInteractEventsForge.java (98%) rename forge/src/main/java/io/github/flemmli97/flan/{ => forge}/forgeevent/ItemInteractEventsForge.java (93%) rename forge/src/main/java/io/github/flemmli97/flan/{ => forge}/forgeevent/ServerEvents.java (97%) rename forge/src/main/java/io/github/flemmli97/flan/{ => forge}/forgeevent/WorldEventsForge.java (94%) rename forge/src/main/java/io/github/flemmli97/flan/{claim/forge => forge/platform}/ClaimPermissionCheckImpl.java (56%) rename forge/src/main/java/io/github/flemmli97/flan/forge/{ => platform}/CrossPlatformStuffImpl.java (59%) rename forge/src/main/java/io/github/flemmli97/flan/{ => forge/platform}/integration/currency/forge/CommandCurrencyImpl.java (83%) rename forge/src/main/java/io/github/flemmli97/flan/{ => forge/platform}/integration/permissions/forge/PermissionNodeHandlerImpl.java (62%) diff --git a/common/src/main/java/io/github/flemmli97/flan/CrossPlatformStuff.java b/common/src/main/java/io/github/flemmli97/flan/CrossPlatformStuff.java deleted file mode 100644 index 1ebab77..0000000 --- a/common/src/main/java/io/github/flemmli97/flan/CrossPlatformStuff.java +++ /dev/null @@ -1,49 +0,0 @@ -package io.github.flemmli97.flan; - -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.item.Item; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.entity.BlockEntity; - -import java.nio.file.Path; - -public class CrossPlatformStuff { - - @ExpectPlatform - public static Path configPath() { - throw new AssertionError(); - } - - @ExpectPlatform - public static SimpleRegistryWrapper registryStatusEffects() { - throw new AssertionError(); - } - - @ExpectPlatform - public static SimpleRegistryWrapper registryBlocks() { - throw new AssertionError(); - } - - @ExpectPlatform - public static SimpleRegistryWrapper registryItems() { - throw new AssertionError(); - } - - @ExpectPlatform - public static SimpleRegistryWrapper> registryEntities() { - throw new AssertionError(); - } - - @ExpectPlatform - public static boolean isInventoryTile(BlockEntity blockEntity) { - throw new AssertionError(); - } - - @ExpectPlatform - public static boolean blockDataContains(CompoundTag nbt, String tag) { - throw new AssertionError(); - } -} diff --git a/common/src/main/java/io/github/flemmli97/flan/api/permission/ObjectToPermissionMap.java b/common/src/main/java/io/github/flemmli97/flan/api/permission/ObjectToPermissionMap.java index 241a95b..c636b6e 100644 --- a/common/src/main/java/io/github/flemmli97/flan/api/permission/ObjectToPermissionMap.java +++ b/common/src/main/java/io/github/flemmli97/flan/api/permission/ObjectToPermissionMap.java @@ -1,7 +1,7 @@ package io.github.flemmli97.flan.api.permission; -import io.github.flemmli97.flan.CrossPlatformStuff; import io.github.flemmli97.flan.config.ConfigHandler; +import io.github.flemmli97.flan.platform.CrossPlatformStuff; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; @@ -56,10 +56,10 @@ public class ObjectToPermissionMap { public static void reload(MinecraftServer server) { blockToPermission.clear(); itemToPermission.clear(); - for (Block block : CrossPlatformStuff.registryBlocks().getIterator()) { + for (Block block : CrossPlatformStuff.instance().registryBlocks().getIterator()) { blockPermissionBuilder.entrySet().stream().filter(e -> e.getKey().test(block)).map(Map.Entry::getValue).findFirst().ifPresent(sub -> blockToPermission.put(block, sub.get())); } - for (Item item : CrossPlatformStuff.registryItems().getIterator()) { + for (Item item : CrossPlatformStuff.instance().registryItems().getIterator()) { itemPermissionBuilder.entrySet().stream().filter(e -> e.getKey().test(item)).map(Map.Entry::getValue).findFirst().ifPresent(sub -> itemToPermission.put(item, sub.get())); } for (String s : ConfigHandler.config.itemPermission) { @@ -77,9 +77,9 @@ public class ObjectToPermissionMap { } } else { if (remove) - itemToPermission.remove(CrossPlatformStuff.registryItems().getFromId(new ResourceLocation(sub[0]))); + itemToPermission.remove(CrossPlatformStuff.instance().registryItems().getFromId(new ResourceLocation(sub[0]))); else - itemToPermission.put(CrossPlatformStuff.registryItems().getFromId(new ResourceLocation(sub[0])), PermissionRegistry.get(sub[1])); + itemToPermission.put(CrossPlatformStuff.instance().registryItems().getFromId(new ResourceLocation(sub[0])), PermissionRegistry.get(sub[1])); } } for (String s : ConfigHandler.config.blockPermission) { @@ -96,9 +96,9 @@ public class ObjectToPermissionMap { }); } else { if (remove) - blockToPermission.remove(CrossPlatformStuff.registryBlocks().getFromId(new ResourceLocation(sub[0]))); + blockToPermission.remove(CrossPlatformStuff.instance().registryBlocks().getFromId(new ResourceLocation(sub[0]))); else - blockToPermission.put(CrossPlatformStuff.registryBlocks().getFromId(new ResourceLocation(sub[0])), PermissionRegistry.get(sub[1])); + blockToPermission.put(CrossPlatformStuff.instance().registryBlocks().getFromId(new ResourceLocation(sub[0])), PermissionRegistry.get(sub[1])); } } } 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 e14be4f..600a182 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 @@ -6,13 +6,14 @@ 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; import io.github.flemmli97.flan.api.permission.ClaimPermission; import io.github.flemmli97.flan.api.permission.PermissionRegistry; import io.github.flemmli97.flan.config.Config; import io.github.flemmli97.flan.config.ConfigHandler; +import io.github.flemmli97.flan.platform.ClaimPermissionCheck; +import io.github.flemmli97.flan.platform.CrossPlatformStuff; import io.github.flemmli97.flan.player.LogoutTracker; import io.github.flemmli97.flan.player.PlayerClaimData; import net.minecraft.ChatFormatting; @@ -267,7 +268,7 @@ public class Claim implements IPermissionContainer { perm = PermissionRegistry.FAKEPLAYER; } } - InteractionResult res = ClaimPermissionCheck.check(player, perm, pos); + InteractionResult res = ClaimPermissionCheck.instance().check(player, perm, pos); if (res != InteractionResult.PASS) return res != InteractionResult.FAIL; if (perm != null) { @@ -633,7 +634,7 @@ public class Claim implements IPermissionContainer { else this.leaveSubtitle = null; JsonObject potion = ConfigHandler.fromJson(obj, "Potions"); - potion.entrySet().forEach(e -> this.potions.put(CrossPlatformStuff.registryStatusEffects().getFromId(new ResourceLocation(e.getKey())), e.getValue().getAsInt())); + potion.entrySet().forEach(e -> this.potions.put(CrossPlatformStuff.instance().registryStatusEffects().getFromId(new ResourceLocation(e.getKey())), e.getValue().getAsInt())); if (ConfigHandler.fromJson(obj, "AdminClaim", false)) this.owner = null; else @@ -703,7 +704,7 @@ public class Claim implements IPermissionContainer { obj.addProperty("LeaveTitle", this.leaveTitle == null ? "" : Component.Serializer.toJson(this.leaveTitle)); obj.addProperty("LeaveSubtitle", this.leaveSubtitle == null ? "" : Component.Serializer.toJson(this.leaveSubtitle)); JsonObject potions = new JsonObject(); - this.potions.forEach((effect, amp) -> potions.addProperty(CrossPlatformStuff.registryStatusEffects().getIDFrom(effect).toString(), amp)); + this.potions.forEach((effect, amp) -> potions.addProperty(CrossPlatformStuff.instance().registryStatusEffects().getIDFrom(effect).toString(), amp)); obj.add("Potions", potions); if (this.parent != null) obj.addProperty("Parent", this.parent.toString()); diff --git a/common/src/main/java/io/github/flemmli97/flan/claim/ClaimPermissionCheck.java b/common/src/main/java/io/github/flemmli97/flan/claim/ClaimPermissionCheck.java deleted file mode 100644 index 0233bd9..0000000 --- a/common/src/main/java/io/github/flemmli97/flan/claim/ClaimPermissionCheck.java +++ /dev/null @@ -1,15 +0,0 @@ -package io.github.flemmli97.flan.claim; - -import dev.architectury.injectables.annotations.ExpectPlatform; -import io.github.flemmli97.flan.api.permission.ClaimPermission; -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.InteractionResult; - -public class ClaimPermissionCheck { - - @ExpectPlatform - public static InteractionResult check(ServerPlayer player, ClaimPermission permission, BlockPos pos) { - throw new AssertionError(); - } -} 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 2c890b2..b6b850e 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 @@ -14,7 +14,7 @@ import io.github.flemmli97.flan.api.data.IPlayerData; import io.github.flemmli97.flan.api.permission.ClaimPermission; import io.github.flemmli97.flan.api.permission.PermissionRegistry; import io.github.flemmli97.flan.config.ConfigHandler; -import io.github.flemmli97.flan.integration.permissions.PermissionNodeHandler; +import io.github.flemmli97.flan.platform.integration.permissions.PermissionNodeHandler; import io.github.flemmli97.flan.player.EnumDisplayType; import io.github.flemmli97.flan.player.EnumEditMode; import io.github.flemmli97.flan.player.OfflinePlayerData; @@ -90,7 +90,7 @@ public class ClaimStorage implements IPermissionStorage { player.displayClientMessage(PermHelper.simpleColoredText(String.format(ConfigHandler.langManager.get("minClaimSize"), ConfigHandler.config.minClaimsize), ChatFormatting.RED), false); 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)) { + if (!data.isAdminIgnoreClaim() && ConfigHandler.config.maxClaims != -1 && !PermissionNodeHandler.instance().permBelowEqVal(player, PermissionNodeHandler.permMaxClaims, this.playerClaimMap.getOrDefault(player.getUUID(), Sets.newHashSet()).size() + 1, ConfigHandler.config.maxClaims)) { player.displayClientMessage(PermHelper.simpleColoredText(ConfigHandler.langManager.get("maxClaims"), ChatFormatting.RED), false); return false; } 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 4956693..4e5d214 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 @@ -18,7 +18,7 @@ import io.github.flemmli97.flan.claim.PermHelper; import io.github.flemmli97.flan.config.ConfigHandler; import io.github.flemmli97.flan.gui.ClaimMenuScreenHandler; import io.github.flemmli97.flan.gui.PersonalGroupScreenHandler; -import io.github.flemmli97.flan.integration.permissions.PermissionNodeHandler; +import io.github.flemmli97.flan.platform.integration.permissions.PermissionNodeHandler; import io.github.flemmli97.flan.player.EnumDisplayType; import io.github.flemmli97.flan.player.EnumEditMode; import io.github.flemmli97.flan.player.OfflinePlayerData; @@ -52,46 +52,46 @@ public class CommandClaim { public static void register(CommandDispatcher dispatcher, boolean dedicated) { LiteralArgumentBuilder builder = Commands.literal("flan") - .then(Commands.literal("reload").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdReload, true)).executes(CommandClaim::reloadConfig)) - .then(Commands.literal("addClaim").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.claimCreate)) + .then(Commands.literal("reload").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdReload, true)).executes(CommandClaim::reloadConfig)) + .then(Commands.literal("addClaim").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.claimCreate)) .then(Commands.argument("from", BlockPosArgument.blockPos()).then(Commands.argument("to", BlockPosArgument.blockPos()).executes(CommandClaim::addClaim))) .then(Commands.literal("all").executes(CommandClaim::addClaimAll)) .then(Commands.literal("rect").then(Commands.argument("x", IntegerArgumentType.integer()).then(Commands.argument("z", IntegerArgumentType.integer()).executes(ctx -> CommandClaim.addClaimRect(ctx, IntegerArgumentType.getInteger(ctx, "x"), IntegerArgumentType.getInteger(ctx, "z"))))))) - .then(Commands.literal("menu").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdMenu)).executes(CommandClaim::openMenu)) - .then(Commands.literal("setHome").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdHome)).executes(CommandClaim::setClaimHome)) - .then(Commands.literal("trapped").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdTrapped)).executes(CommandClaim::trapped)) - .then(Commands.literal("name").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdName)).then(Commands.argument("name", StringArgumentType.string()).executes(CommandClaim::nameClaim))) + .then(Commands.literal("menu").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdMenu)).executes(CommandClaim::openMenu)) + .then(Commands.literal("setHome").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdHome)).executes(CommandClaim::setClaimHome)) + .then(Commands.literal("trapped").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdTrapped)).executes(CommandClaim::trapped)) + .then(Commands.literal("name").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdName)).then(Commands.argument("name", StringArgumentType.string()).executes(CommandClaim::nameClaim))) .then(Commands.literal("unlockDrops").executes(CommandClaim::unlockDrops) - .then(Commands.argument("players", GameProfileArgument.gameProfile()).requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdUnlockAll, true)).executes(CommandClaim::unlockDropsPlayers))) - .then(Commands.literal("personalGroups").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdPGroup)).executes(CommandClaim::openPersonalGroups)) - .then(Commands.literal("claimInfo").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdInfo)).executes(ctx -> CommandClaim.claimInfo(ctx, Claim.InfoType.ALL)) + .then(Commands.argument("players", GameProfileArgument.gameProfile()).requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdUnlockAll, true)).executes(CommandClaim::unlockDropsPlayers))) + .then(Commands.literal("personalGroups").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdPGroup)).executes(CommandClaim::openPersonalGroups)) + .then(Commands.literal("claimInfo").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdInfo)).executes(ctx -> CommandClaim.claimInfo(ctx, Claim.InfoType.ALL)) .then(Commands.argument("type", StringArgumentType.word()).suggests((src, b) -> CommandHelpers.enumSuggestion(Claim.InfoType.class, b)).executes(CommandClaim::claimInfo))) - .then(Commands.literal("transferClaim").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdTransfer)).then(Commands.argument("player", GameProfileArgument.gameProfile()).executes(CommandClaim::transferClaim))) - .then(Commands.literal("delete").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdTransfer)).executes(CommandClaim::deleteClaim)) - .then(Commands.literal("deleteAll").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdTransfer)).executes(CommandClaim::deleteAllClaim)) - .then(Commands.literal("deleteSubClaim").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdTransfer)).executes(CommandClaim::deleteSubClaim)) - .then(Commands.literal("deleteAllSubClaims").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdTransfer)).executes(CommandClaim::deleteAllSubClaim)) - .then(Commands.literal("list").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdList)).executes(CommandClaim::listClaims).then(Commands.argument("player", GameProfileArgument.gameProfile()).requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdListAll, true)) + .then(Commands.literal("transferClaim").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdTransfer)).then(Commands.argument("player", GameProfileArgument.gameProfile()).executes(CommandClaim::transferClaim))) + .then(Commands.literal("delete").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdTransfer)).executes(CommandClaim::deleteClaim)) + .then(Commands.literal("deleteAll").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdTransfer)).executes(CommandClaim::deleteAllClaim)) + .then(Commands.literal("deleteSubClaim").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdTransfer)).executes(CommandClaim::deleteSubClaim)) + .then(Commands.literal("deleteAllSubClaims").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdTransfer)).executes(CommandClaim::deleteAllSubClaim)) + .then(Commands.literal("list").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdList)).executes(CommandClaim::listClaims).then(Commands.argument("player", GameProfileArgument.gameProfile()).requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdListAll, true)) .executes(cmd -> listClaims(cmd, GameProfileArgument.getGameProfiles(cmd, "player"))))) - .then(Commands.literal("switchMode").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdClaimMode)).executes(CommandClaim::switchClaimMode)) - .then(Commands.literal("adminMode").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdAdminMode, true)).executes(CommandClaim::switchAdminMode)) - .then(Commands.literal("readGriefPrevention").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdGriefPrevention, true)).executes(CommandClaim::readGriefPreventionData)) - .then(Commands.literal("setAdminClaim").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdAdminSet, true)).then(Commands.argument("toggle", BoolArgumentType.bool()).executes(CommandClaim::toggleAdminClaim))) - .then(Commands.literal("listAdminClaims").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdAdminList, true)).executes(CommandClaim::listAdminClaims)) - .then(Commands.literal("adminDelete").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdAdminDelete, true)).executes(CommandClaim::adminDelete) + .then(Commands.literal("switchMode").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdClaimMode)).executes(CommandClaim::switchClaimMode)) + .then(Commands.literal("adminMode").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdAdminMode, true)).executes(CommandClaim::switchAdminMode)) + .then(Commands.literal("readGriefPrevention").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdGriefPrevention, true)).executes(CommandClaim::readGriefPreventionData)) + .then(Commands.literal("setAdminClaim").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdAdminSet, true)).then(Commands.argument("toggle", BoolArgumentType.bool()).executes(CommandClaim::toggleAdminClaim))) + .then(Commands.literal("listAdminClaims").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdAdminList, true)).executes(CommandClaim::listAdminClaims)) + .then(Commands.literal("adminDelete").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdAdminDelete, true)).executes(CommandClaim::adminDelete) .then(Commands.literal("all").then(Commands.argument("players", GameProfileArgument.gameProfile()) .executes(CommandClaim::adminDeleteAll)))) - .then(Commands.literal("giveClaimBlocks").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdAdminGive, true)).then(Commands.argument("players", GameProfileArgument.gameProfile()) + .then(Commands.literal("giveClaimBlocks").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdAdminGive, true)).then(Commands.argument("players", GameProfileArgument.gameProfile()) .then(Commands.argument("amount", IntegerArgumentType.integer()).executes(CommandClaim::giveClaimBlocks)))) - .then(Commands.literal("buyBlocks").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdBuy, false)) + .then(Commands.literal("buyBlocks").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdBuy, false)) .then(Commands.argument("amount", IntegerArgumentType.integer()).executes(CommandClaim::buyClaimBlocks))) - .then(Commands.literal("sellBlocks").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdSell, false)) + .then(Commands.literal("sellBlocks").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdSell, false)) .then(Commands.argument("amount", IntegerArgumentType.integer()).executes(CommandClaim::sellClaimBlocks))) .then(Commands.literal("claimMessage").then(Commands.argument("type", StringArgumentType.word()).suggests((ctx, b) -> SharedSuggestionProvider.suggest(new String[]{"enter", "leave"}, b)) .then(Commands.argument("title", StringArgumentType.word()).suggests((ctx, b) -> SharedSuggestionProvider.suggest(new String[]{"title", "subtitle"}, b)) .then(Commands.literal("text").then(Commands.argument("component", ComponentArgument.textComponent()).executes(ctx -> CommandClaim.editClaimMessages(ctx, ComponentArgument.getComponent(ctx, "component"))))) .then(Commands.literal("string").then(Commands.argument("message", StringArgumentType.string()).executes(CommandClaim::editClaimMessages)))))) - .then(Commands.literal("group").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdGroup)) + .then(Commands.literal("group").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdGroup)) .then(Commands.literal("add").then(Commands.argument("group", StringArgumentType.string()).executes(CommandClaim::addGroup))) .then(Commands.literal("remove").then(Commands.argument("group", StringArgumentType.string()) .suggests(CommandHelpers::groupSuggestion).executes(CommandClaim::removeGroup))) @@ -111,14 +111,14 @@ public class CommandClaim { } return SharedSuggestionProvider.suggest(list, build); }).executes(CommandClaim::removePlayer)))))) - .then(Commands.literal("teleport").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdTeleport)) + .then(Commands.literal("teleport").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdTeleport)) .then(Commands.literal("self").then(Commands.argument("claim", StringArgumentType.string()).suggests((ctx, b) -> CommandHelpers.claimSuggestions(ctx, b, ctx.getSource().getPlayerOrException().getUUID())) .executes(CommandClaim::teleport))) .then(Commands.literal("admin").then(Commands.argument("claim", StringArgumentType.string()).suggests((ctx, b) -> CommandHelpers.claimSuggestions(ctx, b, null)) .executes(CommandClaim::teleportAdminClaims))) .then(Commands.literal("other").then(Commands.argument("player", GameProfileArgument.gameProfile()).then(Commands.argument("claim", StringArgumentType.string()).suggests((ctx, b) -> CommandHelpers.claimSuggestions(ctx, b, CommandHelpers.singleProfile(ctx, "player").getId())) .executes(src -> CommandClaim.teleport(src, CommandHelpers.singleProfile(src, "player").getId())))))) - .then(Commands.literal("permission").requires(src -> PermissionNodeHandler.perm(src, PermissionNodeHandler.cmdPermission)) + .then(Commands.literal("permission").requires(src -> PermissionNodeHandler.instance().perm(src, PermissionNodeHandler.cmdPermission)) .then(Commands.literal("personal").then(Commands.argument("group", StringArgumentType.string()).suggests(CommandHelpers::personalGroupSuggestion) .then(Commands.argument("permission", StringArgumentType.word()).suggests((ctx, b) -> CommandHelpers.permSuggestions(ctx, b, true)) .then(Commands.argument("toggle", StringArgumentType.word()) @@ -194,7 +194,7 @@ public class CommandClaim { } if (!enoughBlocks) { player.displayClientMessage(PermHelper.simpleColoredText(ConfigHandler.langManager.get("ownerTransferNoBlocks"), ChatFormatting.RED), false); - if (PermissionNodeHandler.perm(context.getSource(), PermissionNodeHandler.cmdAdminMode, true)) + if (PermissionNodeHandler.instance().perm(context.getSource(), PermissionNodeHandler.cmdAdminMode, true)) player.displayClientMessage(PermHelper.simpleColoredText(ConfigHandler.langManager.get("ownerTransferNoBlocksAdmin"), ChatFormatting.RED), false); return 0; } diff --git a/common/src/main/java/io/github/flemmli97/flan/config/BuySellHandler.java b/common/src/main/java/io/github/flemmli97/flan/config/BuySellHandler.java index 60ce8b4..41add49 100644 --- a/common/src/main/java/io/github/flemmli97/flan/config/BuySellHandler.java +++ b/common/src/main/java/io/github/flemmli97/flan/config/BuySellHandler.java @@ -3,7 +3,7 @@ package io.github.flemmli97.flan.config; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; import io.github.flemmli97.flan.claim.PermHelper; -import io.github.flemmli97.flan.integration.currency.CommandCurrency; +import io.github.flemmli97.flan.platform.integration.currency.CommandCurrency; import io.github.flemmli97.flan.player.PlayerClaimData; import net.minecraft.ChatFormatting; import net.minecraft.nbt.CompoundTag; @@ -44,7 +44,7 @@ public class BuySellHandler { } switch (this.buyType) { case MONEY -> { - return CommandCurrency.buyClaimBlocks(player, blocks, this.buyAmount, message); + return CommandCurrency.instance().buyClaimBlocks(player, blocks, this.buyAmount, message); } case ITEM -> { int deduct = Mth.ceil(blocks * this.buyAmount); @@ -111,7 +111,7 @@ public class BuySellHandler { } switch (this.sellType) { case MONEY -> { - return CommandCurrency.sellClaimBlocks(player, blocks, this.sellAmount, message); + return CommandCurrency.instance().sellClaimBlocks(player, blocks, this.sellAmount, message); } case ITEM -> { ItemStack[] stacks = this.ingredient.getItems(); diff --git a/common/src/main/java/io/github/flemmli97/flan/config/Config.java b/common/src/main/java/io/github/flemmli97/flan/config/Config.java index 058bbc7..d37da9c 100644 --- a/common/src/main/java/io/github/flemmli97/flan/config/Config.java +++ b/common/src/main/java/io/github/flemmli97/flan/config/Config.java @@ -3,10 +3,10 @@ package io.github.flemmli97.flan.config; import com.google.common.collect.Lists; import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import io.github.flemmli97.flan.CrossPlatformStuff; import io.github.flemmli97.flan.Flan; import io.github.flemmli97.flan.api.permission.ClaimPermission; import io.github.flemmli97.flan.api.permission.PermissionRegistry; +import io.github.flemmli97.flan.platform.CrossPlatformStuff; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; @@ -124,7 +124,7 @@ public class Config { }))); public Config(MinecraftServer server) { - File configDir = CrossPlatformStuff.configPath().resolve("flan").toFile(); + File configDir = CrossPlatformStuff.instance().configPath().resolve("flan").toFile(); try { if (!configDir.exists()) configDir.mkdirs(); @@ -162,9 +162,9 @@ public class Config { this.worldWhitelist = ConfigHandler.fromJson(obj, "worldWhitelist", this.worldWhitelist); if (obj.has("claimingItem")) - this.claimingItem = CrossPlatformStuff.registryItems().getFromId(new ResourceLocation((obj.get("claimingItem").getAsString()))); + this.claimingItem = CrossPlatformStuff.instance().registryItems().getFromId(new ResourceLocation((obj.get("claimingItem").getAsString()))); if (obj.has("inspectionItem")) - this.inspectionItem = CrossPlatformStuff.registryItems().getFromId(new ResourceLocation((obj.get("inspectionItem").getAsString()))); + this.inspectionItem = CrossPlatformStuff.instance().registryItems().getFromId(new ResourceLocation((obj.get("inspectionItem").getAsString()))); this.claimDisplayTime = ConfigHandler.fromJson(obj, "claimDisplayTime", this.claimDisplayTime); this.permissionLevel = ConfigHandler.fromJson(obj, "permissionLevel", this.permissionLevel); @@ -259,8 +259,8 @@ public class Config { obj.add("blacklistedWorlds", arr); obj.addProperty("worldWhitelist", this.worldWhitelist); - obj.addProperty("claimingItem", CrossPlatformStuff.registryItems().getIDFrom(this.claimingItem).toString()); - obj.addProperty("inspectionItem", CrossPlatformStuff.registryItems().getIDFrom(this.inspectionItem).toString()); + obj.addProperty("claimingItem", CrossPlatformStuff.instance().registryItems().getIDFrom(this.claimingItem).toString()); + obj.addProperty("inspectionItem", CrossPlatformStuff.instance().registryItems().getIDFrom(this.inspectionItem).toString()); obj.addProperty("claimDisplayTime", this.claimDisplayTime); obj.addProperty("permissionLevel", this.permissionLevel); diff --git a/common/src/main/java/io/github/flemmli97/flan/config/LangManager.java b/common/src/main/java/io/github/flemmli97/flan/config/LangManager.java index 8df29d5..c862b5d 100644 --- a/common/src/main/java/io/github/flemmli97/flan/config/LangManager.java +++ b/common/src/main/java/io/github/flemmli97/flan/config/LangManager.java @@ -4,9 +4,9 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; import com.google.gson.JsonObject; -import io.github.flemmli97.flan.CrossPlatformStuff; import io.github.flemmli97.flan.api.permission.ClaimPermission; import io.github.flemmli97.flan.api.permission.PermissionRegistry; +import io.github.flemmli97.flan.platform.CrossPlatformStuff; import java.io.File; import java.io.FileOutputStream; @@ -229,7 +229,7 @@ public class LangManager { public LangManager() { this.loadDefault(); - Path configDir = CrossPlatformStuff.configPath().resolve("flan").resolve("lang"); + Path configDir = CrossPlatformStuff.instance().configPath().resolve("flan").resolve("lang"); this.confDir = configDir; try { File dir = configDir.toFile(); @@ -261,7 +261,7 @@ public class LangManager { } File def = configDir.resolve("en_us.json").toFile(); if (!def.exists()) { - File legacy = CrossPlatformStuff.configPath().resolve("flan").resolve("flan_lang.json").toFile(); + File legacy = CrossPlatformStuff.instance().configPath().resolve("flan").resolve("flan_lang.json").toFile(); Map translation; Map translationArr; if (legacy.exists()) { 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 9bb9cf2..8f2fc4a 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 @@ -1,6 +1,5 @@ package io.github.flemmli97.flan.event; -import io.github.flemmli97.flan.CrossPlatformStuff; import io.github.flemmli97.flan.api.data.IPermissionContainer; import io.github.flemmli97.flan.api.permission.ClaimPermission; import io.github.flemmli97.flan.api.permission.ObjectToPermissionMap; @@ -8,6 +7,7 @@ import io.github.flemmli97.flan.api.permission.PermissionRegistry; import io.github.flemmli97.flan.claim.ClaimStorage; import io.github.flemmli97.flan.config.ConfigHandler; import io.github.flemmli97.flan.gui.LockedLecternScreenHandler; +import io.github.flemmli97.flan.platform.CrossPlatformStuff; import io.github.flemmli97.flan.player.EnumDisplayType; import io.github.flemmli97.flan.player.PlayerClaimData; import net.minecraft.core.BlockPos; @@ -47,7 +47,7 @@ public class BlockInteractEvents { ClaimStorage storage = ClaimStorage.get((ServerLevel) world); IPermissionContainer claim = storage.getForPermissionCheck(pos); if (claim != null) { - ResourceLocation id = CrossPlatformStuff.registryBlocks().getIDFrom(state.getBlock()); + ResourceLocation id = CrossPlatformStuff.instance().registryBlocks().getIDFrom(state.getBlock()); if (contains(id, world.getBlockEntity(pos), ConfigHandler.config.breakBlockBlacklist, ConfigHandler.config.breakBETagBlacklist)) return true; if (!claim.canInteract(player, PermissionRegistry.BREAK, pos, true)) { @@ -75,7 +75,7 @@ public class BlockInteractEvents { IPermissionContainer claim = storage.getForPermissionCheck(hitResult.getBlockPos()); if (claim != null) { BlockState state = world.getBlockState(hitResult.getBlockPos()); - ResourceLocation id = CrossPlatformStuff.registryBlocks().getIDFrom(state.getBlock()); + ResourceLocation id = CrossPlatformStuff.instance().registryBlocks().getIDFrom(state.getBlock()); BlockEntity blockEntity = world.getBlockEntity(hitResult.getBlockPos()); if (contains(id, blockEntity, ConfigHandler.config.interactBlockBlacklist, ConfigHandler.config.interactBETagBlacklist)) return InteractionResult.PASS; @@ -107,7 +107,7 @@ public class BlockInteractEvents { LockedLecternScreenHandler.create(player, (LecternBlockEntity) blockEntity); return InteractionResult.FAIL; } - if (!ConfigHandler.config.lenientBlockEntityCheck || CrossPlatformStuff.isInventoryTile(blockEntity)) { + if (!ConfigHandler.config.lenientBlockEntityCheck || CrossPlatformStuff.instance().isInventoryTile(blockEntity)) { if (claim.canInteract(player, PermissionRegistry.OPENCONTAINER, hitResult.getBlockPos(), true)) return InteractionResult.PASS; PlayerClaimData.get(player).addDisplayClaim(claim, EnumDisplayType.MAIN, player.blockPosition().getY()); @@ -129,7 +129,7 @@ public class BlockInteractEvents { return true; if (blockEntity != null && !tagList.isEmpty()) { CompoundTag nbt = blockEntity.saveWithoutMetadata(); - return tagList.stream().anyMatch(tag -> CrossPlatformStuff.blockDataContains(nbt, tag)); + return tagList.stream().anyMatch(tag -> CrossPlatformStuff.instance().blockDataContains(nbt, tag)); } return false; } 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 2150cfc..d17cdec 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 @@ -1,6 +1,5 @@ package io.github.flemmli97.flan.event; -import io.github.flemmli97.flan.CrossPlatformStuff; import io.github.flemmli97.flan.api.data.IPermissionContainer; import io.github.flemmli97.flan.api.permission.ClaimPermission; import io.github.flemmli97.flan.api.permission.ObjectToPermissionMap; @@ -10,6 +9,7 @@ import io.github.flemmli97.flan.claim.ClaimStorage; import io.github.flemmli97.flan.config.ConfigHandler; import io.github.flemmli97.flan.mixin.IHungerAccessor; import io.github.flemmli97.flan.mixin.IPersistentProjectileVars; +import io.github.flemmli97.flan.platform.CrossPlatformStuff; import io.github.flemmli97.flan.player.IOwnedItem; import io.github.flemmli97.flan.player.PlayerClaimData; import io.github.flemmli97.flan.player.TeleportUtils; @@ -105,7 +105,7 @@ public class EntityInteractEvents { } public static boolean canInteract(Entity entity) { - ResourceLocation id = CrossPlatformStuff.registryEntities().getIDFrom(entity.getType()); + ResourceLocation id = CrossPlatformStuff.instance().registryEntities().getIDFrom(entity.getType()); return ConfigHandler.config.ignoredEntityTypes.contains(id.getNamespace()) || ConfigHandler.config.ignoredEntityTypes.contains(id.toString()) || entity.getTags().stream().anyMatch(ConfigHandler.config.entityTagIgnore::contains); 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 b98dd63..df6261b 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 @@ -10,8 +10,8 @@ import io.github.flemmli97.flan.claim.Claim; import io.github.flemmli97.flan.claim.ClaimStorage; import io.github.flemmli97.flan.claim.PermHelper; import io.github.flemmli97.flan.config.ConfigHandler; -import io.github.flemmli97.flan.integration.permissions.PermissionNodeHandler; import io.github.flemmli97.flan.mixin.IItemAccessor; +import io.github.flemmli97.flan.platform.integration.permissions.PermissionNodeHandler; import io.github.flemmli97.flan.player.EnumDisplayType; import io.github.flemmli97.flan.player.EnumEditMode; import io.github.flemmli97.flan.player.PlayerClaimData; @@ -148,7 +148,7 @@ public class ItemInteractEvents { } public static void claimLandHandling(ServerPlayer player, BlockPos target) { - if (!PermissionNodeHandler.perm(player, PermissionNodeHandler.claimCreate, false)) { + if (!PermissionNodeHandler.instance().perm(player, PermissionNodeHandler.claimCreate, false)) { player.displayClientMessage(PermHelper.simpleColoredText(ConfigHandler.langManager.get("noPermission"), ChatFormatting.DARK_RED), true); return; } diff --git a/common/src/main/java/io/github/flemmli97/flan/gui/PotionEditScreenHandler.java b/common/src/main/java/io/github/flemmli97/flan/gui/PotionEditScreenHandler.java index c81f676..00c3eb3 100644 --- a/common/src/main/java/io/github/flemmli97/flan/gui/PotionEditScreenHandler.java +++ b/common/src/main/java/io/github/flemmli97/flan/gui/PotionEditScreenHandler.java @@ -1,11 +1,11 @@ package io.github.flemmli97.flan.gui; import com.google.common.collect.Lists; -import io.github.flemmli97.flan.CrossPlatformStuff; import io.github.flemmli97.flan.claim.Claim; import io.github.flemmli97.flan.claim.PermHelper; import io.github.flemmli97.flan.config.ConfigHandler; import io.github.flemmli97.flan.gui.inv.SeparateInv; +import io.github.flemmli97.flan.platform.CrossPlatformStuff; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TranslatableComponent; @@ -60,7 +60,7 @@ public class PotionEditScreenHandler extends ServerOnlyScreenHandler { protected void fillInventoryWith(Player player, SeparateInv inv, Claim claim) { Map potions = claim.getPotions(); List key = Lists.newArrayList(potions.keySet()); - key.sort(Comparator.comparing(eff -> CrossPlatformStuff.registryStatusEffects().getIDFrom(eff).toString())); + key.sort(Comparator.comparing(eff -> CrossPlatformStuff.instance().registryStatusEffects().getIDFrom(eff).toString())); for (int i = 0; i < 54; i++) { if (i == 0) { ItemStack close = new ItemStack(Items.TNT); @@ -84,7 +84,7 @@ public class PotionEditScreenHandler extends ServerOnlyScreenHandler { ItemStack effectStack = new ItemStack(Items.POTION); TranslatableComponent txt = new TranslatableComponent(effect.getDescriptionId()); Collection inst = Collections.singleton(new MobEffectInstance(effect, 0, potions.get(effect))); - effectStack.getOrCreateTag().putString("FlanEffect", CrossPlatformStuff.registryStatusEffects().getIDFrom(effect).toString()); + effectStack.getOrCreateTag().putString("FlanEffect", CrossPlatformStuff.instance().registryStatusEffects().getIDFrom(effect).toString()); effectStack.getTag().putInt("CustomPotionColor", PotionUtils.getColor(inst)); effectStack.setHoverName(txt.setStyle(txt.getStyle().withItalic(false).applyFormat(ChatFormatting.DARK_BLUE)).append(ServerScreenHelper.coloredGuiText("-" + potions.get(effect), ChatFormatting.DARK_BLUE))); inv.updateStack(i, effectStack); @@ -111,7 +111,7 @@ public class PotionEditScreenHandler extends ServerOnlyScreenHandler { player.getServer().execute(() -> StringResultScreenHandler.createNewStringResult(player, (s) -> { String[] potion = s.split(";"); int amp = 1; - MobEffect effect = CrossPlatformStuff.registryStatusEffects().getFromId(new ResourceLocation(potion[0])); + MobEffect effect = CrossPlatformStuff.instance().registryStatusEffects().getFromId(new ResourceLocation(potion[0])); if (effect == null || (effect == MobEffects.LUCK && !potion[0].equals("minecraft:luck"))) { ServerScreenHelper.playSongToPlayer(player, SoundEvents.VILLAGER_NO, 1, 1f); return; @@ -145,7 +145,7 @@ public class PotionEditScreenHandler extends ServerOnlyScreenHandler { ItemStack stack = slot.getItem(); if (!stack.isEmpty() && this.removeMode) { String effect = stack.getOrCreateTag().getString("FlanEffect"); - this.claim.removePotion(CrossPlatformStuff.registryStatusEffects().getFromId(new ResourceLocation(effect))); + this.claim.removePotion(CrossPlatformStuff.instance().registryStatusEffects().getFromId(new ResourceLocation(effect))); slot.set(ItemStack.EMPTY); ServerScreenHelper.playSongToPlayer(player, SoundEvents.BAT_DEATH, 1, 1f); } diff --git a/common/src/main/java/io/github/flemmli97/flan/integration/currency/CommandCurrency.java b/common/src/main/java/io/github/flemmli97/flan/integration/currency/CommandCurrency.java deleted file mode 100644 index 8767969..0000000 --- a/common/src/main/java/io/github/flemmli97/flan/integration/currency/CommandCurrency.java +++ /dev/null @@ -1,20 +0,0 @@ -package io.github.flemmli97.flan.integration.currency; - -import dev.architectury.injectables.annotations.ExpectPlatform; -import net.minecraft.network.chat.Component; -import net.minecraft.server.level.ServerPlayer; - -import java.util.function.Consumer; - -public class CommandCurrency { - - @ExpectPlatform - public static boolean sellClaimBlocks(ServerPlayer player, int blocks, float value, Consumer message) { - throw new AssertionError(); - } - - @ExpectPlatform - public static boolean buyClaimBlocks(ServerPlayer player, int blocks, float value, Consumer message) { - throw new AssertionError(); - } -} diff --git a/common/src/main/java/io/github/flemmli97/flan/platform/ClaimPermissionCheck.java b/common/src/main/java/io/github/flemmli97/flan/platform/ClaimPermissionCheck.java new file mode 100644 index 0000000..6ac0363 --- /dev/null +++ b/common/src/main/java/io/github/flemmli97/flan/platform/ClaimPermissionCheck.java @@ -0,0 +1,17 @@ +package io.github.flemmli97.flan.platform; + +import io.github.flemmli97.flan.api.permission.ClaimPermission; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionResult; + +public abstract class ClaimPermissionCheck { + + protected static ClaimPermissionCheck INSTANCE; + + public static ClaimPermissionCheck instance() { + return INSTANCE; + } + + public abstract InteractionResult check(ServerPlayer player, ClaimPermission permission, BlockPos pos); +} diff --git a/common/src/main/java/io/github/flemmli97/flan/platform/CrossPlatformStuff.java b/common/src/main/java/io/github/flemmli97/flan/platform/CrossPlatformStuff.java new file mode 100644 index 0000000..9714a84 --- /dev/null +++ b/common/src/main/java/io/github/flemmli97/flan/platform/CrossPlatformStuff.java @@ -0,0 +1,34 @@ +package io.github.flemmli97.flan.platform; + +import io.github.flemmli97.flan.SimpleRegistryWrapper; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; + +import java.nio.file.Path; + +public abstract class CrossPlatformStuff { + + protected static CrossPlatformStuff INSTANCE; + + public static CrossPlatformStuff instance() { + return INSTANCE; + } + + public abstract Path configPath(); + + public abstract SimpleRegistryWrapper registryStatusEffects(); + + public abstract SimpleRegistryWrapper registryBlocks(); + + public abstract SimpleRegistryWrapper registryItems(); + + public abstract SimpleRegistryWrapper> registryEntities(); + + public abstract boolean isInventoryTile(BlockEntity blockEntity); + + public abstract boolean blockDataContains(CompoundTag nbt, String tag); +} diff --git a/common/src/main/java/io/github/flemmli97/flan/platform/integration/currency/CommandCurrency.java b/common/src/main/java/io/github/flemmli97/flan/platform/integration/currency/CommandCurrency.java new file mode 100644 index 0000000..d439699 --- /dev/null +++ b/common/src/main/java/io/github/flemmli97/flan/platform/integration/currency/CommandCurrency.java @@ -0,0 +1,19 @@ +package io.github.flemmli97.flan.platform.integration.currency; + +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; + +import java.util.function.Consumer; + +public abstract class CommandCurrency { + + protected static CommandCurrency INSTANCE; + + public static CommandCurrency instance() { + return INSTANCE; + } + + public abstract boolean sellClaimBlocks(ServerPlayer player, int blocks, float value, Consumer message); + + public abstract boolean buyClaimBlocks(ServerPlayer player, int blocks, float value, Consumer message); +} diff --git a/common/src/main/java/io/github/flemmli97/flan/integration/permissions/PermissionNodeHandler.java b/common/src/main/java/io/github/flemmli97/flan/platform/integration/permissions/PermissionNodeHandler.java similarity index 76% rename from common/src/main/java/io/github/flemmli97/flan/integration/permissions/PermissionNodeHandler.java rename to common/src/main/java/io/github/flemmli97/flan/platform/integration/permissions/PermissionNodeHandler.java index 881994f..ca200a8 100644 --- a/common/src/main/java/io/github/flemmli97/flan/integration/permissions/PermissionNodeHandler.java +++ b/common/src/main/java/io/github/flemmli97/flan/platform/integration/permissions/PermissionNodeHandler.java @@ -1,10 +1,9 @@ -package io.github.flemmli97.flan.integration.permissions; +package io.github.flemmli97.flan.platform.integration.permissions; -import dev.architectury.injectables.annotations.ExpectPlatform; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerPlayer; -public class PermissionNodeHandler { +public abstract class PermissionNodeHandler { public static final String cmdReload = "flan.command.reload"; public static final String cmdGriefPrevention = "flan.command.read.griefprevention"; @@ -47,22 +46,19 @@ public class PermissionNodeHandler { public static final String permClaimBlocks = "flan.claim.blocks.max"; public static final String permMaxClaims = "flan.claims.amount"; - public static boolean perm(CommandSourceStack src, String perm) { + protected static PermissionNodeHandler INSTANCE; + + public static PermissionNodeHandler instance() { + return INSTANCE; + } + + public boolean perm(CommandSourceStack src, String perm) { return perm(src, perm, false); } - @ExpectPlatform - public static boolean perm(CommandSourceStack src, String perm, boolean adminCmd) { - throw new AssertionError(); - } + public abstract boolean perm(CommandSourceStack src, String perm, boolean adminCmd); - @ExpectPlatform - public static boolean perm(ServerPlayer src, String perm, boolean adminCmd) { - throw new AssertionError(); - } + public abstract boolean perm(ServerPlayer src, String perm, boolean adminCmd); - @ExpectPlatform - public static boolean permBelowEqVal(ServerPlayer src, String perm, int val, int fallback) { - throw new AssertionError(); - } + public abstract boolean permBelowEqVal(ServerPlayer src, String perm, int val, int fallback); } \ No newline at end of file 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 560f087..c678f7d 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 @@ -14,7 +14,7 @@ import io.github.flemmli97.flan.claim.ParticleIndicators; import io.github.flemmli97.flan.claim.PermHelper; import io.github.flemmli97.flan.config.ConfigHandler; import io.github.flemmli97.flan.event.EntityInteractEvents; -import io.github.flemmli97.flan.integration.permissions.PermissionNodeHandler; +import io.github.flemmli97.flan.platform.integration.permissions.PermissionNodeHandler; import io.github.flemmli97.flan.scoreboard.ClaimCriterias; import net.minecraft.ChatFormatting; import net.minecraft.commands.CommandSourceStack; @@ -105,7 +105,7 @@ public class PlayerClaimData implements IPlayerData { } private boolean canIncrease(int blocks) { - return PermissionNodeHandler.permBelowEqVal(this.player, PermissionNodeHandler.permClaimBlocks, blocks, ConfigHandler.config.maxClaimBlocks); + return PermissionNodeHandler.instance().permBelowEqVal(this.player, PermissionNodeHandler.permClaimBlocks, blocks, ConfigHandler.config.maxClaimBlocks); } @Override diff --git a/fabric/src/main/java/io/github/flemmli97/flan/claim/fabric/ClaimPermissionCheckImpl.java b/fabric/src/main/java/io/github/flemmli97/flan/claim/fabric/ClaimPermissionCheckImpl.java deleted file mode 100644 index 4653dd7..0000000 --- a/fabric/src/main/java/io/github/flemmli97/flan/claim/fabric/ClaimPermissionCheckImpl.java +++ /dev/null @@ -1,14 +0,0 @@ -package io.github.flemmli97.flan.claim.fabric; - -import io.github.flemmli97.flan.api.fabric.PermissionCheckEvent; -import io.github.flemmli97.flan.api.permission.ClaimPermission; -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.InteractionResult; - -public class ClaimPermissionCheckImpl { - - public static InteractionResult check(ServerPlayer player, ClaimPermission permission, BlockPos pos) { - return PermissionCheckEvent.CHECK.invoker().check(player, permission, pos); - } -} diff --git a/fabric/src/main/java/io/github/flemmli97/flan/fabric/FlanFabric.java b/fabric/src/main/java/io/github/flemmli97/flan/fabric/FlanFabric.java index 088f560..e02fe3d 100644 --- a/fabric/src/main/java/io/github/flemmli97/flan/fabric/FlanFabric.java +++ b/fabric/src/main/java/io/github/flemmli97/flan/fabric/FlanFabric.java @@ -8,7 +8,11 @@ import io.github.flemmli97.flan.event.EntityInteractEvents; import io.github.flemmli97.flan.event.ItemInteractEvents; import io.github.flemmli97.flan.event.PlayerEvents; import io.github.flemmli97.flan.event.WorldEvents; -import io.github.flemmli97.flan.integration.playerability.PlayerAbilityEvents; +import io.github.flemmli97.flan.fabric.platform.ClaimPermissionCheckImpl; +import io.github.flemmli97.flan.fabric.platform.CrossPlatformStuffImpl; +import io.github.flemmli97.flan.fabric.platform.integration.currency.fabric.CommandCurrencyImpl; +import io.github.flemmli97.flan.fabric.platform.integration.permissions.fabric.PermissionNodeHandlerImpl; +import io.github.flemmli97.flan.fabric.platform.integration.playerability.PlayerAbilityEvents; import io.github.flemmli97.flan.player.PlayerDataHandler; import io.github.flemmli97.flan.scoreboard.ClaimCriterias; import net.fabricmc.api.ModInitializer; @@ -40,6 +44,10 @@ public class FlanFabric implements ModInitializer { @Override public void onInitialize() { + CrossPlatformStuffImpl.init(); + ClaimPermissionCheckImpl.init(); + CommandCurrencyImpl.init(); + PermissionNodeHandlerImpl.init(); PlayerBlockBreakEvents.BEFORE.register(BlockInteractEvents::breakBlocks); AttackBlockCallback.EVENT.register(BlockInteractEvents::startBreakBlocks); UseBlockCallback.EVENT.addPhaseOrdering(EventPhase, Event.DEFAULT_PHASE); diff --git a/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/ClaimPermissionCheckImpl.java b/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/ClaimPermissionCheckImpl.java new file mode 100644 index 0000000..66507ef --- /dev/null +++ b/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/ClaimPermissionCheckImpl.java @@ -0,0 +1,20 @@ +package io.github.flemmli97.flan.fabric.platform; + +import io.github.flemmli97.flan.api.fabric.PermissionCheckEvent; +import io.github.flemmli97.flan.api.permission.ClaimPermission; +import io.github.flemmli97.flan.platform.ClaimPermissionCheck; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionResult; + +public class ClaimPermissionCheckImpl extends ClaimPermissionCheck { + + public static void init() { + INSTANCE = new ClaimPermissionCheckImpl(); + } + + @Override + public InteractionResult check(ServerPlayer player, ClaimPermission permission, BlockPos pos) { + return PermissionCheckEvent.CHECK.invoker().check(player, permission, pos); + } +} diff --git a/fabric/src/main/java/io/github/flemmli97/flan/fabric/CrossPlatformStuffImpl.java b/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/CrossPlatformStuffImpl.java similarity index 55% rename from fabric/src/main/java/io/github/flemmli97/flan/fabric/CrossPlatformStuffImpl.java rename to fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/CrossPlatformStuffImpl.java index 265a93e..5bb4f48 100644 --- a/fabric/src/main/java/io/github/flemmli97/flan/fabric/CrossPlatformStuffImpl.java +++ b/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/CrossPlatformStuffImpl.java @@ -1,10 +1,11 @@ -package io.github.flemmli97.flan.fabric; +package io.github.flemmli97.flan.fabric.platform; import io.github.flemmli97.flan.SimpleRegistryWrapper; +import io.github.flemmli97.flan.fabric.FabricRegistryWrapper; +import io.github.flemmli97.flan.platform.CrossPlatformStuff; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.core.Registry; import net.minecraft.nbt.CompoundTag; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.Container; import net.minecraft.world.WorldlyContainerHolder; import net.minecraft.world.effect.MobEffect; @@ -15,41 +16,44 @@ import net.minecraft.world.level.block.entity.BlockEntity; import java.nio.file.Path; -public class CrossPlatformStuffImpl { +public class CrossPlatformStuffImpl extends CrossPlatformStuff { - public static Path configPath() { + public static void init() { + INSTANCE = new CrossPlatformStuffImpl(); + } + + @Override + public Path configPath() { return FabricLoader.getInstance().getConfigDir(); } - public static MobEffect effectFromString(String s) { - return Registry.MOB_EFFECT.get(new ResourceLocation(s)); - } - - public static String stringFromEffect(MobEffect s) { - return Registry.MOB_EFFECT.getKey(s).toString(); - } - - public static SimpleRegistryWrapper registryStatusEffects() { + @Override + public SimpleRegistryWrapper registryStatusEffects() { return new FabricRegistryWrapper<>(Registry.MOB_EFFECT); } - public static SimpleRegistryWrapper registryBlocks() { + @Override + public SimpleRegistryWrapper registryBlocks() { return new FabricRegistryWrapper<>(Registry.BLOCK); } - public static SimpleRegistryWrapper registryItems() { + @Override + public SimpleRegistryWrapper registryItems() { return new FabricRegistryWrapper<>(Registry.ITEM); } - public static SimpleRegistryWrapper> registryEntities() { + @Override + public SimpleRegistryWrapper> registryEntities() { return new FabricRegistryWrapper<>(Registry.ENTITY_TYPE); } - public static boolean isInventoryTile(BlockEntity blockEntity) { + @Override + public boolean isInventoryTile(BlockEntity blockEntity) { return blockEntity instanceof Container || blockEntity instanceof WorldlyContainerHolder; } - public static boolean blockDataContains(CompoundTag nbt, String tag) { + @Override + public boolean blockDataContains(CompoundTag nbt, String tag) { return nbt.contains(tag); } } diff --git a/fabric/src/main/java/io/github/flemmli97/flan/integration/currency/fabric/CommandCurrencyImpl.java b/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/currency/fabric/CommandCurrencyImpl.java similarity index 84% rename from fabric/src/main/java/io/github/flemmli97/flan/integration/currency/fabric/CommandCurrencyImpl.java rename to fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/currency/fabric/CommandCurrencyImpl.java index 5bee97c..e8ffe98 100644 --- a/fabric/src/main/java/io/github/flemmli97/flan/integration/currency/fabric/CommandCurrencyImpl.java +++ b/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/currency/fabric/CommandCurrencyImpl.java @@ -1,8 +1,9 @@ -package io.github.flemmli97.flan.integration.currency.fabric; +package io.github.flemmli97.flan.fabric.platform.integration.currency.fabric; import io.github.flemmli97.flan.Flan; import io.github.flemmli97.flan.claim.PermHelper; import io.github.flemmli97.flan.config.ConfigHandler; +import io.github.flemmli97.flan.platform.integration.currency.CommandCurrency; import io.github.flemmli97.flan.player.PlayerClaimData; import io.github.gunpowder.entities.StoredBalance; import io.github.gunpowder.modelhandlers.BalanceHandler; @@ -13,9 +14,14 @@ import net.minecraft.server.level.ServerPlayer; import java.math.BigDecimal; import java.util.function.Consumer; -public class CommandCurrencyImpl { +public class CommandCurrencyImpl extends CommandCurrency { - public static boolean sellClaimBlocks(ServerPlayer player, int blocks, float value, Consumer message) { + public static void init() { + INSTANCE = new CommandCurrencyImpl(); + } + + @Override + public boolean sellClaimBlocks(ServerPlayer player, int blocks, float value, Consumer message) { if (value == -1) { message.accept(PermHelper.simpleColoredText(ConfigHandler.langManager.get("sellDisabled"), ChatFormatting.DARK_RED)); return false; @@ -38,7 +44,8 @@ public class CommandCurrencyImpl { return false; } - public static boolean buyClaimBlocks(ServerPlayer player, int blocks, float value, Consumer message) { + @Override + public boolean buyClaimBlocks(ServerPlayer player, int blocks, float value, Consumer message) { if (value == -1) { message.accept(PermHelper.simpleColoredText(ConfigHandler.langManager.get("buyDisabled"), ChatFormatting.DARK_RED)); return false; 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/fabric/platform/integration/permissions/fabric/PermissionNodeHandlerImpl.java similarity index 71% rename from fabric/src/main/java/io/github/flemmli97/flan/integration/permissions/fabric/PermissionNodeHandlerImpl.java rename to fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/permissions/fabric/PermissionNodeHandlerImpl.java index c24e794..c558f82 100644 --- a/fabric/src/main/java/io/github/flemmli97/flan/integration/permissions/fabric/PermissionNodeHandlerImpl.java +++ b/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/permissions/fabric/PermissionNodeHandlerImpl.java @@ -1,15 +1,21 @@ -package io.github.flemmli97.flan.integration.permissions.fabric; +package io.github.flemmli97.flan.fabric.platform.integration.permissions.fabric; import dev.ftb.mods.ftbranks.api.FTBRanksAPI; import io.github.flemmli97.flan.Flan; import io.github.flemmli97.flan.config.ConfigHandler; +import io.github.flemmli97.flan.platform.integration.permissions.PermissionNodeHandler; import me.lucko.fabric.api.permissions.v0.Permissions; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerPlayer; -public class PermissionNodeHandlerImpl { +public class PermissionNodeHandlerImpl extends PermissionNodeHandler { - public static boolean perm(CommandSourceStack src, String perm, boolean adminCmd) { + public static void init() { + INSTANCE = new PermissionNodeHandlerImpl(); + } + + @Override + public boolean perm(CommandSourceStack src, String perm, boolean adminCmd) { if (Flan.permissionAPI) { if (adminCmd) return Permissions.check(src, perm, ConfigHandler.config.permissionLevel); @@ -21,7 +27,8 @@ public class PermissionNodeHandlerImpl { return !adminCmd || src.hasPermission(ConfigHandler.config.permissionLevel); } - public static boolean perm(ServerPlayer src, String perm, boolean adminCmd) { + @Override + public boolean perm(ServerPlayer src, String perm, boolean adminCmd) { if (Flan.permissionAPI) { if (adminCmd) return Permissions.check(src, perm, ConfigHandler.config.permissionLevel); @@ -33,7 +40,8 @@ public class PermissionNodeHandlerImpl { return !adminCmd || src.hasPermissions(ConfigHandler.config.permissionLevel); } - public static boolean permBelowEqVal(ServerPlayer src, String perm, int val, int fallback) { + @Override + public boolean permBelowEqVal(ServerPlayer src, String perm, int val, int fallback) { if (Flan.ftbRanks) { int max = FTBRanksAPI.getPermissionValue(src, perm).asInteger().orElse(fallback); return val <= max; diff --git a/fabric/src/main/java/io/github/flemmli97/flan/integration/playerability/PlayerAbilityEvents.java b/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/playerability/PlayerAbilityEvents.java similarity index 93% rename from fabric/src/main/java/io/github/flemmli97/flan/integration/playerability/PlayerAbilityEvents.java rename to fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/playerability/PlayerAbilityEvents.java index 5d02c2a..89ce73a 100644 --- a/fabric/src/main/java/io/github/flemmli97/flan/integration/playerability/PlayerAbilityEvents.java +++ b/fabric/src/main/java/io/github/flemmli97/flan/fabric/platform/integration/playerability/PlayerAbilityEvents.java @@ -1,4 +1,4 @@ -package io.github.flemmli97.flan.integration.playerability; +package io.github.flemmli97.flan.fabric.platform.integration.playerability; import io.github.flemmli97.flan.api.data.IPermissionContainer; import io.github.flemmli97.flan.api.permission.PermissionRegistry; diff --git a/forge/src/main/java/io/github/flemmli97/flan/forge/FlanForge.java b/forge/src/main/java/io/github/flemmli97/flan/forge/FlanForge.java index 9143bfc..d8b92f7 100644 --- a/forge/src/main/java/io/github/flemmli97/flan/forge/FlanForge.java +++ b/forge/src/main/java/io/github/flemmli97/flan/forge/FlanForge.java @@ -1,11 +1,15 @@ package io.github.flemmli97.flan.forge; import io.github.flemmli97.flan.Flan; -import io.github.flemmli97.flan.forgeevent.BlockInteractEventsForge; -import io.github.flemmli97.flan.forgeevent.EntityInteractEventsForge; -import io.github.flemmli97.flan.forgeevent.ItemInteractEventsForge; -import io.github.flemmli97.flan.forgeevent.ServerEvents; -import io.github.flemmli97.flan.forgeevent.WorldEventsForge; +import io.github.flemmli97.flan.forge.forgeevent.BlockInteractEventsForge; +import io.github.flemmli97.flan.forge.forgeevent.EntityInteractEventsForge; +import io.github.flemmli97.flan.forge.forgeevent.ItemInteractEventsForge; +import io.github.flemmli97.flan.forge.forgeevent.ServerEvents; +import io.github.flemmli97.flan.forge.forgeevent.WorldEventsForge; +import io.github.flemmli97.flan.forge.platform.ClaimPermissionCheckImpl; +import io.github.flemmli97.flan.forge.platform.CrossPlatformStuffImpl; +import io.github.flemmli97.flan.forge.platform.integration.currency.forge.CommandCurrencyImpl; +import io.github.flemmli97.flan.forge.platform.integration.permissions.forge.PermissionNodeHandlerImpl; import io.github.flemmli97.flan.scoreboard.ClaimCriterias; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.EventPriority; @@ -13,13 +17,16 @@ import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.ModList; import net.minecraftforge.fml.common.Mod; -//Moved from io.github.flemmli97.flan to here since module thingy with forge @Mod(FlanForge.MODID) public class FlanForge { public static final String MODID = "flan"; public FlanForge() { + CrossPlatformStuffImpl.init(); + ClaimPermissionCheckImpl.init(); + CommandCurrencyImpl.init(); + PermissionNodeHandlerImpl.init(); Flan.ftbRanks = ModList.get().isLoaded("ftbranks"); Flan.diceMCMoneySign = ModList.get().isLoaded("dicemcmm"); diff --git a/forge/src/main/java/io/github/flemmli97/flan/forgeevent/BlockInteractEventsForge.java b/forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/BlockInteractEventsForge.java similarity index 97% rename from forge/src/main/java/io/github/flemmli97/flan/forgeevent/BlockInteractEventsForge.java rename to forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/BlockInteractEventsForge.java index 56888f3..5b63ef9 100644 --- a/forge/src/main/java/io/github/flemmli97/flan/forgeevent/BlockInteractEventsForge.java +++ b/forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/BlockInteractEventsForge.java @@ -1,4 +1,4 @@ -package io.github.flemmli97.flan.forgeevent; +package io.github.flemmli97.flan.forge.forgeevent; import io.github.flemmli97.flan.event.BlockInteractEvents; import io.github.flemmli97.flan.event.ItemInteractEvents; diff --git a/forge/src/main/java/io/github/flemmli97/flan/forgeevent/EntityInteractEventsForge.java b/forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/EntityInteractEventsForge.java similarity index 98% rename from forge/src/main/java/io/github/flemmli97/flan/forgeevent/EntityInteractEventsForge.java rename to forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/EntityInteractEventsForge.java index e9f53fb..8c5642f 100644 --- a/forge/src/main/java/io/github/flemmli97/flan/forgeevent/EntityInteractEventsForge.java +++ b/forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/EntityInteractEventsForge.java @@ -1,4 +1,4 @@ -package io.github.flemmli97.flan.forgeevent; +package io.github.flemmli97.flan.forge.forgeevent; import io.github.flemmli97.flan.event.EntityInteractEvents; import net.minecraft.world.InteractionResult; diff --git a/forge/src/main/java/io/github/flemmli97/flan/forgeevent/ItemInteractEventsForge.java b/forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/ItemInteractEventsForge.java similarity index 93% rename from forge/src/main/java/io/github/flemmli97/flan/forgeevent/ItemInteractEventsForge.java rename to forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/ItemInteractEventsForge.java index 2ecb901..c11459e 100644 --- a/forge/src/main/java/io/github/flemmli97/flan/forgeevent/ItemInteractEventsForge.java +++ b/forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/ItemInteractEventsForge.java @@ -1,4 +1,4 @@ -package io.github.flemmli97.flan.forgeevent; +package io.github.flemmli97.flan.forge.forgeevent; import io.github.flemmli97.flan.event.ItemInteractEvents; import net.minecraft.world.InteractionResult; diff --git a/forge/src/main/java/io/github/flemmli97/flan/forgeevent/ServerEvents.java b/forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/ServerEvents.java similarity index 97% rename from forge/src/main/java/io/github/flemmli97/flan/forgeevent/ServerEvents.java rename to forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/ServerEvents.java index 89f23d8..1d07f64 100644 --- a/forge/src/main/java/io/github/flemmli97/flan/forgeevent/ServerEvents.java +++ b/forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/ServerEvents.java @@ -1,4 +1,4 @@ -package io.github.flemmli97.flan.forgeevent; +package io.github.flemmli97.flan.forge.forgeevent; import io.github.flemmli97.flan.Flan; import io.github.flemmli97.flan.commands.CommandClaim; diff --git a/forge/src/main/java/io/github/flemmli97/flan/forgeevent/WorldEventsForge.java b/forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/WorldEventsForge.java similarity index 94% rename from forge/src/main/java/io/github/flemmli97/flan/forgeevent/WorldEventsForge.java rename to forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/WorldEventsForge.java index ab99471..bb54ed6 100644 --- a/forge/src/main/java/io/github/flemmli97/flan/forgeevent/WorldEventsForge.java +++ b/forge/src/main/java/io/github/flemmli97/flan/forge/forgeevent/WorldEventsForge.java @@ -1,4 +1,4 @@ -package io.github.flemmli97.flan.forgeevent; +package io.github.flemmli97.flan.forge.forgeevent; import io.github.flemmli97.flan.event.WorldEvents; import net.minecraft.server.level.ServerLevel; diff --git a/forge/src/main/java/io/github/flemmli97/flan/claim/forge/ClaimPermissionCheckImpl.java b/forge/src/main/java/io/github/flemmli97/flan/forge/platform/ClaimPermissionCheckImpl.java similarity index 56% rename from forge/src/main/java/io/github/flemmli97/flan/claim/forge/ClaimPermissionCheckImpl.java rename to forge/src/main/java/io/github/flemmli97/flan/forge/platform/ClaimPermissionCheckImpl.java index b58005a..c9759f8 100644 --- a/forge/src/main/java/io/github/flemmli97/flan/claim/forge/ClaimPermissionCheckImpl.java +++ b/forge/src/main/java/io/github/flemmli97/flan/forge/platform/ClaimPermissionCheckImpl.java @@ -1,15 +1,21 @@ -package io.github.flemmli97.flan.claim.forge; +package io.github.flemmli97.flan.forge.platform; import io.github.flemmli97.flan.api.forge.PermissionCheckEvent; import io.github.flemmli97.flan.api.permission.ClaimPermission; +import io.github.flemmli97.flan.platform.ClaimPermissionCheck; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionResult; import net.minecraftforge.common.MinecraftForge; -public class ClaimPermissionCheckImpl { +public class ClaimPermissionCheckImpl extends ClaimPermissionCheck { - public static InteractionResult check(ServerPlayer player, ClaimPermission permission, BlockPos pos) { + public static void init() { + INSTANCE = new ClaimPermissionCheckImpl(); + } + + @Override + public InteractionResult check(ServerPlayer player, ClaimPermission permission, BlockPos pos) { PermissionCheckEvent event = new PermissionCheckEvent(player, permission, pos); MinecraftForge.EVENT_BUS.post(event); return event.getActionResult(); diff --git a/forge/src/main/java/io/github/flemmli97/flan/forge/CrossPlatformStuffImpl.java b/forge/src/main/java/io/github/flemmli97/flan/forge/platform/CrossPlatformStuffImpl.java similarity index 59% rename from forge/src/main/java/io/github/flemmli97/flan/forge/CrossPlatformStuffImpl.java rename to forge/src/main/java/io/github/flemmli97/flan/forge/platform/CrossPlatformStuffImpl.java index 1cbb93d..32569c8 100644 --- a/forge/src/main/java/io/github/flemmli97/flan/forge/CrossPlatformStuffImpl.java +++ b/forge/src/main/java/io/github/flemmli97/flan/forge/platform/CrossPlatformStuffImpl.java @@ -1,6 +1,8 @@ -package io.github.flemmli97.flan.forge; +package io.github.flemmli97.flan.forge.platform; import io.github.flemmli97.flan.SimpleRegistryWrapper; +import io.github.flemmli97.flan.forge.ForgeRegistryWrapper; +import io.github.flemmli97.flan.platform.CrossPlatformStuff; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.Container; import net.minecraft.world.WorldlyContainerHolder; @@ -15,33 +17,44 @@ import net.minecraftforge.registries.ForgeRegistries; import java.nio.file.Path; -public class CrossPlatformStuffImpl { +public class CrossPlatformStuffImpl extends CrossPlatformStuff { - public static Path configPath() { + public static void init() { + INSTANCE = new CrossPlatformStuffImpl(); + } + + @Override + public Path configPath() { return FMLPaths.CONFIGDIR.get(); } - public static SimpleRegistryWrapper registryStatusEffects() { + @Override + public SimpleRegistryWrapper registryStatusEffects() { return new ForgeRegistryWrapper<>(ForgeRegistries.MOB_EFFECTS); } - public static SimpleRegistryWrapper registryBlocks() { + @Override + public SimpleRegistryWrapper registryBlocks() { return new ForgeRegistryWrapper<>(ForgeRegistries.BLOCKS); } - public static SimpleRegistryWrapper registryItems() { + @Override + public SimpleRegistryWrapper registryItems() { return new ForgeRegistryWrapper<>(ForgeRegistries.ITEMS); } - public static SimpleRegistryWrapper> registryEntities() { + @Override + public SimpleRegistryWrapper> registryEntities() { return new ForgeRegistryWrapper<>(ForgeRegistries.ENTITIES); } - public static boolean isInventoryTile(BlockEntity blockEntity) { + @Override + public boolean isInventoryTile(BlockEntity blockEntity) { return blockEntity instanceof Container || blockEntity instanceof WorldlyContainerHolder || blockEntity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY).isPresent(); } - public static boolean blockDataContains(CompoundTag nbt, String tag) { + @Override + public boolean blockDataContains(CompoundTag nbt, String tag) { return nbt.contains(tag) || nbt.getCompound("ForgeData").contains(tag); } } diff --git a/forge/src/main/java/io/github/flemmli97/flan/integration/currency/forge/CommandCurrencyImpl.java b/forge/src/main/java/io/github/flemmli97/flan/forge/platform/integration/currency/forge/CommandCurrencyImpl.java similarity index 83% rename from forge/src/main/java/io/github/flemmli97/flan/integration/currency/forge/CommandCurrencyImpl.java rename to forge/src/main/java/io/github/flemmli97/flan/forge/platform/integration/currency/forge/CommandCurrencyImpl.java index da84e1b..5d0209b 100644 --- a/forge/src/main/java/io/github/flemmli97/flan/integration/currency/forge/CommandCurrencyImpl.java +++ b/forge/src/main/java/io/github/flemmli97/flan/forge/platform/integration/currency/forge/CommandCurrencyImpl.java @@ -1,10 +1,11 @@ -package io.github.flemmli97.flan.integration.currency.forge; +package io.github.flemmli97.flan.forge.platform.integration.currency.forge; import dicemc.money.MoneyMod; import dicemc.money.storage.MoneyWSD; import io.github.flemmli97.flan.Flan; import io.github.flemmli97.flan.claim.PermHelper; import io.github.flemmli97.flan.config.ConfigHandler; +import io.github.flemmli97.flan.platform.integration.currency.CommandCurrency; import io.github.flemmli97.flan.player.PlayerClaimData; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; @@ -13,9 +14,14 @@ import net.minecraft.server.level.ServerPlayer; import java.util.UUID; import java.util.function.Consumer; -public class CommandCurrencyImpl { +public class CommandCurrencyImpl extends CommandCurrency { - public static boolean sellClaimBlocks(ServerPlayer player, int blocks, float value, Consumer message) { + public static void init() { + INSTANCE = new CommandCurrencyImpl(); + } + + @Override + public boolean sellClaimBlocks(ServerPlayer player, int blocks, float value, Consumer message) { if (value == -1) { message.accept(PermHelper.simpleColoredText(ConfigHandler.langManager.get("sellDisabled"), ChatFormatting.DARK_RED)); return false; @@ -36,7 +42,8 @@ public class CommandCurrencyImpl { return false; } - public static boolean buyClaimBlocks(ServerPlayer player, int blocks, float value, Consumer message) { + @Override + public boolean buyClaimBlocks(ServerPlayer player, int blocks, float value, Consumer message) { if (value == -1) { message.accept(PermHelper.simpleColoredText(ConfigHandler.langManager.get("buyDisabled"), ChatFormatting.DARK_RED)); return false; 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/forge/platform/integration/permissions/forge/PermissionNodeHandlerImpl.java similarity index 62% rename from forge/src/main/java/io/github/flemmli97/flan/integration/permissions/forge/PermissionNodeHandlerImpl.java rename to forge/src/main/java/io/github/flemmli97/flan/forge/platform/integration/permissions/forge/PermissionNodeHandlerImpl.java index 7de2e96..6d67340 100644 --- a/forge/src/main/java/io/github/flemmli97/flan/integration/permissions/forge/PermissionNodeHandlerImpl.java +++ b/forge/src/main/java/io/github/flemmli97/flan/forge/platform/integration/permissions/forge/PermissionNodeHandlerImpl.java @@ -1,26 +1,34 @@ -package io.github.flemmli97.flan.integration.permissions.forge; +package io.github.flemmli97.flan.forge.platform.integration.permissions.forge; import dev.ftb.mods.ftbranks.api.FTBRanksAPI; import io.github.flemmli97.flan.Flan; import io.github.flemmli97.flan.config.ConfigHandler; +import io.github.flemmli97.flan.platform.integration.permissions.PermissionNodeHandler; import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.level.ServerPlayer; -public class PermissionNodeHandlerImpl { +public class PermissionNodeHandlerImpl extends PermissionNodeHandler { - public static boolean perm(CommandSourceStack src, String perm, boolean adminCmd) { + public static void init() { + INSTANCE = new PermissionNodeHandlerImpl(); + } + + @Override + public boolean perm(CommandSourceStack src, String perm, boolean adminCmd) { if (!Flan.ftbRanks || !(src.getEntity() instanceof ServerPlayer player)) return !adminCmd || src.hasPermission(ConfigHandler.config.permissionLevel); return FTBRanksAPI.getPermissionValue(player, perm).asBoolean().orElse(!adminCmd || player.hasPermissions(ConfigHandler.config.permissionLevel)); } - public static boolean perm(ServerPlayer src, String perm, boolean adminCmd) { + @Override + public boolean perm(ServerPlayer src, String perm, boolean adminCmd) { if (!Flan.ftbRanks) return !adminCmd || src.hasPermissions(ConfigHandler.config.permissionLevel); return FTBRanksAPI.getPermissionValue(src, perm).asBoolean().orElse(!adminCmd || src.hasPermissions(ConfigHandler.config.permissionLevel)); } - public static boolean permBelowEqVal(ServerPlayer src, String perm, int val, int fallback) { + @Override + public boolean permBelowEqVal(ServerPlayer src, String perm, int val, int fallback) { if (Flan.ftbRanks) { int max = FTBRanksAPI.getPermissionValue(src, perm).asInteger().orElse(fallback); return val <= max;