From 9424d2628353089887f9b0f2d07c951aceadfe29 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Thu, 16 Oct 2025 16:16:18 +0200 Subject: [PATCH 01/29] Combine 1.8.9 and 1.12.2 legacy versions in the same repository --- build.gradle.kts | 114 ++++--- common/build.gradle.kts | 7 + .../github/communityradargg/forgemod/.gitkeep | 0 common/src/main/resources/.gitkeep | 0 gradle.properties | 3 +- gradle/libs.versions.toml | 24 +- settings.gradle.kts | 9 + versions/1.12.2/build.gradle.kts | 37 ++ .../forgemod/CommunityRadarMod.java | 143 ++++++++ .../forgemod/command/CheckSubcommand.java | 147 ++++++++ .../forgemod/command/HelpSubcommand.java | 49 +++ .../forgemod/command/ListSubcommand.java | 217 ++++++++++++ .../forgemod/command/ListsSubcommand.java | 64 ++++ .../forgemod/command/PlayerSubcommand.java | 180 ++++++++++ .../forgemod/command/RadarCommand.java | 108 ++++++ .../forgemod/command/Subcommand.java | 0 .../event/ClientChatReceivedListener.java | 77 +++++ .../ClientConnectionDisconnectListener.java | 75 ++++ .../forgemod/event/KeyInputListener.java | 0 .../event/PlayerNameFormatListener.java | 51 +++ .../forgemod/radarlistmanager/RadarList.java | 4 +- .../radarlistmanager/RadarListEntry.java | 112 ++++++ .../radarlistmanager/RadarListManager.java | 11 +- .../radarlistmanager/RadarListVisibility.java | 26 ++ .../adapters/GsonLocalDateTimeAdapter.java | 0 .../GsonRadarListPlayerMapAdapter.java | 0 .../forgemod/util/Messages.java | 0 .../forgemod/util/RadarMessage.java | 106 ++++++ .../communityradargg/forgemod/util/Utils.java | 279 +++++++++++++++ .../resources/assets/communityradar/icon.png | Bin versions/1.12.2/src/main/resources/mcmod.info | 19 ++ .../1.12.2/src/main/resources/pack.mcmeta | 6 + versions/1.8.9/build.gradle.kts | 37 ++ .../forgemod/CommunityRadarMod.java | 2 +- .../forgemod/command/CheckSubcommand.java | 0 .../forgemod/command/HelpSubcommand.java | 0 .../forgemod/command/ListSubcommand.java | 0 .../forgemod/command/ListsSubcommand.java | 0 .../forgemod/command/PlayerSubcommand.java | 0 .../forgemod/command/RadarCommand.java | 3 +- .../forgemod/command/Subcommand.java | 26 ++ .../event/ClientChatReceivedListener.java | 0 .../ClientConnectionDisconnectListener.java | 0 .../forgemod/event/KeyInputListener.java | 58 ++++ .../event/PlayerNameFormatListener.java | 0 .../forgemod/radarlistmanager/RadarList.java | 218 ++++++++++++ .../radarlistmanager/RadarListEntry.java | 0 .../radarlistmanager/RadarListManager.java | 320 ++++++++++++++++++ .../radarlistmanager/RadarListVisibility.java | 0 .../adapters/GsonLocalDateTimeAdapter.java | 43 +++ .../GsonRadarListPlayerMapAdapter.java | 52 +++ .../forgemod/util/Messages.java | 106 ++++++ .../forgemod/util/RadarMessage.java | 0 .../communityradargg/forgemod/util/Utils.java | 14 +- .../resources/assets/communityradar/icon.png | Bin 0 -> 618237 bytes .../1.8.9/src}/main/resources/mcmod.info | 0 56 files changed, 2666 insertions(+), 81 deletions(-) create mode 100644 common/build.gradle.kts create mode 100644 common/src/main/java/io/github/communityradargg/forgemod/.gitkeep create mode 100644 common/src/main/resources/.gitkeep create mode 100644 versions/1.12.2/build.gradle.kts create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java rename {src => versions/1.12.2/src}/main/java/io/github/communityradargg/forgemod/command/Subcommand.java (100%) create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java rename {src => versions/1.12.2/src}/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java (100%) create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java rename {src => versions/1.12.2/src}/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java (98%) create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java rename {src => versions/1.12.2/src}/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java (97%) create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java rename {src => versions/1.12.2/src}/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java (100%) rename {src => versions/1.12.2/src}/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java (100%) rename {src => versions/1.12.2/src}/main/java/io/github/communityradargg/forgemod/util/Messages.java (100%) create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java rename {src => versions/1.12.2/src}/main/resources/assets/communityradar/icon.png (100%) create mode 100644 versions/1.12.2/src/main/resources/mcmod.info create mode 100644 versions/1.12.2/src/main/resources/pack.mcmeta create mode 100644 versions/1.8.9/build.gradle.kts rename {src => versions/1.8.9/src}/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java (98%) rename {src => versions/1.8.9/src}/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java (100%) rename {src => versions/1.8.9/src}/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java (100%) rename {src => versions/1.8.9/src}/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java (100%) rename {src => versions/1.8.9/src}/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java (100%) rename {src => versions/1.8.9/src}/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java (100%) rename {src => versions/1.8.9/src}/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java (97%) create mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java rename {src => versions/1.8.9/src}/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java (100%) rename {src => versions/1.8.9/src}/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java (100%) create mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java rename {src => versions/1.8.9/src}/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java (100%) create mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java rename {src => versions/1.8.9/src}/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java (100%) create mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java rename {src => versions/1.8.9/src}/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java (100%) create mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java create mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java create mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Messages.java rename {src => versions/1.8.9/src}/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java (100%) rename {src => versions/1.8.9/src}/main/java/io/github/communityradargg/forgemod/util/Utils.java (95%) create mode 100644 versions/1.8.9/src/main/resources/assets/communityradar/icon.png rename {src => versions/1.8.9/src}/main/resources/mcmod.info (100%) diff --git a/build.gradle.kts b/build.gradle.kts index f6449dc..65543fc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,78 +13,82 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import dev.architectury.pack200.java.Pack200Adapter - plugins { id("java") - alias(libs.plugins.ggEssentialLoom) alias(libs.plugins.spotless) + alias(libs.plugins.ggEssentialLoom) apply false } -val modId = providers.gradleProperty("mod_id") -val versionText = providers.gradleProperty("mod_version") -val mavenGroup = providers.gradleProperty("maven_group") - -version = versionText.get() -group = mavenGroup.get() +val groupTextProvider = providers.gradleProperty("maven_group") +val versionTextProvider = providers.gradleProperty("mod_version") +val modIdProvider = providers.gradleProperty("mod_id") -base { - archivesName.set(modId) -} +allprojects { + group = groupTextProvider.get() + version = versionTextProvider.get() -repositories { - mavenCentral() + repositories { + mavenCentral() + } } -dependencies { - minecraft(libs.minecraft) - mappings(libs.mcpMappings) - forge(libs.forge) -} +subprojects { + apply(plugin = "java") + apply(plugin = rootProject.libs.plugins.spotless.get().pluginId) -loom { - forge { - pack200Provider.set(Pack200Adapter()) - // accessTransformer("src/main/resources/META-INF/${modId.get()}_at.cfg") + val computedVersion = if (path.startsWith(":versions:")) { + "${versionTextProvider.get()}+$name" + } else { + versionTextProvider.get() } -} -java { - toolchain.languageVersion.set(JavaLanguageVersion.of(8)) -} + version = computedVersion -tasks { - withType { - options.encoding = Charsets.UTF_8.name() + extra["versionText"] = computedVersion + extra["modIdText"] = modIdProvider.get() + + base { + archivesName.set(modIdProvider.get()) } - withType { - // https://github.com/gradle/gradle/issues/861 - inputs.property("version", versionText.get()) - inputs.property("mc_version", libs.versions.minecraft.get()) - inputs.property("mod_id", modId.get()) - - filesMatching("mcmod.info") { - expand( - mapOf( - "version" to versionText.get(), - "mc_version" to libs.versions.minecraft.get(), - "mod_id" to modId.get() - ) - ) - } + project(":versions").childProjects.values.forEach { versionProject -> + versionProject.apply(plugin = rootProject.libs.plugins.ggEssentialLoom.get().pluginId) } - jar { - from(layout.projectDirectory) { - include("LICENSE", "NOTICE") + java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(8)) } } -} -sourceSets { - main { - output.setResourcesDir(java.classesDirectory) + tasks { + withType { + options.encoding = Charsets.UTF_8.name() + } + + withType { + from(rootProject.layout.projectDirectory) { + include("LICENSE", "NOTICE") + } + + manifest { + attributes( + "Specification-Title" to rootProject.name, + "Specification-Version" to versionTextProvider.get(), + "Implementation-Title" to rootProject.name, + "Implementation-Version" to versionTextProvider.get() + ) + } + + matching { it.name == "remapJar" }.configureEach { + doLast { + val jar = outputs.files.singleFile + val targetDir = rootProject.layout.buildDirectory.dir("libs").get().asFile + targetDir.mkdirs() + jar.copyTo(targetDir.resolve(jar.name), overwrite = true) + } + } + } } } @@ -103,3 +107,9 @@ spotless { trimTrailingWhitespace() } } + +tasks { + named("jar").configure { + enabled = false + } +} diff --git a/common/build.gradle.kts b/common/build.gradle.kts new file mode 100644 index 0000000..92e34f3 --- /dev/null +++ b/common/build.gradle.kts @@ -0,0 +1,7 @@ +base { + archivesName.set("common") +} + +dependencies { + // empty +} diff --git a/common/src/main/java/io/github/communityradargg/forgemod/.gitkeep b/common/src/main/java/io/github/communityradargg/forgemod/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/common/src/main/resources/.gitkeep b/common/src/main/resources/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/gradle.properties b/gradle.properties index 14a8ce7..f0d4068 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,6 @@ org.gradle.configuration-cache=false loom.platform=forge -# When increasing the version, also increase it in the 'CommunityRadarMod' class -mod_version=1.1.3-1.8.9-SNAPSHOT +mod_version=1.2.0-SNAPSHOT maven_group=io.github.communityradargg mod_id=communityradar diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1f20b44..bb268ea 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,14 +4,26 @@ ggEssentialLoom = "1.11.37" spotless = "7.2.1" # libraries -minecraft = "1.8.9" -mcpMappings = "22-1.8.9" -forge = "1.8.9-11.15.1.2318-1.8.9" +# 1.8.9 (Forge) +minecraft189 = "1.8.9" +mcpMappings189 = "22-1.8.9" +forge189 = "1.8.9-11.15.1.2318-1.8.9" + +# 1.12.2 (Forge) +minecraft1122 = "1.12.2" +mcpMappings1122 = "39-1.12" +forge1122 = "1.12.2-14.23.5.2847" [libraries] -minecraft = { group = "com.mojang", name = "minecraft", version.ref = "minecraft" } -mcpMappings = { group = "de.oceanlabs.mcp", name = "mcp_stable", version.ref = "mcpMappings" } -forge = { group = "net.minecraftforge", name = "forge", version.ref = "forge" } +# 1.8.9 (Forge) +minecraft189 = { group = "com.mojang", name = "minecraft", version.ref = "minecraft189" } +mcpMappings189 = { group = "de.oceanlabs.mcp", name = "mcp_stable", version.ref = "mcpMappings189" } +forge189 = { group = "net.minecraftforge", name = "forge", version.ref = "forge189" } + +# 1.12.2 (Forge) +minecraft1122 = { group = "com.mojang", name = "minecraft", version.ref = "minecraft1122" } +mcpMappings1122 = { group = "de.oceanlabs.mcp", name = "mcp_stable", version.ref = "mcpMappings1122" } +forge1122 = { group = "net.minecraftforge", name = "forge", version.ref = "forge1122" } [plugins] ggEssentialLoom = { id = "gg.essential.loom", version.ref = "ggEssentialLoom" } diff --git a/settings.gradle.kts b/settings.gradle.kts index 5a071a1..46be910 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -40,3 +40,12 @@ pluginManagement { plugins { id("org.gradle.toolchains.foojay-resolver-convention") version("0.8.0") } + + + +include("common") + +listOf("1.8.9", "1.12.2").forEach { version -> + include("versions:$version") + project(":versions:$version").projectDir = file("versions/$version") +} diff --git a/versions/1.12.2/build.gradle.kts b/versions/1.12.2/build.gradle.kts new file mode 100644 index 0000000..d2a66ee --- /dev/null +++ b/versions/1.12.2/build.gradle.kts @@ -0,0 +1,37 @@ +import dev.architectury.pack200.java.Pack200Adapter + +val versionText: String by extra +val modIdText: String by extra + +dependencies { + implementation(project(":common")) + + minecraft(rootProject.libs.minecraft1122) + mappings(rootProject.libs.mcpMappings1122) + forge(rootProject.libs.forge1122) +} + +loom { + forge { + pack200Provider.set(Pack200Adapter()) + } +} + +tasks { + withType { + // https://github.com/gradle/gradle/issues/861 + inputs.property("version", versionText) + inputs.property("mc_version", rootProject.libs.versions.minecraft1122.get()) + inputs.property("mod_id", modIdText) + + filesMatching("mcmod.info") { + expand( + mapOf( + "version" to versionText, + "mc_version" to rootProject.libs.versions.minecraft1122.get(), + "mod_id" to modIdText + ) + ) + } + } +} diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java new file mode 100644 index 0000000..20c9784 --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java @@ -0,0 +1,143 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod; + +import io.github.communityradargg.forgemod.command.RadarCommand; +import io.github.communityradargg.forgemod.event.ClientChatReceivedListener; +import io.github.communityradargg.forgemod.event.ClientConnectionDisconnectListener; +import io.github.communityradargg.forgemod.event.KeyInputListener; +import io.github.communityradargg.forgemod.event.PlayerNameFormatListener; +import io.github.communityradargg.forgemod.radarlistmanager.RadarListManager; +import net.minecraftforge.client.ClientCommandHandler; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.Mod.EventHandler; +import net.minecraftforge.fml.common.ModContainer; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.NotNull; + +import java.io.File; +import java.nio.file.Paths; + +/** + * This class represents the main class of the mod. + */ +@Mod(modid = CommunityRadarMod.MOD_ID) +public class CommunityRadarMod { + public static final String MOD_ID = "communityradar"; + private static final Logger LOGGER = LogManager.getLogger(CommunityRadarMod.class); + private RadarListManager listManager; + private String version; + private boolean onGrieferGames = false; + + /** + * The listener for the {@link FMLInitializationEvent} event. + * + * @param event The event. + */ + @EventHandler + public void init(FMLInitializationEvent event) { + LOGGER.info("Loading the mod '{}'", MOD_ID); + + final ModContainer modContainer = Loader.instance().getIndexedModList().get(MOD_ID); + version = modContainer == null ? "UNKNOWN" : modContainer.getVersion(); + + final File directoryPath = Paths.get(new File("") + .getAbsolutePath(),"communityradar", "lists") + .toFile(); + if (!directoryPath.exists() && !directoryPath.mkdirs()) { + LOGGER.error("Could not create directory: {}", directoryPath); + } + + listManager = new RadarListManager(this, directoryPath.getAbsolutePath() + "/"); + registerPublicLists(); + // Needs to be after loading public lists + listManager.loadPrivateLists(); + registerEvents(); + registerCommands(); + LOGGER.info("Successfully loaded the mod '{}'", MOD_ID); + } + + /** + * Registers the events. + */ + private void registerEvents() { + MinecraftForge.EVENT_BUS.register(new ClientChatReceivedListener(this)); + MinecraftForge.EVENT_BUS.register(new PlayerNameFormatListener(this)); + MinecraftForge.EVENT_BUS.register(new KeyInputListener(this)); + MinecraftForge.EVENT_BUS.register(new ClientConnectionDisconnectListener(this)); + } + + /** + * Registers the commands. + */ + private void registerCommands() { + ClientCommandHandler.instance.registerCommand(new RadarCommand(this)); + } + + /** + * Registers the public lists. + */ + private void registerPublicLists() { + if (!listManager.registerPublicList("scammer", "&7[&cScammer&7]", "https://lists.community-radar.de/versions/v1/scammer.json")) { + LOGGER.error("Could not register public list 'scammers'!"); + } + + if (!listManager.registerPublicList("trusted", "&7[&aTrusted&7]", "https://lists.community-radar.de/versions/v1/trusted.json")) { + LOGGER.error("Could not register public list 'verbvllert_trusted'!"); + } + } + + /** + * Gets the {@link RadarListManager} instance. + * + * @return Returns the radar list manager instance. + */ + public @NotNull RadarListManager getListManager() { + return listManager; + } + + /** + * Gets the GrieferGames connection state. + * + * @return Returns the GrieferGames connection state. + */ + @SuppressWarnings("BooleanMethodIsAlwaysInverted") + public boolean isOnGrieferGames() { + return onGrieferGames; + } + + /** + * Sets the GrieferGames connection state. + * + * @param onGrieferGames The GrieferGames connection state to set. + */ + public void setOnGrieferGames(final boolean onGrieferGames) { + this.onGrieferGames = onGrieferGames; + } + + /** + * Gets the version. + * + * @return Returns the version. + */ + public String getVersion() { + return version; + } +} diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java new file mode 100644 index 0000000..ec71d94 --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java @@ -0,0 +1,147 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.command; + +import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; +import io.github.communityradargg.forgemod.util.Messages; +import io.github.communityradargg.forgemod.util.RadarMessage; +import io.github.communityradargg.forgemod.util.Utils; +import java.util.Optional; +import net.minecraft.client.Minecraft; +import net.minecraft.client.network.NetHandlerPlayClient; +import net.minecraft.client.network.NetworkPlayerInfo; +import net.minecraft.entity.player.EntityPlayer; +import org.jetbrains.annotations.NotNull; + +/** + * Holds the logic of the check subcommand. + */ +public class CheckSubcommand implements Subcommand { + private final CommunityRadarMod communityRadarMod; + private final EntityPlayer player; + private final String[] args; + + /** + * Constructs a {@link CheckSubcommand}. + * + * @param communityRadarMod The mod main class instance. + * @param player The player. + * @param args The args. + */ + public CheckSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player, final @NotNull String[] args) { + this.communityRadarMod = communityRadarMod; + this.player = player; + this.args = args; + } + + @Override + public void run() { + if (args.length != 2) { + // missing arguments + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().toChatComponentText()); + return; + } + + if (args[1].equalsIgnoreCase("*")) { + // check all argument + handleCheckAllSubcommand(player); + return; + } + handleCheckPlayerSubcommand(player, args); + } + + /** + * Handles the check - player subcommand. + * + * @param player The player, which executed the subcommand. + * @param args The arguments passed to the main command. + */ + private void handleCheckPlayerSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) + .build().toChatComponentText()); + Utils.getUUID(communityRadarMod, args[1]).thenAccept(checkPlayerOptional -> { + if (!checkPlayerOptional.isPresent()) { + // player uuid could not be fetched + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) + .build().toChatComponentText()); + return; + } + + final Optional entryOptional = communityRadarMod.getListManager().getRadarListEntry(checkPlayerOptional.get()); + if (!entryOptional.isPresent()) { + // player uuid is on no list + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) + .build().toChatComponentText()); + return; + } + + final RadarListEntry entry = entryOptional.get(); + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FOUND + "\n" + Messages.Check.CHECK_ENTRY) + .replaceWithColorCodes("{prefix}", communityRadarMod.getListManager().getPrefix(entry.uuid())) + .replace("{name}", entry.name()) + .replace("{cause}", entry.cause()) + .replace("{entryCreationDate}", Utils.formatDateTime(entry.entryCreationDate())) + .replace("{entryUpdateDate}", Utils.formatDateTime(entry.entryUpdateDate())) + .build().toChatComponentText()); + }); + } + + /** + * Handles the check - all subcommand. + * + * @param player The player, which executed the subcommand. + */ + private void handleCheckAllSubcommand(final @NotNull EntityPlayer player) { + boolean anyPlayerFound = false; + final NetHandlerPlayClient connection = Minecraft.getMinecraft().getConnection(); + if (connection != null) { + for (final NetworkPlayerInfo networkPlayer : connection.getPlayerInfoMap()) { + if (networkPlayer.getGameProfile().getId() == null) { + continue; + } + + final Optional listEntryOptional = communityRadarMod.getListManager() + .getRadarListEntry(networkPlayer.getGameProfile().getId()); + if (!listEntryOptional.isPresent()) { + // player uuid is on no list + continue; + } + + if (!anyPlayerFound) { + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.EVERYONE) + .build().toChatComponentText()); + anyPlayerFound = true; + } + + final RadarListEntry entry = listEntryOptional.get(); + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.CHECK_ENTRY) + .replaceWithColorCodes("{prefix}", communityRadarMod.getListManager().getPrefix(entry.uuid())) + .replace("{name}", entry.name()) + .replace("{cause}", entry.cause()) + .replace("{entryCreationDate}", Utils.formatDateTime(entry.entryCreationDate())) + .replace("{entryUpdateDate}", Utils.formatDateTime(entry.entryUpdateDate())) + .build().toChatComponentText()); + } + } + + if (!anyPlayerFound) { + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.NOT_FOUND) + .build().toChatComponentText()); + } + } +} diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java new file mode 100644 index 0000000..2643459 --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java @@ -0,0 +1,49 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.command; + +import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.Messages; +import io.github.communityradargg.forgemod.util.RadarMessage; +import net.minecraft.entity.player.EntityPlayer; +import org.jetbrains.annotations.NotNull; + +/** + * Holds the logic of the help subcommand. + */ +public class HelpSubcommand implements Subcommand { + private final CommunityRadarMod communityRadarMod; + private final EntityPlayer player; + + /** + * Constructs a {@link HelpSubcommand}. + * + * @param communityRadarMod The mod main class instance. + * @param player The player. + */ + public HelpSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player) { + this.communityRadarMod = communityRadarMod; + this.player = player; + } + + @Override + public void run() { + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.HELP) + .replace("{code_version}", communityRadarMod.getVersion()) + .excludePrefix() + .build().toChatComponentText()); + } +} diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java new file mode 100644 index 0000000..4fd373b --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java @@ -0,0 +1,217 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.command; + +import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.radarlistmanager.RadarList; +import io.github.communityradargg.forgemod.radarlistmanager.RadarListManager; +import io.github.communityradargg.forgemod.util.Messages; +import io.github.communityradargg.forgemod.util.RadarMessage; +import io.github.communityradargg.forgemod.util.Utils; +import java.util.Collections; +import java.util.Locale; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import net.minecraft.entity.player.EntityPlayer; +import org.jetbrains.annotations.NotNull; + +/** + * Holds the logic of the list subcommand. + */ +public class ListSubcommand implements Subcommand { + private final CommunityRadarMod communityRadarMod; + private final EntityPlayer player; + private final String[] args; + + /** + * Constructs a {@link ListSubcommand}. + * + * @param communityRadarMod The mod main class instance. + * @param player The player. + * @param args The args. + */ + public ListSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player, final @NotNull String[] args) { + this.communityRadarMod = communityRadarMod; + this.player = player; + this.args = args; + } + + @Override + public void run() { + if (args.length < 2) { + // missing arguments + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().toChatComponentText()); + return; + } + + switch (args[1].toUpperCase(Locale.ENGLISH)) { + case "ADD": + handleListAddSubcommand(player, args); + break; + case "PREFIX": + handleListPrefixSubcommand(player, args); + break; + case "DELETE": + handleListDeleteSubcommand(player, args); + break; + case "SHOW": + handleListShowSubcommand(player, args); + break; + default: + new HelpSubcommand(communityRadarMod, player).run(); + break; + } + } + + /** + * Handles the list - add subcommand. + * + * @param player The player, which executed the subcommand. + * @param args The arguments passed to the main command. + */ + private void handleListAddSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + if (args.length != 4) { + // missing arguments + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().toChatComponentText()); + return; + } + + if (communityRadarMod.getListManager().getRadarList(args[2]).isPresent()) { + // list already existing + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) + .build().toChatComponentText()); + return; + } + + if (!communityRadarMod.getListManager().registerPrivateList(args[2], args[3])) { + // list could not be registered + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) + .build().toChatComponentText()); + return; + } + + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_SUCCESS) + .build().toChatComponentText()); + } + + /** + * Handles the list - delete subcommand. + * + * @param player The player, which executed the subcommand. + * @param args The arguments passed to the main command. + */ + private void handleListDeleteSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + if (args.length != 3) { + // missing arguments + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().toChatComponentText()); + return; + } + + final RadarListManager listManager = communityRadarMod.getListManager(); + final Set oldPrefixes = listManager.getExistingPrefixes(); + final Set oldUuids = listManager.getRadarList(args[2]) + .map(radarList -> radarList.getPlayerMap().keySet()) + .orElse(Collections.emptySet()); + + if (!listManager.unregisterList(args[2])) { + // list is not existing, list is not private, file cannot be deleted + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_FAILED) + .build().toChatComponentText()); + return; + } + + oldUuids.forEach(uuid -> Utils.updatePlayerByUuid(communityRadarMod, uuid, oldPrefixes)); + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_SUCCESS) + .build().toChatComponentText()); + } + + /** + * Handles the list - show subcommand. + * + * @param player The player, which executed the subcommand. + * @param args The arguments passed to the main command. + */ + private void handleListShowSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + if (args.length != 3) { + // missing arguments + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().toChatComponentText()); + return; + } + + final Optional listOptional = communityRadarMod.getListManager().getRadarList(args[2]); + if (!listOptional.isPresent()) { + // list is not existing + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_FAILED) + .build().toChatComponentText()); + return; + } + + final RadarList list = listOptional.get(); + if (list.getPlayerMap().isEmpty()) { + // list is empty + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_EMPTY) + .build().toChatComponentText()); + return; + } + + final StringBuilder players = new StringBuilder(); + list.getPlayerMap().values().forEach(value -> players.append(value.name()).append(", ")); + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_SUCCESS) + .replace("{list}", list.getNamespace()) + .replaceWithColorCodes("{prefix}", listOptional.get().getPrefix()) + .replace("{players}", players.substring(0, players.length() - 2)) + .build().toChatComponentText()); + } + + /** + * Handles the list - prefix subcommand. + * + * @param player The player, which executed the subcommand. + * @param args The arguments passed to the main command. + */ + private void handleListPrefixSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + if (args.length != 4) { + // missing arguments + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().toChatComponentText()); + return; + } + + final RadarListManager listManager = communityRadarMod.getListManager(); + final Optional listOptional = listManager.getRadarList(args[2]); + if (!listOptional.isPresent()) { + // list is not existing + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_FAILED) + .build().toChatComponentText()); + return; + } + + final RadarList list = listOptional.get(); + final Set oldPrefixes = listManager.getExistingPrefixes(); + list.setPrefix(args[3]); + list.saveList(); + list.getPlayerMap().keySet().forEach(uuid -> Utils.updatePlayerByUuid(communityRadarMod, uuid, oldPrefixes)); + + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_SUCCESS) + .replaceWithColorCodes("{prefix}", args[3]) + .build().toChatComponentText()); + } +} diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java new file mode 100644 index 0000000..47a12ad --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java @@ -0,0 +1,64 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.command; + +import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.radarlistmanager.RadarListVisibility; +import io.github.communityradargg.forgemod.util.Messages; +import io.github.communityradargg.forgemod.util.RadarMessage; +import net.minecraft.entity.player.EntityPlayer; +import org.jetbrains.annotations.NotNull; + +/** + * Holds the logic of the lists subcommand. + */ +public class ListsSubcommand implements Subcommand { + private final CommunityRadarMod communityRadarMod; + private final EntityPlayer player; + + /** + * Constructs a {@link ListsSubcommand}. + * + * @param communityRadarMod The mod main class instance. + * @param player The player. + */ + public ListsSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player) { + this.communityRadarMod = communityRadarMod; + this.player = player; + } + + @Override + public void run() { + final StringBuilder listsText = new StringBuilder(); + for (final String namespace : communityRadarMod.getListManager().getNamespaces()) { + communityRadarMod.getListManager().getRadarList(namespace) + .ifPresent(radarList -> listsText.append("§e").append(namespace).append(" §7(§c") + .append(radarList.getRadarListVisibility() == RadarListVisibility.PRIVATE ? Messages.Lists.PRIVATE : Messages.Lists.PUBLIC) + .append("§7)").append(", ")); + } + + if (listsText.length() > 0) { + // players on the list + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Lists.FOUND) + .replace("{lists}", listsText.substring(0, listsText.length() - 2)) + .build().toChatComponentText()); + } else { + // list is empty + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Lists.EMPTY) + .build().toChatComponentText()); + } + } +} diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java new file mode 100644 index 0000000..7f94fe4 --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java @@ -0,0 +1,180 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.command; + +import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.radarlistmanager.RadarList; +import io.github.communityradargg.forgemod.radarlistmanager.RadarListManager; +import io.github.communityradargg.forgemod.util.Messages; +import io.github.communityradargg.forgemod.util.RadarMessage; +import io.github.communityradargg.forgemod.util.Utils; +import java.util.Locale; +import java.util.Optional; +import java.util.UUID; +import net.minecraft.entity.player.EntityPlayer; +import org.jetbrains.annotations.NotNull; + +/** + * Holds the logic of the player subcommand. + */ +public class PlayerSubcommand implements Subcommand { + private final CommunityRadarMod communityRadarMod; + private final EntityPlayer player; + private final String[] args; + + /** + * Constructs a {@link PlayerSubcommand}. + * + * @param communityRadarMod The mod main class instance. + * @param player The player. + * @param args The args. + */ + public PlayerSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player, final @NotNull String[] args) { + this.communityRadarMod = communityRadarMod; + this.player = player; + this.args = args; + } + + @Override + public void run() { + if (args.length < 2) { + // missing arguments + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().toChatComponentText()); + return; + } + + switch (args[1].toUpperCase(Locale.ENGLISH)) { + case "ADD": + handlePlayerAddSubcommand(player, args); + break; + case "REMOVE": + handlePlayerRemoveSubcommand(player, args); + break; + default: + new HelpSubcommand(communityRadarMod, player).run(); + break; + } + } + + /** + * Handles the player - add subcommand. + * + * @param player The player, which executed the subcommand. + * @param args The arguments passed to the main command. + */ + private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + if (args.length < 5) { + // missing arguments + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().toChatComponentText()); + return; + } + + final RadarListManager listManager = communityRadarMod.getListManager(); + final Optional listOptional = listManager.getRadarList(args[2]); + if (!listOptional.isPresent()) { + // list not existing + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_FAILED) + .build().toChatComponentText()); + return; + } + + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) + .build().toChatComponentText()); + Utils.getUUID(communityRadarMod, args[3]).thenAccept(uuidOptional -> { + if (!uuidOptional.isPresent()) { + // player uuid could not be fetched + player.sendMessage(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) + .build().toChatComponentText()); + return; + } + + final UUID uuid = uuidOptional.get(); + if (listOptional.get().isInList(uuid)) { + // player already on list + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_IN_LIST) + .build().toChatComponentText()); + return; + } + + final StringBuilder notes = new StringBuilder(); + for (int i = 4; i < args.length; i++) { + notes.append(args[i]).append(" "); + } + + if (!communityRadarMod.getListManager().addRadarListEntry(args[2], uuid, args[3], notes.substring(0, notes.length() - 1))) { + // list is not private + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_FAILED) + .build().toChatComponentText()); + return; + } + + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_SUCCESS) + .build().toChatComponentText()); + Utils.updatePlayerByUuid(communityRadarMod, uuid, listManager.getExistingPrefixes()); + }); + } + + /** + * Handles the player - remove subcommand. + * + * @param player The player, which executed the subcommand. + * @param args The arguments passed to the main command. + */ + private void handlePlayerRemoveSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + if (args.length != 4) { + // missing arguments + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().toChatComponentText()); + return; + } + + final RadarListManager listManager = communityRadarMod.getListManager(); + final Optional listOptional = listManager.getRadarList(args[2]); + if (!listOptional.isPresent()) { + // list is not existing + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_FAILED) + .build().toChatComponentText()); + return; + } + + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) + .build().toChatComponentText()); + final RadarList list = listOptional.get(); + Utils.getUUID(communityRadarMod, args[3]).thenAccept(uuidOptional -> { + if (!uuidOptional.isPresent()) { + // player uuid could not be fetched + player.sendMessage(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) + .build().toChatComponentText()); + return; + } + + final UUID uuid = uuidOptional.get(); + if (!list.isInList(uuid)) { + // player uuid not on list + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_NOT_IN_LIST) + .build().toChatComponentText()); + return; + } + + list.getPlayerMap().remove(uuid); + Utils.updatePlayerByUuid(communityRadarMod, uuid, listManager.getExistingPrefixes()); + player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_SUCCESS) + .build().toChatComponentText()); + }); + } +} diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java new file mode 100644 index 0000000..f292c66 --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java @@ -0,0 +1,108 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.command; + +import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.Messages; +import io.github.communityradargg.forgemod.util.RadarMessage; +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.server.MinecraftServer; +import org.jetbrains.annotations.NotNull; + +import java.util.Arrays; +import java.util.List; +import java.util.Locale; + +/** + * The class containing all logic for the radar command. + */ +public class RadarCommand extends CommandBase { + private final CommunityRadarMod communityRadarMod; + + /** + * Constructs a {@link RadarCommand}. + * + * @param communityRadarMod The mod main class instance. + */ + public RadarCommand(final CommunityRadarMod communityRadarMod) { + this.communityRadarMod = communityRadarMod; + } + + @Override + public @NotNull String getName() { + return "radar"; + } + + @Override + public @NotNull String getUsage(final @NotNull ICommandSender sender) { + return "/radar"; + } + + @Override + public @NotNull List getAliases() { + return Arrays.asList("communityradar", "scammer", "trustedmm", "mm"); + } + + @Override + public int getRequiredPermissionLevel() { + return 0; + } + + @Override + public boolean checkPermission(final @NotNull MinecraftServer server, final @NotNull ICommandSender sender) { + return sender instanceof EntityPlayer; + } + + @Override + public void execute(final @NotNull MinecraftServer server, final @NotNull ICommandSender sender, final String @NotNull [] args) { + if (!(sender instanceof EntityPlayer)) { + sender.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.NOT_PLAYER) + .build() + .toChatComponentText()); + return; + } + + final EntityPlayer player = (EntityPlayer) sender; + Subcommand subcommand = null; + if (args.length == 0) { + subcommand = new HelpSubcommand(communityRadarMod, player); + } + + if (subcommand == null) { + switch (args[0].toUpperCase(Locale.ENGLISH)) { + case "CHECK": + subcommand = new CheckSubcommand(communityRadarMod, player, args); + break; + case "LIST": + subcommand = new ListSubcommand(communityRadarMod, player, args); + break; + case "PLAYER": + subcommand = new PlayerSubcommand(communityRadarMod, player, args); + break; + case "LISTS": + subcommand = new ListsSubcommand(communityRadarMod, player); + break; + default: + subcommand = new HelpSubcommand(communityRadarMod, player); + break; + } + } + + subcommand.run(); + } +} diff --git a/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java rename to versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java new file mode 100644 index 0000000..9277aa6 --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java @@ -0,0 +1,77 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.event; + +import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.Utils; +import net.minecraft.util.text.TextComponentString; +import net.minecraftforge.client.event.ClientChatReceivedEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.jetbrains.annotations.NotNull; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * A class containing a listener for client chat receiving. + */ +public class ClientChatReceivedListener { + /** + * A pattern matching private messages (in and out) and payments (in and out) as well as global and plot chat messages with the player name (nicked, bedrock and java) as only group. + */ + private static final Pattern PATTERN = Pattern.compile("[A-Za-z\\-+]+\\s\\u2503\\s(~?!?\\w{1,16})"); + private final CommunityRadarMod communityRadarMod; + + /** + * Constructs the class {@link ClientChatReceivedListener}. + * + * @param communityRadarMod An instance of the {@link CommunityRadarMod} class. + */ + public ClientChatReceivedListener(final @NotNull CommunityRadarMod communityRadarMod) { + this.communityRadarMod = communityRadarMod; + } + + /** + * The listener for the {@link ClientChatReceivedEvent} event. + * + * @param event The event. + */ + @SubscribeEvent + public void onClientChatReceived(final ClientChatReceivedEvent event) { + if (!communityRadarMod.isOnGrieferGames()) { + return; + } + + final Matcher matcher = PATTERN.matcher(event.getMessage().getUnformattedText()); + if (!matcher.find()) { + return; + } + + final String playerName = matcher.group(1); + if (playerName.startsWith("~")) { + // nicked player + return; + } + + Utils.getUUID(communityRadarMod, playerName).thenAccept(uuid -> { + if (uuid.isPresent() && communityRadarMod.getListManager().isInList(uuid.get())) { + event.setMessage(new TextComponentString(communityRadarMod.getListManager().getPrefix(uuid.get()).replace("&", "§")) + .appendText(" §r") + .appendText(event.getMessage().getFormattedText())); + } + }); + } +} diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java new file mode 100644 index 0000000..7bd4892 --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java @@ -0,0 +1,75 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.event; + +import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.Utils; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.network.FMLNetworkEvent; +import org.jetbrains.annotations.NotNull; + +import java.net.InetSocketAddress; +import java.net.SocketAddress; + +/** + * A class containing listeners for player connect and disconnect from and to servers. + */ +public class ClientConnectionDisconnectListener { + private final CommunityRadarMod communityRadarMod; + + /** + * Constructs the class {@link ClientConnectionDisconnectListener}. + * + * @param communityRadarMod An instance of the {@link CommunityRadarMod} class. + */ + public ClientConnectionDisconnectListener(final @NotNull CommunityRadarMod communityRadarMod) { + this.communityRadarMod = communityRadarMod; + } + + /** + * The listener for the {@link FMLNetworkEvent.ClientConnectedToServerEvent} event. + * + * @param event The event. + */ + @SubscribeEvent + public void onFMLNetworkClientConnectedToServer(final FMLNetworkEvent.ClientConnectedToServerEvent event) { + if (event.isLocal()) { + return; + } + + final SocketAddress socketAddress = event.getManager().getRemoteAddress(); + if (!(socketAddress instanceof InetSocketAddress)) { + return; + } + + final String hostname = ((InetSocketAddress) socketAddress).getHostName(); + if (Utils.isGrieferGamesHostName(hostname)) { + communityRadarMod.setOnGrieferGames(true); + return; + } + communityRadarMod.setOnGrieferGames(false); + } + + /** + * The listener for the {@link FMLNetworkEvent.ClientDisconnectionFromServerEvent} event. + * + * @param event The event. + */ + @SubscribeEvent + public void onFMLNetworkClientDisconnectionFromServer(final FMLNetworkEvent.ClientDisconnectionFromServerEvent event) { + communityRadarMod.setOnGrieferGames(false); + } +} diff --git a/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java rename to versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java new file mode 100644 index 0000000..71fadb2 --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java @@ -0,0 +1,51 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.event; + +import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.Utils; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.jetbrains.annotations.NotNull; + +/** + * A class containing a listener for player name formatting. + */ +public class PlayerNameFormatListener { + private final CommunityRadarMod communityRadarMod; + + /** + * Constructs the class {@link PlayerNameFormatListener}. + * + * @param communityRadarMod An instance of the {@link CommunityRadarMod} class. + */ + public PlayerNameFormatListener(final @NotNull CommunityRadarMod communityRadarMod) { + this.communityRadarMod = communityRadarMod; + } + + /** + * The listener for the {@link PlayerEvent.NameFormat} event. + * + * @param event The event. + */ + @SubscribeEvent + public void onPlayerNameFormat(final PlayerEvent.NameFormat event) { + if (!communityRadarMod.isOnGrieferGames()) { + return; + } + Utils.updatePlayerNameTag(communityRadarMod, event.getEntityPlayer(), communityRadarMod.getListManager().getExistingPrefixes()); + } +} diff --git a/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java similarity index 98% rename from src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java rename to versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java index 6685429..aa044f1 100644 --- a/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java @@ -39,7 +39,7 @@ */ public class RadarList { private static final Logger LOGGER = LogManager.getLogger(RadarList.class); - private transient final CommunityRadarMod communityRadarMod; + private final transient CommunityRadarMod communityRadarMod; @SerializedName("VERSION") @SuppressWarnings("unused") // needed in future private final int version = 1; @@ -190,7 +190,7 @@ public void saveList() { */ private void loadPublicList() { try (final BufferedReader reader = new BufferedReader(new InputStreamReader(new URL(this.url).openStream()))) { - final List players = RadarListManager.getGson() + final List players = RadarListManager.GSON .fromJson(reader, new TypeToken>() {}.getType()); players.forEach(this::loadRadarListEntry); } catch (final IOException | JsonIOException | JsonSyntaxException e) { diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java new file mode 100644 index 0000000..1ae3549 --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java @@ -0,0 +1,112 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.radarlistmanager; + +import com.google.gson.annotations.SerializedName; +import org.jetbrains.annotations.NotNull; + +import java.time.LocalDateTime; +import java.util.UUID; + +/** + * A class representing an entry in a radar list. + */ +public class RadarListEntry { + @SerializedName("uuid") + private final UUID uuid; + @SerializedName("name") + private final String name; + @SerializedName("cause") + private final String cause; + @SerializedName("entryCreatedAt") + private final LocalDateTime entryCreationDate; + @SerializedName("entryUpdatedAt") + private final LocalDateTime entryUpdateDate; + @SerializedName("expiryDays") + private final int expiryDays; + + /** + * Constructs a {@link RadarListEntry}. + * + * @param uuid The player uuid of the entry. + * @param name The player name of the entry + * @param cause The cause of the entry. + * @param entryCreationDate The date when the entry was created the first time. + */ + public RadarListEntry(final @NotNull UUID uuid, final @NotNull String name, final @NotNull String cause, final @NotNull LocalDateTime entryCreationDate) { + this.uuid = uuid; + this.name = name; + this.cause = cause; + this.entryCreationDate = entryCreationDate; + this.entryUpdateDate = entryCreationDate; + this.expiryDays = -1; + } + + /** + * Gets the player uuid of the entry. + * + * @return Returns the player uuid of the entry. + */ + public @NotNull UUID uuid() { + return uuid; + } + + /** + * Gets the player name of the entry. + * + * @return Returns the player name of the entry. + */ + public @NotNull String name() { + return name; + } + + /** + * Gets the cause of the entry. + * + * @return Returns the cause of the entry. + */ + public @NotNull String cause() { + return cause; + } + + /** + * Gets the creation datetime of the entry. + * + * @return Returns the creation datetime of the entry. + */ + public LocalDateTime entryCreationDate() { + return entryCreationDate; + } + + /** + * Gets the update datetime of the entry. + * + * @return Returns the update datetime of the entry. + */ + public LocalDateTime entryUpdateDate() { + return entryUpdateDate; + } + + /** + * Gets the expiry days of the entry. + * + * @return Returns the expiry days of the entry. + */ + @SuppressWarnings("unused") // included - json has this field + public int expiryDays() { + return expiryDays; + } +} \ No newline at end of file diff --git a/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java similarity index 97% rename from src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java rename to versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java index 233b216..a159d76 100644 --- a/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java @@ -51,7 +51,7 @@ */ public class RadarListManager { private static final Logger LOGGER = LogManager.getLogger(RadarListManager.class); - private static final Gson GSON = new GsonBuilder() + static final Gson GSON = new GsonBuilder() .setPrettyPrinting() .registerTypeAdapter(LocalDateTime.class, new GsonLocalDateTimeAdapter()) .registerTypeAdapter(Map.class, new GsonRadarListPlayerMapAdapter()) @@ -307,15 +307,6 @@ public void loadPrivateLists() { return new HashSet<>(); } - /** - * Gets the {@link Gson} instance with project relevant settings. - * - * @return Returns the pre-configured {@link Gson} instance. - */ - public static @NotNull Gson getGson() { - return GSON; - } - /** * Gets all existing prefixes. * diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java new file mode 100644 index 0000000..95737d8 --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java @@ -0,0 +1,26 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.radarlistmanager; + +/** + * An enum representing the visibility state of a radar list. + */ +public enum RadarListVisibility { + /** The state when the list is a public one. */ + PUBLIC, + /** The state when the list is a private one. */ + PRIVATE +} \ No newline at end of file diff --git a/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java rename to versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java diff --git a/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java rename to versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java diff --git a/src/main/java/io/github/communityradargg/forgemod/util/Messages.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Messages.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/util/Messages.java rename to versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Messages.java diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java new file mode 100644 index 0000000..32b5c13 --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java @@ -0,0 +1,106 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.util; + +import net.minecraft.util.text.TextComponentString; +import org.jetbrains.annotations.NotNull; + +/** + * A class representing a message that can be shown to a player. + */ +public class RadarMessage { + private final String text; + + /** + * Constructs a {@link RadarMessage}. + * + * @param text The text for the message. + * @param includePrefix Whether a prefix should be included in the message. + */ + private RadarMessage(final @NotNull String text, final boolean includePrefix) { + this.text = (includePrefix ? Messages.PREFIX : "") + text; + } + + /** + * Converts this class instance to a {@link TextComponentString}. + * + * @return Returns the text converted to a {@link TextComponentString}. + */ + public @NotNull TextComponentString toChatComponentText() { + return new TextComponentString(this.text); + } + + /** + * A class that serves as a builder for the class {@link RadarMessage}. + */ + public static class RadarMessageBuilder { + private String text; + private boolean includePrefix; + + /** + * Constructs a {@link RadarMessageBuilder}. + * + * @param text The text for the builder. + */ + public RadarMessageBuilder(final @NotNull String text) { + this.text = text; + this.includePrefix = true; + } + + /** + * Replaces old text with a new one in the text stored in this builder. + * + * @param oldText The old text to replace. + * @param newText The replacement text. + * @return Returns the builder after replacing the text. + */ + public @NotNull RadarMessageBuilder replace(final @NotNull String oldText, final @NotNull String newText) { + this.text = this.text.replace(oldText, newText); + return this; + } + + /** + * Replaces old text with a new one in the text stored in this builder by considering color codes. + * + * @param oldText The old text to replace. + * @param newText The replacement text. + * @return Returns the builder after replacing the text and color codes. + */ + public @NotNull RadarMessageBuilder replaceWithColorCodes(final @NotNull String oldText, final @NotNull String newText) { + this.text = this.text.replace(oldText, newText.replace("&", "§")); + return this; + } + + /** + * Sets the prefix exclude state in the builder. + * + * @return Returns the builder after setting the prefix exclude state. + */ + public @NotNull RadarMessageBuilder excludePrefix() { + this.includePrefix = false; + return this; + } + + /** + * Builds a {@link RadarMessage} out of the builder. + * + * @return Returns the build {@link RadarMessage}. + */ + public @NotNull RadarMessage build() { + return new RadarMessage(text, includePrefix); + } + } +} diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java new file mode 100644 index 0000000..ebab67f --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java @@ -0,0 +1,279 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.util; + +import com.google.gson.Gson; +import com.google.gson.JsonObject; +import io.github.communityradargg.forgemod.CommunityRadarMod; +import net.minecraft.client.Minecraft; +import net.minecraft.client.network.NetHandlerPlayClient; +import net.minecraft.client.network.NetworkPlayerInfo; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TextComponentString; +import net.minecraft.world.World; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.NotNull; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; +import java.util.regex.Pattern; + +/** + * A class with some util methods. + */ +public class Utils { + private static final Logger LOGGER = LogManager.getLogger(Utils.class); + private static final String MOJANG_API_NAME_TO_UUID = "https://api.mojang.com/users/profiles/minecraft/"; + private static final Pattern UUID_MOJANG_API_PATTERN = Pattern.compile("(\\w{8})(\\w{4})(\\w{4})(\\w{4})(\\w{12})"); + private static final DateTimeFormatter readableDateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"); + private static final Map uuidNameCache = new HashMap<>(); + + /** + * Tries to get the uuid to the player name from the world. + * + * @param communityRadarMod The mod main class instance. + * @param playerName The player name to get the corresponding uuid. + * @return Returns a CompletableFuture with an optional with the player uuid. + */ + public static @NotNull CompletableFuture> getUUID(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull String playerName) { + // user has to be in a world + if (Minecraft.getMinecraft().world == null) { + return CompletableFuture.completedFuture(Optional.empty()); + } + + // If the UUID has been cached, returning from the map. + if (uuidNameCache.containsKey(playerName)) { + return CompletableFuture.completedFuture(Optional.of(uuidNameCache.get(playerName))); + } + + final NetHandlerPlayClient connection = Minecraft.getMinecraft().getConnection(); + if (connection == null) { + return CompletableFuture.completedFuture(Optional.empty()); + } + + // Checking if there is a player with same name in the loaded world. If so, returning UUID from EntityPlayer. + for (final NetworkPlayerInfo networkPlayerInfo : connection.getPlayerInfoMap()) { + if (networkPlayerInfo.getGameProfile().getName().equalsIgnoreCase(playerName)) { + uuidNameCache.put(playerName, networkPlayerInfo.getGameProfile().getId()); + return CompletableFuture.completedFuture(Optional.of(networkPlayerInfo.getGameProfile().getId())); + } + } + + if (playerName.startsWith("!") || playerName.startsWith("~")) { + return CompletableFuture.completedFuture(Optional.empty()); + } + + // If no player with same name is in the world, try fetching the UUID from the Mojang-API. + return requestUuidForName(communityRadarMod, playerName); + } + + /** + * Requests an uuid to a player name, from the Mojang API. + * + * @param communityRadarMod The mod main class instance. + * @param playerName The player name to get the uuid for. + * @return Returns a CompletableFuture with an optional with the requested uuid, it will be empty if an error occurred on requesting. + */ + private static @NotNull CompletableFuture> requestUuidForName(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull String playerName) { + final String urlText = MOJANG_API_NAME_TO_UUID + playerName; + return CompletableFuture.supplyAsync(() -> { + HttpURLConnection connection = null; + try { + final URL url = new URL(urlText); + connection = (HttpURLConnection) url.openConnection(); + connection.setConnectTimeout(3000); + connection.setReadTimeout(3000); + connection.setRequestMethod("GET"); + connection.setRequestProperty("User-Agent", CommunityRadarMod.MOD_ID + "/" + communityRadarMod.getVersion()); + + if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { + LOGGER.warn("Requesting data from '{}' resulted in following status code: {}", urlText, connection.getResponseCode()); + return Optional.empty(); + } + + try (final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) { + final JsonObject json = new Gson().fromJson(reader, JsonObject.class); + if (json == null || !json.has("id") || !json.has("name")) { + connection.disconnect(); + return Optional.empty(); + } + + final UUID uuid = UUID.fromString(UUID_MOJANG_API_PATTERN.matcher(json.get("id").getAsString()).replaceAll("$1-$2-$3-$4-$5")); + uuidNameCache.put(playerName, uuid); + connection.disconnect(); + return Optional.of(uuid); + } + } catch (final Exception e) { + if (connection != null) { + connection.disconnect(); + } + LOGGER.error("Trying to request data from '{}' resulted in an exception", urlText, e); + return Optional.empty(); + } + }); + } + + /** + * Formats a given date time in a human-readable form. + * + * @param localDateTime The local date time to format. + * @return Returns the formatted date time. + */ + public static @NotNull String formatDateTime(final @NotNull LocalDateTime localDateTime) { + return localDateTime.format(readableDateTimeFormatter); + } + + /** + * Checks if a given hostname is a hostname of GrieferGames. + *

+ * Following domains are taken into account: + *
+ * - griefergames.net + *
+ * - griefergames.de + *
+ * - griefergames.live + * + * @param hostName The hostname to check. + * @return Returns, whether the given hostname is one of the GrieferGames hostnames. + */ + public static boolean isGrieferGamesHostName(final @NotNull String hostName) { + final String filteredHostName = Optional.of(hostName) + .filter(host -> host.endsWith(".")) + .map(host -> host.substring(0, host.length() - 1).toLowerCase(Locale.ENGLISH)) + .orElse(hostName.toLowerCase(Locale.ENGLISH)); + return filteredHostName.endsWith("griefergames.net") || filteredHostName.endsWith("griefergames.de") || filteredHostName.endsWith("griefergames.live"); + } + + /** + * Gets a {@link NetworkPlayerInfo} by the uuid of a player. + * + * @param uuid The uuid to get the network player info for. + * @return Returns an optional with the network player info of an online player to the uuid. + */ + private static @NotNull Optional getNetworkPlayerInfoByUuid(final @NotNull UUID uuid) { + final NetHandlerPlayClient connection = Minecraft.getMinecraft().getConnection(); + if (connection == null) { + return Optional.empty(); + } + return connection.getPlayerInfoMap().stream() + .filter(player -> uuid.equals(player.getGameProfile().getId())) + .findFirst(); + } + + /** + * Gets a {@link EntityPlayer} by the uuid of a player. + * + * @param uuid The uuid to get the entity player for. + * @return Returns an optional with the entity player to the uuid. + */ + private static @NotNull Optional getEntityPlayerByUuid(final @NotNull UUID uuid) { + final World world = Minecraft.getMinecraft().world; + if (world == null) { + return Optional.empty(); + } + + return world.playerEntities.stream() + .filter(player -> uuid.equals(player.getGameProfile().getId())) + .findFirst(); + } + + /** + * Updates a player display name and name tag by its uuid. + * + * @param communityRadarMod The mod main class instance. + * @param uuid The uuid to update the corresponding player. + */ + public static void updatePlayerByUuid(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull UUID uuid, final @NotNull Set oldPrefixes) { + getEntityPlayerByUuid(uuid).ifPresent(player -> updatePlayerNameTag(communityRadarMod, player, oldPrefixes)); + getNetworkPlayerInfoByUuid(uuid).ifPresent(networkPlayerInfo -> updatePlayerPrefix(communityRadarMod, networkPlayerInfo, oldPrefixes)); + } + + /** + * Handles updating the name tag of a player entity. + * + * @param communityRadarMod The mod main class instance. + * @param player The player entity to update the name tag. + * @param oldPrefixes The old prefixes that need to be removed before adding the new one. + */ + public static void updatePlayerNameTag(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player, final @NotNull Set oldPrefixes) { + player.getPrefixes().removeIf(prefix -> oldPrefixes.stream().anyMatch(oldPrefix -> new TextComponentString(oldPrefix.replace("&", "§") + " ").getUnformattedText().equals(prefix.getUnformattedText()))); + final String addonPrefix = communityRadarMod.getListManager() + .getPrefix(player.getGameProfile().getId()) + .replace("&", "§"); + + if (!addonPrefix.isEmpty()) { + player.addPrefix(new TextComponentString(addonPrefix + " ")); + } + } + + /** + * Handles updating the player prefixes in the display name. + * + * @param communityRadarMod The mod main class instance. + * @param oldPrefixes The old prefixes that need to be removed before adding the new one. + */ + public static void updatePrefixes(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull Set oldPrefixes) { + final NetHandlerPlayClient connection = Minecraft.getMinecraft().getConnection(); + if (connection == null) { + return; + } + connection.getPlayerInfoMap().forEach(player -> updatePlayerPrefix(communityRadarMod, player, oldPrefixes)); + } + + /** + * Handles updating the player prefix in the display name of a single player. + * + * @param communityRadarMod The mod main class instance. + * @param player The player to update. + * @param oldPrefixes The old prefixes that need to be removed before adding the new one. + */ + private static void updatePlayerPrefix(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull NetworkPlayerInfo player, final @NotNull Set oldPrefixes) { + if (player.getGameProfile().getId() == null || player.getDisplayName() == null) { + return; + } + + final ITextComponent displayName = player.getDisplayName(); + ITextComponent newDisplayName = displayName; + for (final String prefix : oldPrefixes) { + if (!displayName.getUnformattedText().startsWith(new TextComponentString(prefix.replace("&", "§") + " ").getUnformattedText())) { + continue; + } + newDisplayName = displayName.getSiblings().get(displayName.getSiblings().size() - 1); + } + + final String addonPrefix = communityRadarMod.getListManager() + .getPrefix(player.getGameProfile().getId()) + .replace("&", "§"); + if (!addonPrefix.isEmpty()) { + newDisplayName = new TextComponentString(addonPrefix.replace("&", "§") + " ").appendSibling(newDisplayName); + } + player.setDisplayName(newDisplayName); + } +} diff --git a/src/main/resources/assets/communityradar/icon.png b/versions/1.12.2/src/main/resources/assets/communityradar/icon.png similarity index 100% rename from src/main/resources/assets/communityradar/icon.png rename to versions/1.12.2/src/main/resources/assets/communityradar/icon.png diff --git a/versions/1.12.2/src/main/resources/mcmod.info b/versions/1.12.2/src/main/resources/mcmod.info new file mode 100644 index 0000000..0aa4852 --- /dev/null +++ b/versions/1.12.2/src/main/resources/mcmod.info @@ -0,0 +1,19 @@ +[ + { + "modid": "${mod_id}", + "name": "CommunityRadar Mod - Official - 1.12.2", + "description": "The Official CommunityRadar Forge 1.12.2 Mod.", + "version": "${version}", + "mcversion": "${mc_version}", + "url": "https://community-radar.de", + "updateUrl": "", + "authorList": [ + "BlockyTheDev", + "MrMystery" + ], + "credits": "CommunityRadar-Team, BlockyTheDev, MrMystery", + "logoFile": "assets/${mod_id}/icon.png", + "screenshots": [], + "dependencies": [] + } +] diff --git a/versions/1.12.2/src/main/resources/pack.mcmeta b/versions/1.12.2/src/main/resources/pack.mcmeta new file mode 100644 index 0000000..4d007bc --- /dev/null +++ b/versions/1.12.2/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "The Official CommunityRadar Forge 1.12.2 Mod.", + "pack_format": 3 + } +} diff --git a/versions/1.8.9/build.gradle.kts b/versions/1.8.9/build.gradle.kts new file mode 100644 index 0000000..6154f67 --- /dev/null +++ b/versions/1.8.9/build.gradle.kts @@ -0,0 +1,37 @@ +import dev.architectury.pack200.java.Pack200Adapter + +val versionText: String by extra +val modIdText: String by extra + +dependencies { + implementation(project(":common")) + + minecraft(rootProject.libs.minecraft189) + mappings(rootProject.libs.mcpMappings189) + forge(rootProject.libs.forge189) +} + +loom { + forge { + pack200Provider.set(Pack200Adapter()) + } +} + +tasks { + withType { + // https://github.com/gradle/gradle/issues/861 + inputs.property("version", versionText) + inputs.property("mc_version", libs.versions.minecraft189.get()) + inputs.property("mod_id", modIdText) + + filesMatching("mcmod.info") { + expand( + mapOf( + "version" to versionText, + "mc_version" to libs.versions.minecraft189.get(), + "mod_id" to modIdText + ) + ) + } + } +} diff --git a/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java similarity index 98% rename from src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java rename to versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java index c879975..0bcf96e 100644 --- a/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java @@ -59,7 +59,7 @@ public void init(final FMLInitializationEvent event) { version = modContainer == null ? "UNKNOWN" : modContainer.getVersion(); final File directoryPath = Paths.get(new File("") - .getAbsolutePath(),"communityradar", "lists") + .getAbsolutePath(),"communityradar", "lists") .toFile(); if (!directoryPath.exists() && !directoryPath.mkdirs()) { LOGGER.error("Could not create directory: {}", directoryPath); diff --git a/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java rename to versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java diff --git a/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java rename to versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java diff --git a/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java rename to versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java diff --git a/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java rename to versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java diff --git a/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java rename to versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java diff --git a/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java similarity index 97% rename from src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java rename to versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java index 698ff72..5bc6668 100644 --- a/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java @@ -71,7 +71,8 @@ public boolean canCommandSenderUseCommand(final ICommandSender sender) { public void processCommand(final ICommandSender sender, final String[] args) { if (!(sender instanceof EntityPlayer)) { sender.addChatMessage(new RadarMessage.RadarMessageBuilder(Messages.NOT_PLAYER) - .build().toChatComponentText()); + .build() + .toChatComponentText()); return; } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java new file mode 100644 index 0000000..87f46b6 --- /dev/null +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java @@ -0,0 +1,26 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.command; + +/** + * Represents a subcommand of a command. + */ +public interface Subcommand { + /** + * Runs the logic defined in the subcommand. + */ + void run(); +} diff --git a/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java rename to versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java diff --git a/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java rename to versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java new file mode 100644 index 0000000..bd3253c --- /dev/null +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java @@ -0,0 +1,58 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.event; + +import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.Utils; +import net.minecraft.client.Minecraft; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.InputEvent; +import org.jetbrains.annotations.NotNull; + +/** + * A class containing a listener for key input. + */ +public class KeyInputListener { + private final CommunityRadarMod communityRadarMod; + + /** + * Constructs the class {@link KeyInputListener}. + * + * @param communityRadarMod An instance of the {@link CommunityRadarMod} class. + */ + public KeyInputListener(final @NotNull CommunityRadarMod communityRadarMod) { + this.communityRadarMod = communityRadarMod; + } + + /** + * The listener for the {@link InputEvent.KeyInputEvent} event. + * + * @param event The event. + */ + @SubscribeEvent + public void onKeyInput(final InputEvent.KeyInputEvent event) { + if (!communityRadarMod.isOnGrieferGames()) { + return; + } + + final Minecraft mc = Minecraft.getMinecraft(); + if (!mc.gameSettings.keyBindPlayerList.isPressed()) { + return; + } + + Utils.updatePrefixes(communityRadarMod, communityRadarMod.getListManager().getExistingPrefixes()); + } +} diff --git a/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java rename to versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java new file mode 100644 index 0000000..aa044f1 --- /dev/null +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java @@ -0,0 +1,218 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.radarlistmanager; + +import com.google.gson.JsonIOException; +import com.google.gson.JsonSyntaxException; +import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; +import io.github.communityradargg.forgemod.CommunityRadarMod; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.NotNull; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.URL; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; + +/** + * A class representing a radar list. + */ +public class RadarList { + private static final Logger LOGGER = LogManager.getLogger(RadarList.class); + private final transient CommunityRadarMod communityRadarMod; + @SerializedName("VERSION") + @SuppressWarnings("unused") // needed in future + private final int version = 1; + @SerializedName("namespace") + private final String namespace; + @SerializedName("playerMap") + private final Map playerMap; + @SerializedName("visibility") + private final RadarListVisibility visibility; + @SerializedName("prefix") + private String prefix; + private transient String url; + + /** + * Constructs a {@link RadarList}. + * + * @param communityRadarMod The mod main class instance. + * @param namespace The namespace for the list. + * @param prefix The prefix for the list. + * @param url The url for the list. + * @param visibility The visibility of the list. + */ + public RadarList(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull String namespace, final @NotNull String prefix, final @NotNull String url, final @NotNull RadarListVisibility visibility) { + this.communityRadarMod = communityRadarMod; + this.namespace = namespace; + this.prefix = prefix; + this.visibility = visibility; + this.playerMap = new HashMap<>(); + this.url = url; + load(); + } + + /** + * Checks, whether a given uuid is in the list. + * + * @param uuid The uuid to check. + * @return Returns, whether the given uuid is in the list. + */ + public boolean isInList(final @NotNull UUID uuid) { + return playerMap.get(uuid) != null; + } + + /** + * Gets a radar list entry by a given uuid. + * + * @param uuid The uuid to get the entry for. + * @return Returns an optional with the found entry. + */ + public @NotNull Optional getRadarListEntry(final @NotNull UUID uuid) { + return Optional.ofNullable(playerMap.get(uuid)); + } + + /** + * Gets the namespace of the list. + * + * @return Returns the namespace. + */ + public @NotNull String getNamespace() { + return namespace; + } + + /** + * Gets the prefix of the list. + * + * @return Returns the prefix. + */ + public @NotNull String getPrefix() { + return prefix; + } + + /** + * Sets the prefix of the list. + * + * @param prefix The prefix to set. + */ + public void setPrefix(final @NotNull String prefix) { + this.prefix = prefix; + } + + /** + * Gets the visibility of the list. + * + * @return Returns the visibility. + */ + public @NotNull RadarListVisibility getRadarListVisibility() { + return visibility; + } + + /** + * Gets the url of the list. + * + * @return Returns the url. + */ + public @NotNull String getUrl() { + return url; + } + + /** + * Sets the url of the list. + * + * @param url The url to set. + */ + public void setUrl(final @NotNull String url) { + this.url = url; + } + + /** + * Gets the player map of the list. + * + * @return Returns the player map. + */ + public @NotNull Map getPlayerMap() { + return playerMap; + } + + /** + * Adds a radar list entry to the list if it is private. + * + * @param radarListEntry The entry to add. + */ + public void addRadarListEntry(final @NotNull RadarListEntry radarListEntry) { + if (visibility == RadarListVisibility.PRIVATE) { + playerMap.put(radarListEntry.uuid(), radarListEntry); + saveList(); + } + } + + /** + * Loads a radar list entry. + * + * @param radarListEntry The entry to load. + */ + private void loadRadarListEntry(final @NotNull RadarListEntry radarListEntry) { + playerMap.put(radarListEntry.uuid(), radarListEntry); + } + + /** + * Saves a list to the disk if it is private. + */ + public void saveList() { + if (visibility == RadarListVisibility.PRIVATE) { + communityRadarMod.getListManager().saveRadarList(this); + } + } + + /** + * Loads a public list. + */ + private void loadPublicList() { + try (final BufferedReader reader = new BufferedReader(new InputStreamReader(new URL(this.url).openStream()))) { + final List players = RadarListManager.GSON + .fromJson(reader, new TypeToken>() {}.getType()); + players.forEach(this::loadRadarListEntry); + } catch (final IOException | JsonIOException | JsonSyntaxException e) { + LOGGER.error("Could not load public list", e); + } + } + + /** + * Validates the loaded list. + * + * @return Returns, whether the list is valid or not. + */ + public boolean validateList() { + return !(namespace == null || url == null || playerMap == null || visibility == null || prefix == null); + } + + /** + * Loads a list if it is public. + */ + public void load() { + if (visibility == RadarListVisibility.PUBLIC) { + loadPublicList(); + } + } +} diff --git a/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java rename to versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java new file mode 100644 index 0000000..a159d76 --- /dev/null +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java @@ -0,0 +1,320 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.radarlistmanager; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonIOException; +import com.google.gson.JsonSyntaxException; +import com.google.gson.reflect.TypeToken; +import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.radarlistmanager.adapters.GsonLocalDateTimeAdapter; +import io.github.communityradargg.forgemod.radarlistmanager.adapters.GsonRadarListPlayerMapAdapter; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * A class containing the methods to manage lists. + */ +public class RadarListManager { + private static final Logger LOGGER = LogManager.getLogger(RadarListManager.class); + static final Gson GSON = new GsonBuilder() + .setPrettyPrinting() + .registerTypeAdapter(LocalDateTime.class, new GsonLocalDateTimeAdapter()) + .registerTypeAdapter(Map.class, new GsonRadarListPlayerMapAdapter()) + .create(); + private final CommunityRadarMod communityRadarMod; + private final List lists; + private final String directoryPath; + + /** + * Constructs a {@link RadarListManager} + * + * @param communityRadarMod The mod main class instance. + * @param directoryPath The directory path of the list the manager manages. + */ + public RadarListManager(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull String directoryPath) { + this.lists = new ArrayList<>(); + this.communityRadarMod = communityRadarMod; + this.directoryPath = directoryPath; + } + + /** + * Checks if a given uuid is in a list. + * + * @param uuid The uuid to check. + * @return Returns, whether the uuid is in a list. + */ + public boolean isInList(final @NotNull UUID uuid) { + return lists.stream() + .anyMatch(list -> list.isInList(uuid)); + } + + /** + * Gets the first prefix linked to a given uuid. + * + * @param uuid The uuid to get the prefix for. + * @return Returns the prefix. + */ + public @NotNull String getPrefix(final @NotNull UUID uuid) { + return lists.stream() + .filter(list -> list.isInList(uuid)) + .map(RadarList::getPrefix) + .findFirst() + .orElse(""); + } + + /** + * Gets all existing namespaces. + * + * @return Returns a set with all existing namespaces. + */ + public @NotNull Set getNamespaces() { + return lists.stream() + .map(RadarList::getNamespace) + .collect(Collectors.toSet()); + } + + /** + * Gets an optional with a {@link RadarListEntry} by a given uuid. + * + * @param uuid The uuid to get the entry for. + * @return Returns an optional with the found entry. + */ + public @NotNull Optional getRadarListEntry(final @NotNull UUID uuid) { + return lists.stream() + .filter(list -> list.isInList(uuid)) + .findFirst() + .flatMap(list -> list.getRadarListEntry(uuid)); + } + + /** + * Gets an optional with a {@link RadarList} by a given namespace. + * + * @param namespace The namespace to get the list for. + * @return Returns an optional with the found list. + */ + public @NotNull Optional getRadarList(final @NotNull String namespace) { + return lists.stream() + .filter(list -> list.getNamespace().equalsIgnoreCase(namespace)) + .findFirst(); + } + + /** + * Adds a player entry to a list. + * + * @param namespace The namespace of the list. + * @param uuid The player uuid for the entry. + * @param name The player name for the entry. + * @param cause The cause for the entry. + * @return Returns, whether the entry was successfully added. + */ + public boolean addRadarListEntry(final @NotNull String namespace, final @NotNull UUID uuid, final @NotNull String name, final @NotNull String cause) { + if (getRadarListEntry(uuid).isPresent()) { + return false; + } + + final Optional listOptional = lists.stream() + .filter(list -> list.getNamespace().equalsIgnoreCase(namespace)) + .findFirst(); + + if (listOptional.isPresent()) { + final RadarList list = listOptional.get(); + + if (list.getRadarListVisibility() == RadarListVisibility.PRIVATE) { + list.addRadarListEntry(new RadarListEntry(uuid, name, cause, LocalDateTime.now())); + return true; + } + } + return false; + } + + /** + * Saves a radar list to disk if it is a private one. + * + * @param list The list to save. + */ + public void saveRadarList(final @NotNull RadarList list) { + if (list.getRadarListVisibility() != RadarListVisibility.PRIVATE) { + return; + } + + try (final FileWriter writer = new FileWriter(directoryPath + list.getNamespace() + ".json")) { + writer.write(GSON.toJson(list)); + } catch (final IOException e) { + LOGGER.error("Could not save list", e); + } + } + + /** + * Registers a private list. + * + * @param namespace The namespace of the list. + * @param prefix The prefix of the list. + * @return Returns, whether the list was successfully registered. + */ + public boolean registerPrivateList(final @NotNull String namespace, final @NotNull String prefix) { + final boolean namespaceExists = getNamespaces().stream() + .anyMatch(namespace::equalsIgnoreCase); + if (namespaceExists) { + return false; + } + + lists.add(new RadarList(communityRadarMod, namespace, prefix, directoryPath + namespace + ".json", RadarListVisibility.PRIVATE)); + + final Optional listOptional = getRadarList(namespace); + if (!listOptional.isPresent()) { + return false; + } + + saveRadarList(listOptional.get()); + return true; + } + + /** + * Registers a public list. + * + * @param namespace The namespace of the list. + * @param prefix The prefix of the list. + * @return Returns, whether the list was successfully registered. + */ + @SuppressWarnings("BooleanMethodIsAlwaysInverted") // better understanding of code logic + public boolean registerPublicList(final @NotNull String namespace, final @NotNull String prefix, final @NotNull String url) { + final boolean namespaceExists = getNamespaces().stream() + .anyMatch(namespace::equalsIgnoreCase); + if (namespaceExists) { + return false; + } + + lists.add(new RadarList(communityRadarMod, namespace, prefix, url, RadarListVisibility.PUBLIC)); + return true; + } + + /** + * Adds a radar list if it is not null. + * + * @param list The nullable radar list. + */ + private void addRadarList(final @Nullable RadarList list) { + if (list != null) { + lists.add(list); + } + } + + /** + * Unregisters a list by its namespace. + * + * @param namespace The namespace of the list. + * @return Returns, whether the list was successfully unregistered. + */ + public boolean unregisterList(final @NotNull String namespace) { + final Optional listOptional = getRadarList(namespace); + if (!listOptional.isPresent()) { + return false; + } + + final RadarList list = listOptional.get(); + if (list.getRadarListVisibility() == RadarListVisibility.PUBLIC) { + return false; + } + + final File file = new File(list.getUrl()); + if (file.exists() && !file.delete()) { + return false; + } + + lists.remove(list); + return true; + } + + /** + * Loads the private lists from disk. + */ + public void loadPrivateLists() { + getJsonUrls(directoryPath) + .forEach(jsonUrl -> loadRadarListFromFile(jsonUrl) + .ifPresent(this::addRadarList)); + } + + /** + * Loads a radar list from a file. + * + * @param filePath The path to the file. + * @return Returns an optional with the loaded radar list. + */ + private @NotNull Optional loadRadarListFromFile(final @NotNull String filePath) { + try (final FileReader reader = new FileReader(filePath)) { + final RadarList list = GSON.fromJson(reader, new TypeToken() {}.getType()); + list.setUrl(filePath); + if (list.validateList()) { + return Optional.of(list); + } + } catch (final IOException | IllegalStateException | JsonIOException | JsonSyntaxException e) { + LOGGER.error("Could not load list from file", e); + } + return Optional.empty(); + } + + /** + * Gets the json urls for the directory paths. + * + * @param directoryPath The directory path. + * @return Returns a set with all json urls. + */ + private @NotNull Set getJsonUrls(final @NotNull String directoryPath) { + try (final Stream paths = Files.walk(Paths.get(directoryPath))) { + return paths + .filter(Files::isRegularFile) + .map(Path::toString) + .filter(string -> string.endsWith(".json")) + .collect(Collectors.toSet()); + } catch (final IOException e) { + LOGGER.error("Could not get json urls", e); + } + return new HashSet<>(); + } + + /** + * Gets all existing prefixes. + * + * @return Returns a set with all existing prefixes. + */ + public @NotNull Set getExistingPrefixes() { + return lists.stream() + .map(RadarList::getPrefix) + .collect(Collectors.toSet()); + } +} diff --git a/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java rename to versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java new file mode 100644 index 0000000..3e671ad --- /dev/null +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java @@ -0,0 +1,43 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.radarlistmanager.adapters; + +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonParseException; +import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; + +import java.lang.reflect.Type; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +/** + * A class with an adapter for serialization and deserialization of the class {@link LocalDateTime} for the GSON library. + */ +public class GsonLocalDateTimeAdapter implements JsonSerializer, JsonDeserializer { + @Override + public LocalDateTime deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) throws JsonParseException { + return LocalDateTime.parse(json.getAsString(), DateTimeFormatter.ISO_DATE_TIME); + } + + @Override + public JsonElement serialize(final LocalDateTime localDateTime, final Type typeOfSrc, final JsonSerializationContext context) { + return new JsonPrimitive(localDateTime.format(DateTimeFormatter.ISO_DATE_TIME)); + } +} diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java new file mode 100644 index 0000000..877d1f4 --- /dev/null +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java @@ -0,0 +1,52 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.radarlistmanager.adapters; + +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonParseException; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; +import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; + +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * A class with an adapter for serialization and deserialization of following structure {@code Map} for the GSON library. + */ +public class GsonRadarListPlayerMapAdapter implements JsonSerializer>, JsonDeserializer> { + @Override + public Map deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) throws JsonParseException { + final JsonArray playerMapJsonArray = json.getAsJsonArray(); + final Map playerMap = new HashMap<>(); + + playerMapJsonArray.forEach(jsonElement -> { + final RadarListEntry entry = context.deserialize(jsonElement, RadarListEntry.class); + playerMap.put(entry.uuid(), entry); + }); + return playerMap; + } + + @Override + public JsonElement serialize(final Map playerMap, final Type typeOfSrc, final JsonSerializationContext context) { + return context.serialize(playerMap.values()); + } +} diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Messages.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Messages.java new file mode 100644 index 0000000..f308a60 --- /dev/null +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Messages.java @@ -0,0 +1,106 @@ +/* + * Copyright 2024 - present CommunityRadarGG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.github.communityradargg.forgemod.util; + +/** + * A class containing all texts. + */ +public class Messages { + public static final String PREFIX = "§8[§cCommunityRadar§8]§r "; + public static final String MISSING_ARGS = "§cNicht genug Argumente. Gib '/radar' für den korrekten Syntax ein."; + public static final String NOT_PLAYER = "§cDieser Befehl kann nur von Spielern ausgeführt werden."; + public static final String INPUT_PROCESSING = "§7Deine Eingabe wird verarbeitet. Dies kann einige Augenblicke benötigen."; + + public static final String HELP = + "§7§l--------- §eRadar-Hilfe §7§l---------§r\n" + + "§e/radar lists §7-> Zeigt die vorhandenen Listen an.\n" + + "§e/radar list add §7-> Erstellt eine neue Liste.\n" + + "§e/radar list prefix §7-> Ändert den Präfix einer Liste.\n" + + "§e/radar list delete §7-> Löscht eine Liste.\n" + + "§e/radar list show §7-> Zeigt alle Spieler eine Liste an.\n" + + "§e/radar check §7-> Prüft ob sich ein Spieler auf einer Liste befindet.\n" + + "§e/radar check * §7-> Prüft ob sich einer der Spieler in der Welt auf einer Liste befindet.\n" + + "§e/radar player add §7-> Fügt einen Spieler zu einer Liste hinzu.\n" + + "§e/radar player remove §7-> Entfernt einen Spieler von einer Liste.\n" + + "§e/radar help §7-> Zeigt diese Hilfeübersicht an.\n" + + "§eEntwickler §7-> MrMystery, BlockyTheDev\n" + + "§eVersion §7-> §e{code_version}\n" + + "§eWebsite, Downloads & Tutorials §7-> https://community-radar.de/\n" + + "§eDiscord §7-> https://discord.community-radar.de/\n" + + "§eQuellcode §7-> https://github.com/CommunityRadarGG/Mod_Forge_1.8.9/\n" + + "§7§l--------- §eRadar-Hilfe §7§l---------§r"; + + /** + * Translations related to the listen subcommand. + */ + public static class Lists { + public static final String FOUND = "§7Listen: §e{lists}"; + public static final String EMPTY = "§7Es wurden§c keine §7Listen gefunden!"; + public static final String PRIVATE = "PRIVAT"; + public static final String PUBLIC = "ÖFFENTLICH"; + } + + /** + * Translations related to the list subcommand. + */ + public static class List { + public static final String CREATE_SUCCESS = "§7Die Liste wurde§a erstellt§7!"; + public static final String CREATE_FAILED = "§cFehler beim Erstellen der Liste. Existiert bereits eine Liste mit diesem Namen?"; + + public static final String DELETE_SUCCESS = "§7Diese Liste wurde§c gelöscht§7!"; + public static final String DELETE_FAILED = "§cFehler beim Löschen der Liste. Ist der Name korrekt und handelt es sich um eine private Liste?"; + + public static final String SHOW_SUCCESS = "§7Liste: §e{list}§7, Präfix: §e{prefix}§7, Spieler: §e{players}"; + public static final String SHOW_FAILED = "§cFehler beim Anzeigen der Liste. Ist der Name korrekt?"; + public static final String SHOW_EMPTY = "§7Es befindet sich kein Spieler auf dieser Liste."; + + public static final String PREFIX_SUCCESS = "§7Der Präfix wurde zu §e{prefix} §7geändert."; + public static final String PREFIX_FAILED = "§cFehler beim Ändern des Präfixes."; + } + + /** + * Translations related to the check command. + */ + public static class Check { + public static final String EVERYONE = "§7Online Spieler in einer Liste:"; + public static final String NOT_FOUND = "§cEs ist kein Spieler online, welcher in einer Liste eingetragen ist."; + public static final String FAILED = "§7Der angegebene Spieler wurde auf§c keiner §7Liste gefunden."; + + public static final String FOUND = "§7Der Spieler wurde in einer Liste gefunden:"; + public static final String CHECK_ENTRY = + "§7Präfix: §e{prefix}\n" + + "§7Name: §e{name}\n" + + "§7Grund: §e{cause}\n" + + "§7Hinzugefügt: §e{entryCreationDate}\n" + + "§7Letzte Aktualisierung: §e{entryUpdateDate}\n"; + } + + /** + * Translations related to the player command. + */ + public static class Player { + public static final String NAME_INVALID = "§cDer Spieler konnte nicht gefunden werden. Ist der Name korrekt?"; + public static final String NAME_INVALID_BEDROCK = "§cDer Spieler konnte nicht gefunden werden. Da es sich um einen Spieler der Bedrock Version handelt, muss dieser in derselben Welt sein wie du, um zur Liste hinzugefügt werden zu können."; + + public static final String ADD_SUCCESS = "§7Der Spieler wurde zur Liste§a hinzugefügt§7. Handelt es sich um einen Fall für die öffentliche Liste, dann erstelle einen Beitrag im GrieferGames-Forum oder besuche unseren Discord."; + public static final String ADD_FAILED = "§cDer Spieler konnte nicht hinzugefügt werden. Hast du eine private Liste verwendet? Um eine private Liste zu erstellen, nutze den Befehl '/radar list add '."; + public static final String ADD_IN_LIST = "§7Der Spieler befindet sich bereits auf einer Liste."; + + public static final String REMOVE_SUCCESS = "§7Der Spieler wurde aus der Liste§c entfernt§7."; + public static final String REMOVE_FAILED = "§cDer Spieler konnte nicht entfernt werden. Hast du eine private Liste verwendet?"; + public static final String REMOVE_NOT_IN_LIST = "§7Der Spieler befindet sich auf§c keiner Liste§7."; + } +} diff --git a/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java similarity index 100% rename from src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java rename to versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java diff --git a/src/main/java/io/github/communityradargg/forgemod/util/Utils.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java similarity index 95% rename from src/main/java/io/github/communityradargg/forgemod/util/Utils.java rename to versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java index bbb4b05..ce16128 100644 --- a/src/main/java/io/github/communityradargg/forgemod/util/Utils.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java @@ -56,11 +56,11 @@ public class Utils { /** * Tries to get the uuid to the player name from the world. * - * @param mod The mod main class instance. + * @param communityRadarMod The mod main class instance. * @param playerName The player name to get the corresponding uuid. * @return Returns a CompletableFuture with an optional with the player uuid. */ - public static @NotNull CompletableFuture> getUUID(final CommunityRadarMod mod, final @NotNull String playerName) { + public static @NotNull CompletableFuture> getUUID(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull String playerName) { // user has to be in a world if (Minecraft.getMinecraft().theWorld == null) { return CompletableFuture.completedFuture(Optional.empty()); @@ -84,17 +84,17 @@ public class Utils { } // If no player with same name is in the world, try fetching the UUID from the Mojang-API. - return requestUuidForName(mod, playerName); + return requestUuidForName(communityRadarMod, playerName); } /** * Requests an uuid to a player name, from the Mojang API. * - * @param mod The mod main class instance. + * @param communityRadarMod The mod main class instance. * @param playerName The player name to get the uuid for. * @return Returns a CompletableFuture with an optional with the requested uuid, it will be empty if an error occurred on requesting. */ - private static @NotNull CompletableFuture> requestUuidForName(final CommunityRadarMod mod, final @NotNull String playerName) { + private static @NotNull CompletableFuture> requestUuidForName(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull String playerName) { final String urlText = MOJANG_API_NAME_TO_UUID + playerName; return CompletableFuture.supplyAsync(() -> { HttpURLConnection connection = null; @@ -104,7 +104,7 @@ public class Utils { connection.setConnectTimeout(3000); connection.setReadTimeout(3000); connection.setRequestMethod("GET"); - connection.setRequestProperty("User-Agent", CommunityRadarMod.MOD_ID + "/" + mod.getVersion()); + connection.setRequestProperty("User-Agent", CommunityRadarMod.MOD_ID + "/" + communityRadarMod.getVersion()); if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { LOGGER.warn("Requesting data from '{}' resulted in following status code: {}", urlText, connection.getResponseCode()); @@ -242,7 +242,7 @@ public static void updatePrefixes(final @NotNull CommunityRadarMod communityRada * @param oldPrefixes The old prefixes that need to be removed before adding the new one. */ private static void updatePlayerPrefix(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull NetworkPlayerInfo player, final @NotNull Set oldPrefixes) { - if (player.getGameProfile() == null || player.getGameProfile().getId() == null || player.getDisplayName() == null) { + if (player.getGameProfile().getId() == null || player.getDisplayName() == null) { return; } diff --git a/versions/1.8.9/src/main/resources/assets/communityradar/icon.png b/versions/1.8.9/src/main/resources/assets/communityradar/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fdc7ec94d651b6ec0a6129060e923710c253f211 GIT binary patch literal 618237 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�=kbmdIo-}SexxFAo=o1f-2WKDV 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 z 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%0Du{l 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

$>!zA1&vtNUA@u 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 From 8ba8ca4462c5606faf4664845bd85adb964ec901 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Fri, 17 Oct 2025 13:54:16 +0200 Subject: [PATCH 03/29] Introduce a GeneralUtils class in the common module and move code to it --- .../forgemod/ModSpecific.java | 16 +++ .../forgemod/util/GeneralUtils.java | 86 ++++++++++++++ .../forgemod/util/Messages.java | 0 .../forgemod/CommunityRadarMod.java | 43 +++---- .../forgemod/command/CheckSubcommand.java | 9 +- .../event/ClientChatReceivedListener.java | 3 +- .../ClientConnectionDisconnectListener.java | 36 +----- .../forgemod/event/KeyInputListener.java | 3 +- .../event/PlayerNameFormatListener.java | 3 +- .../communityradargg/forgemod/util/Utils.java | 36 ------ .../forgemod/CommunityRadarMod.java | 43 +++---- .../forgemod/command/CheckSubcommand.java | 9 +- .../event/ClientChatReceivedListener.java | 3 +- .../ClientConnectionDisconnectListener.java | 36 +----- .../forgemod/event/KeyInputListener.java | 3 +- .../event/PlayerNameFormatListener.java | 3 +- .../forgemod/util/Messages.java | 106 ------------------ .../communityradargg/forgemod/util/Utils.java | 36 ------ 18 files changed, 160 insertions(+), 314 deletions(-) create mode 100644 common/src/main/java/io/github/communityradargg/forgemod/ModSpecific.java create mode 100644 common/src/main/java/io/github/communityradargg/forgemod/util/GeneralUtils.java rename {versions/1.12.2 => common}/src/main/java/io/github/communityradargg/forgemod/util/Messages.java (100%) delete mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Messages.java diff --git a/common/src/main/java/io/github/communityradargg/forgemod/ModSpecific.java b/common/src/main/java/io/github/communityradargg/forgemod/ModSpecific.java new file mode 100644 index 0000000..782927c --- /dev/null +++ b/common/src/main/java/io/github/communityradargg/forgemod/ModSpecific.java @@ -0,0 +1,16 @@ +package io.github.communityradargg.forgemod; + +import org.jetbrains.annotations.NotNull; + +public interface ModSpecific { + String MOD_ID = "communityradar"; + + /** + * Gets the version. + * + * @return Returns the version. + */ + String getVersion(); + + void sendMessage(final @NotNull String message); +} diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/GeneralUtils.java b/common/src/main/java/io/github/communityradargg/forgemod/util/GeneralUtils.java new file mode 100644 index 0000000..31ef493 --- /dev/null +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/GeneralUtils.java @@ -0,0 +1,86 @@ +package io.github.communityradargg.forgemod.util; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import java.net.InetSocketAddress; +import java.net.SocketAddress; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Locale; +import java.util.Optional; + +/** + * A class with some general util methods. + */ +public class GeneralUtils { + private static final DateTimeFormatter readableDateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"); + private static boolean onGrieferGames = false; + + /** + * Checks if a given hostname is a hostname of GrieferGames. + *

+ * Following domains are taken into account: + *
+ * - griefergames.net + *
+ * - griefergames.de + *
+ * - griefergames.live + * + * @param hostName The hostname to check. + * @return Returns, whether the given hostname is one of the GrieferGames hostnames. + */ + public static boolean isGrieferGamesHostName(final @NotNull String hostName) { + final String filteredHostName = Optional.of(hostName) + .filter(host -> host.endsWith(".")) + .map(host -> host.substring(0, host.length() - 1).toLowerCase(Locale.ENGLISH)) + .orElse(hostName.toLowerCase(Locale.ENGLISH)); + return filteredHostName.endsWith("griefergames.net") || filteredHostName.endsWith("griefergames.de") || filteredHostName.endsWith("griefergames.live"); + } + + /** + * Formats a given date time in a human-readable form. + * + * @param localDateTime The local date time to format. + * @return Returns the formatted date time. + */ + public static @NotNull String formatDateTime(final @NotNull LocalDateTime localDateTime) { + return localDateTime.format(readableDateTimeFormatter); + } + + /** + * Gets the GrieferGames connection state. + * + * @return Returns the GrieferGames connection state. + */ + @SuppressWarnings("BooleanMethodIsAlwaysInverted") + public static boolean isOnGrieferGames() { + return onGrieferGames; + } + + /** + * Sets the GrieferGames connection state. + * + * @param onGrieferGames The GrieferGames connection state to set. + */ + public static void setOnGrieferGames(final boolean onGrieferGames) { + GeneralUtils.onGrieferGames = onGrieferGames; + } + + public static void setOnGrieferGames(final boolean isLocal, final @Nullable SocketAddress socketAddress) { + if (isLocal) { + return; + } + + if (!(socketAddress instanceof InetSocketAddress)) { + return; + } + + final String hostname = ((InetSocketAddress) socketAddress).getHostName(); + if (GeneralUtils.isGrieferGamesHostName(hostname)) { + GeneralUtils.setOnGrieferGames(true); + return; + } + GeneralUtils.setOnGrieferGames(false); + } +} diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Messages.java b/common/src/main/java/io/github/communityradargg/forgemod/util/Messages.java similarity index 100% rename from versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Messages.java rename to common/src/main/java/io/github/communityradargg/forgemod/util/Messages.java diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java index 20c9784..eafbdf8 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java @@ -21,6 +21,8 @@ import io.github.communityradargg.forgemod.event.KeyInputListener; import io.github.communityradargg.forgemod.event.PlayerNameFormatListener; import io.github.communityradargg.forgemod.radarlistmanager.RadarListManager; +import net.minecraft.client.Minecraft; +import net.minecraft.util.text.TextComponentString; import net.minecraftforge.client.ClientCommandHandler; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Loader; @@ -39,12 +41,10 @@ * This class represents the main class of the mod. */ @Mod(modid = CommunityRadarMod.MOD_ID) -public class CommunityRadarMod { - public static final String MOD_ID = "communityradar"; +public class CommunityRadarMod implements ModSpecific { private static final Logger LOGGER = LogManager.getLogger(CommunityRadarMod.class); private RadarListManager listManager; private String version; - private boolean onGrieferGames = false; /** * The listener for the {@link FMLInitializationEvent} event. @@ -59,7 +59,7 @@ public void init(FMLInitializationEvent event) { version = modContainer == null ? "UNKNOWN" : modContainer.getVersion(); final File directoryPath = Paths.get(new File("") - .getAbsolutePath(),"communityradar", "lists") + .getAbsolutePath(), "communityradar", "lists") .toFile(); if (!directoryPath.exists() && !directoryPath.mkdirs()) { LOGGER.error("Could not create directory: {}", directoryPath); @@ -81,7 +81,7 @@ private void registerEvents() { MinecraftForge.EVENT_BUS.register(new ClientChatReceivedListener(this)); MinecraftForge.EVENT_BUS.register(new PlayerNameFormatListener(this)); MinecraftForge.EVENT_BUS.register(new KeyInputListener(this)); - MinecraftForge.EVENT_BUS.register(new ClientConnectionDisconnectListener(this)); + MinecraftForge.EVENT_BUS.register(new ClientConnectionDisconnectListener()); } /** @@ -113,31 +113,18 @@ private void registerPublicLists() { return listManager; } - /** - * Gets the GrieferGames connection state. - * - * @return Returns the GrieferGames connection state. - */ - @SuppressWarnings("BooleanMethodIsAlwaysInverted") - public boolean isOnGrieferGames() { - return onGrieferGames; + @Override + public String getVersion() { + return version; } - /** - * Sets the GrieferGames connection state. - * - * @param onGrieferGames The GrieferGames connection state to set. - */ - public void setOnGrieferGames(final boolean onGrieferGames) { - this.onGrieferGames = onGrieferGames; - } + @Override + public void sendMessage(final @NotNull String message) { + if (Minecraft.getMinecraft().player == null) { + LOGGER.warn("Could not add message to chat. Player is null. The message is following: {}", message); + return; + } - /** - * Gets the version. - * - * @return Returns the version. - */ - public String getVersion() { - return version; + Minecraft.getMinecraft().player.sendMessage(new TextComponentString(message)); } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java index ec71d94..47477fe 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java @@ -17,6 +17,7 @@ import io.github.communityradargg.forgemod.CommunityRadarMod; import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; +import io.github.communityradargg.forgemod.util.GeneralUtils; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import io.github.communityradargg.forgemod.util.Utils; @@ -95,8 +96,8 @@ private void handleCheckPlayerSubcommand(final @NotNull EntityPlayer player, fin .replaceWithColorCodes("{prefix}", communityRadarMod.getListManager().getPrefix(entry.uuid())) .replace("{name}", entry.name()) .replace("{cause}", entry.cause()) - .replace("{entryCreationDate}", Utils.formatDateTime(entry.entryCreationDate())) - .replace("{entryUpdateDate}", Utils.formatDateTime(entry.entryUpdateDate())) + .replace("{entryCreationDate}", GeneralUtils.formatDateTime(entry.entryCreationDate())) + .replace("{entryUpdateDate}", GeneralUtils.formatDateTime(entry.entryUpdateDate())) .build().toChatComponentText()); }); } @@ -133,8 +134,8 @@ private void handleCheckAllSubcommand(final @NotNull EntityPlayer player) { .replaceWithColorCodes("{prefix}", communityRadarMod.getListManager().getPrefix(entry.uuid())) .replace("{name}", entry.name()) .replace("{cause}", entry.cause()) - .replace("{entryCreationDate}", Utils.formatDateTime(entry.entryCreationDate())) - .replace("{entryUpdateDate}", Utils.formatDateTime(entry.entryUpdateDate())) + .replace("{entryCreationDate}", GeneralUtils.formatDateTime(entry.entryCreationDate())) + .replace("{entryUpdateDate}", GeneralUtils.formatDateTime(entry.entryUpdateDate())) .build().toChatComponentText()); } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java index 9277aa6..4279580 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java @@ -16,6 +16,7 @@ package io.github.communityradargg.forgemod.event; import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.GeneralUtils; import io.github.communityradargg.forgemod.util.Utils; import net.minecraft.util.text.TextComponentString; import net.minecraftforge.client.event.ClientChatReceivedEvent; @@ -51,7 +52,7 @@ public ClientChatReceivedListener(final @NotNull CommunityRadarMod communityRada */ @SubscribeEvent public void onClientChatReceived(final ClientChatReceivedEvent event) { - if (!communityRadarMod.isOnGrieferGames()) { + if (!GeneralUtils.isOnGrieferGames()) { return; } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java index 7bd4892..bae33c0 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java @@ -15,30 +15,14 @@ */ package io.github.communityradargg.forgemod.event; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import io.github.communityradargg.forgemod.util.Utils; +import io.github.communityradargg.forgemod.util.GeneralUtils; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.network.FMLNetworkEvent; -import org.jetbrains.annotations.NotNull; - -import java.net.InetSocketAddress; -import java.net.SocketAddress; /** * A class containing listeners for player connect and disconnect from and to servers. */ public class ClientConnectionDisconnectListener { - private final CommunityRadarMod communityRadarMod; - - /** - * Constructs the class {@link ClientConnectionDisconnectListener}. - * - * @param communityRadarMod An instance of the {@link CommunityRadarMod} class. - */ - public ClientConnectionDisconnectListener(final @NotNull CommunityRadarMod communityRadarMod) { - this.communityRadarMod = communityRadarMod; - } - /** * The listener for the {@link FMLNetworkEvent.ClientConnectedToServerEvent} event. * @@ -46,21 +30,7 @@ public ClientConnectionDisconnectListener(final @NotNull CommunityRadarMod commu */ @SubscribeEvent public void onFMLNetworkClientConnectedToServer(final FMLNetworkEvent.ClientConnectedToServerEvent event) { - if (event.isLocal()) { - return; - } - - final SocketAddress socketAddress = event.getManager().getRemoteAddress(); - if (!(socketAddress instanceof InetSocketAddress)) { - return; - } - - final String hostname = ((InetSocketAddress) socketAddress).getHostName(); - if (Utils.isGrieferGamesHostName(hostname)) { - communityRadarMod.setOnGrieferGames(true); - return; - } - communityRadarMod.setOnGrieferGames(false); + GeneralUtils.setOnGrieferGames(event.isLocal(), event.getManager().getRemoteAddress()); } /** @@ -70,6 +40,6 @@ public void onFMLNetworkClientConnectedToServer(final FMLNetworkEvent.ClientConn */ @SubscribeEvent public void onFMLNetworkClientDisconnectionFromServer(final FMLNetworkEvent.ClientDisconnectionFromServerEvent event) { - communityRadarMod.setOnGrieferGames(false); + GeneralUtils.setOnGrieferGames(false); } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java index bd3253c..ad22f24 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java @@ -16,6 +16,7 @@ package io.github.communityradargg.forgemod.event; import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.GeneralUtils; import io.github.communityradargg.forgemod.util.Utils; import net.minecraft.client.Minecraft; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -44,7 +45,7 @@ public KeyInputListener(final @NotNull CommunityRadarMod communityRadarMod) { */ @SubscribeEvent public void onKeyInput(final InputEvent.KeyInputEvent event) { - if (!communityRadarMod.isOnGrieferGames()) { + if (!GeneralUtils.isOnGrieferGames()) { return; } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java index 71fadb2..57c4116 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java @@ -16,6 +16,7 @@ package io.github.communityradargg.forgemod.event; import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.GeneralUtils; import io.github.communityradargg.forgemod.util.Utils; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -43,7 +44,7 @@ public PlayerNameFormatListener(final @NotNull CommunityRadarMod communityRadarM */ @SubscribeEvent public void onPlayerNameFormat(final PlayerEvent.NameFormat event) { - if (!communityRadarMod.isOnGrieferGames()) { + if (!GeneralUtils.isOnGrieferGames()) { return; } Utils.updatePlayerNameTag(communityRadarMod, event.getEntityPlayer(), communityRadarMod.getListManager().getExistingPrefixes()); diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java index ebab67f..ef9c5eb 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java @@ -33,10 +33,7 @@ import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.HashMap; -import java.util.Locale; import java.util.Map; import java.util.Optional; import java.util.Set; @@ -51,7 +48,6 @@ public class Utils { private static final Logger LOGGER = LogManager.getLogger(Utils.class); private static final String MOJANG_API_NAME_TO_UUID = "https://api.mojang.com/users/profiles/minecraft/"; private static final Pattern UUID_MOJANG_API_PATTERN = Pattern.compile("(\\w{8})(\\w{4})(\\w{4})(\\w{4})(\\w{12})"); - private static final DateTimeFormatter readableDateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"); private static final Map uuidNameCache = new HashMap<>(); /** @@ -139,38 +135,6 @@ public class Utils { }); } - /** - * Formats a given date time in a human-readable form. - * - * @param localDateTime The local date time to format. - * @return Returns the formatted date time. - */ - public static @NotNull String formatDateTime(final @NotNull LocalDateTime localDateTime) { - return localDateTime.format(readableDateTimeFormatter); - } - - /** - * Checks if a given hostname is a hostname of GrieferGames. - *

- * Following domains are taken into account: - *
- * - griefergames.net - *
- * - griefergames.de - *
- * - griefergames.live - * - * @param hostName The hostname to check. - * @return Returns, whether the given hostname is one of the GrieferGames hostnames. - */ - public static boolean isGrieferGamesHostName(final @NotNull String hostName) { - final String filteredHostName = Optional.of(hostName) - .filter(host -> host.endsWith(".")) - .map(host -> host.substring(0, host.length() - 1).toLowerCase(Locale.ENGLISH)) - .orElse(hostName.toLowerCase(Locale.ENGLISH)); - return filteredHostName.endsWith("griefergames.net") || filteredHostName.endsWith("griefergames.de") || filteredHostName.endsWith("griefergames.live"); - } - /** * Gets a {@link NetworkPlayerInfo} by the uuid of a player. * diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java index 0bcf96e..19904e1 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java @@ -21,6 +21,8 @@ import io.github.communityradargg.forgemod.event.KeyInputListener; import io.github.communityradargg.forgemod.event.PlayerNameFormatListener; import io.github.communityradargg.forgemod.radarlistmanager.RadarListManager; +import net.minecraft.client.Minecraft; +import net.minecraft.util.ChatComponentText; import net.minecraftforge.client.ClientCommandHandler; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Loader; @@ -39,12 +41,10 @@ * This class represents the main class of the mod. */ @Mod(modid = CommunityRadarMod.MOD_ID) -public class CommunityRadarMod { - public static final String MOD_ID = "communityradar"; +public class CommunityRadarMod implements ModSpecific { private static final Logger LOGGER = LogManager.getLogger(CommunityRadarMod.class); private RadarListManager listManager; private String version; - private boolean onGrieferGames = false; /** * The listener for the {@link FMLInitializationEvent} event. @@ -59,7 +59,7 @@ public void init(final FMLInitializationEvent event) { version = modContainer == null ? "UNKNOWN" : modContainer.getVersion(); final File directoryPath = Paths.get(new File("") - .getAbsolutePath(),"communityradar", "lists") + .getAbsolutePath(), "communityradar", "lists") .toFile(); if (!directoryPath.exists() && !directoryPath.mkdirs()) { LOGGER.error("Could not create directory: {}", directoryPath); @@ -81,7 +81,7 @@ private void registerEvents() { MinecraftForge.EVENT_BUS.register(new ClientChatReceivedListener(this)); MinecraftForge.EVENT_BUS.register(new PlayerNameFormatListener(this)); MinecraftForge.EVENT_BUS.register(new KeyInputListener(this)); - MinecraftForge.EVENT_BUS.register(new ClientConnectionDisconnectListener(this)); + MinecraftForge.EVENT_BUS.register(new ClientConnectionDisconnectListener()); } /** @@ -113,31 +113,18 @@ private void registerPublicLists() { return listManager; } - /** - * Gets the GrieferGames connection state. - * - * @return Returns the GrieferGames connection state. - */ - @SuppressWarnings("BooleanMethodIsAlwaysInverted") - public boolean isOnGrieferGames() { - return onGrieferGames; + @Override + public String getVersion() { + return version; } - /** - * Sets the GrieferGames connection state. - * - * @param onGrieferGames The GrieferGames connection state to set. - */ - public void setOnGrieferGames(final boolean onGrieferGames) { - this.onGrieferGames = onGrieferGames; - } + @Override + public void sendMessage(final @NotNull String message) { + if (Minecraft.getMinecraft().thePlayer == null) { + LOGGER.warn("Could not add message to chat. Player is null. The message is following: {}", message); + return; + } - /** - * Gets the version. - * - * @return Returns the version. - */ - public String getVersion() { - return version; + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(message)); } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java index 16ad84a..6e7405c 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java @@ -17,6 +17,7 @@ import io.github.communityradargg.forgemod.CommunityRadarMod; import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; +import io.github.communityradargg.forgemod.util.GeneralUtils; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import io.github.communityradargg.forgemod.util.Utils; @@ -94,8 +95,8 @@ private void handleCheckPlayerSubcommand(final @NotNull EntityPlayer player, fin .replaceWithColorCodes("{prefix}", communityRadarMod.getListManager().getPrefix(entry.uuid())) .replace("{name}", entry.name()) .replace("{cause}", entry.cause()) - .replace("{entryCreationDate}", Utils.formatDateTime(entry.entryCreationDate())) - .replace("{entryUpdateDate}", Utils.formatDateTime(entry.entryUpdateDate())) + .replace("{entryCreationDate}", GeneralUtils.formatDateTime(entry.entryCreationDate())) + .replace("{entryUpdateDate}", GeneralUtils.formatDateTime(entry.entryUpdateDate())) .build().toChatComponentText()); }); } @@ -130,8 +131,8 @@ private void handleCheckAllSubcommand(final @NotNull EntityPlayer player) { .replaceWithColorCodes("{prefix}", communityRadarMod.getListManager().getPrefix(entry.uuid())) .replace("{name}", entry.name()) .replace("{cause}", entry.cause()) - .replace("{entryCreationDate}", Utils.formatDateTime(entry.entryCreationDate())) - .replace("{entryUpdateDate}", Utils.formatDateTime(entry.entryUpdateDate())) + .replace("{entryCreationDate}", GeneralUtils.formatDateTime(entry.entryCreationDate())) + .replace("{entryUpdateDate}", GeneralUtils.formatDateTime(entry.entryUpdateDate())) .build().toChatComponentText()); } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java index bc48f59..75d95b8 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java @@ -16,6 +16,7 @@ package io.github.communityradargg.forgemod.event; import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.GeneralUtils; import io.github.communityradargg.forgemod.util.Utils; import net.minecraft.util.ChatComponentText; import net.minecraftforge.client.event.ClientChatReceivedEvent; @@ -51,7 +52,7 @@ public ClientChatReceivedListener(final @NotNull CommunityRadarMod communityRada */ @SubscribeEvent public void onClientChatReceived(final ClientChatReceivedEvent event) { - if (!communityRadarMod.isOnGrieferGames()) { + if (!GeneralUtils.isOnGrieferGames()) { return; } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java index b89d2a3..8db3762 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java @@ -15,30 +15,14 @@ */ package io.github.communityradargg.forgemod.event; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import io.github.communityradargg.forgemod.util.Utils; +import io.github.communityradargg.forgemod.util.GeneralUtils; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.network.FMLNetworkEvent; -import org.jetbrains.annotations.NotNull; - -import java.net.InetSocketAddress; -import java.net.SocketAddress; /** * A class containing listeners for player connect and disconnect from and to servers. */ public class ClientConnectionDisconnectListener { - private final CommunityRadarMod communityRadarMod; - - /** - * Constructs the class {@link ClientConnectionDisconnectListener}. - * - * @param communityRadarMod An instance of the {@link CommunityRadarMod} class. - */ - public ClientConnectionDisconnectListener(final @NotNull CommunityRadarMod communityRadarMod) { - this.communityRadarMod = communityRadarMod; - } - /** * The listener for the {@link FMLNetworkEvent.ClientConnectedToServerEvent} event. * @@ -46,21 +30,7 @@ public ClientConnectionDisconnectListener(final @NotNull CommunityRadarMod commu */ @SubscribeEvent public void onFMLNetworkClientConnectedToServer(final FMLNetworkEvent.ClientConnectedToServerEvent event) { - if (event.isLocal) { - return; - } - - final SocketAddress socketAddress = event.manager.getRemoteAddress(); - if (!(socketAddress instanceof InetSocketAddress)) { - return; - } - - final String hostname = ((InetSocketAddress) socketAddress).getHostName(); - if (Utils.isGrieferGamesHostName(hostname)) { - communityRadarMod.setOnGrieferGames(true); - return; - } - communityRadarMod.setOnGrieferGames(false); + GeneralUtils.setOnGrieferGames(event.isLocal, event.manager.getRemoteAddress()); } /** @@ -70,6 +40,6 @@ public void onFMLNetworkClientConnectedToServer(final FMLNetworkEvent.ClientConn */ @SubscribeEvent public void onFMLNetworkClientDisconnectionFromServer(final FMLNetworkEvent.ClientDisconnectionFromServerEvent event) { - communityRadarMod.setOnGrieferGames(false); + GeneralUtils.setOnGrieferGames(false); } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java index bd3253c..ad22f24 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java @@ -16,6 +16,7 @@ package io.github.communityradargg.forgemod.event; import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.GeneralUtils; import io.github.communityradargg.forgemod.util.Utils; import net.minecraft.client.Minecraft; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -44,7 +45,7 @@ public KeyInputListener(final @NotNull CommunityRadarMod communityRadarMod) { */ @SubscribeEvent public void onKeyInput(final InputEvent.KeyInputEvent event) { - if (!communityRadarMod.isOnGrieferGames()) { + if (!GeneralUtils.isOnGrieferGames()) { return; } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java index 1aab8c2..97a536f 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java @@ -16,6 +16,7 @@ package io.github.communityradargg.forgemod.event; import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.GeneralUtils; import io.github.communityradargg.forgemod.util.Utils; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -43,7 +44,7 @@ public PlayerNameFormatListener(final @NotNull CommunityRadarMod communityRadarM */ @SubscribeEvent public void onPlayerNameFormat(final PlayerEvent.NameFormat event) { - if (!communityRadarMod.isOnGrieferGames()) { + if (!GeneralUtils.isOnGrieferGames()) { return; } Utils.updatePlayerNameTag(communityRadarMod, event.entityPlayer, communityRadarMod.getListManager().getExistingPrefixes()); diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Messages.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Messages.java deleted file mode 100644 index f308a60..0000000 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Messages.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright 2024 - present CommunityRadarGG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.github.communityradargg.forgemod.util; - -/** - * A class containing all texts. - */ -public class Messages { - public static final String PREFIX = "§8[§cCommunityRadar§8]§r "; - public static final String MISSING_ARGS = "§cNicht genug Argumente. Gib '/radar' für den korrekten Syntax ein."; - public static final String NOT_PLAYER = "§cDieser Befehl kann nur von Spielern ausgeführt werden."; - public static final String INPUT_PROCESSING = "§7Deine Eingabe wird verarbeitet. Dies kann einige Augenblicke benötigen."; - - public static final String HELP = - "§7§l--------- §eRadar-Hilfe §7§l---------§r\n" + - "§e/radar lists §7-> Zeigt die vorhandenen Listen an.\n" + - "§e/radar list add §7-> Erstellt eine neue Liste.\n" + - "§e/radar list prefix §7-> Ändert den Präfix einer Liste.\n" + - "§e/radar list delete §7-> Löscht eine Liste.\n" + - "§e/radar list show §7-> Zeigt alle Spieler eine Liste an.\n" + - "§e/radar check §7-> Prüft ob sich ein Spieler auf einer Liste befindet.\n" + - "§e/radar check * §7-> Prüft ob sich einer der Spieler in der Welt auf einer Liste befindet.\n" + - "§e/radar player add §7-> Fügt einen Spieler zu einer Liste hinzu.\n" + - "§e/radar player remove §7-> Entfernt einen Spieler von einer Liste.\n" + - "§e/radar help §7-> Zeigt diese Hilfeübersicht an.\n" + - "§eEntwickler §7-> MrMystery, BlockyTheDev\n" + - "§eVersion §7-> §e{code_version}\n" + - "§eWebsite, Downloads & Tutorials §7-> https://community-radar.de/\n" + - "§eDiscord §7-> https://discord.community-radar.de/\n" + - "§eQuellcode §7-> https://github.com/CommunityRadarGG/Mod_Forge_1.8.9/\n" + - "§7§l--------- §eRadar-Hilfe §7§l---------§r"; - - /** - * Translations related to the listen subcommand. - */ - public static class Lists { - public static final String FOUND = "§7Listen: §e{lists}"; - public static final String EMPTY = "§7Es wurden§c keine §7Listen gefunden!"; - public static final String PRIVATE = "PRIVAT"; - public static final String PUBLIC = "ÖFFENTLICH"; - } - - /** - * Translations related to the list subcommand. - */ - public static class List { - public static final String CREATE_SUCCESS = "§7Die Liste wurde§a erstellt§7!"; - public static final String CREATE_FAILED = "§cFehler beim Erstellen der Liste. Existiert bereits eine Liste mit diesem Namen?"; - - public static final String DELETE_SUCCESS = "§7Diese Liste wurde§c gelöscht§7!"; - public static final String DELETE_FAILED = "§cFehler beim Löschen der Liste. Ist der Name korrekt und handelt es sich um eine private Liste?"; - - public static final String SHOW_SUCCESS = "§7Liste: §e{list}§7, Präfix: §e{prefix}§7, Spieler: §e{players}"; - public static final String SHOW_FAILED = "§cFehler beim Anzeigen der Liste. Ist der Name korrekt?"; - public static final String SHOW_EMPTY = "§7Es befindet sich kein Spieler auf dieser Liste."; - - public static final String PREFIX_SUCCESS = "§7Der Präfix wurde zu §e{prefix} §7geändert."; - public static final String PREFIX_FAILED = "§cFehler beim Ändern des Präfixes."; - } - - /** - * Translations related to the check command. - */ - public static class Check { - public static final String EVERYONE = "§7Online Spieler in einer Liste:"; - public static final String NOT_FOUND = "§cEs ist kein Spieler online, welcher in einer Liste eingetragen ist."; - public static final String FAILED = "§7Der angegebene Spieler wurde auf§c keiner §7Liste gefunden."; - - public static final String FOUND = "§7Der Spieler wurde in einer Liste gefunden:"; - public static final String CHECK_ENTRY = - "§7Präfix: §e{prefix}\n" + - "§7Name: §e{name}\n" + - "§7Grund: §e{cause}\n" + - "§7Hinzugefügt: §e{entryCreationDate}\n" + - "§7Letzte Aktualisierung: §e{entryUpdateDate}\n"; - } - - /** - * Translations related to the player command. - */ - public static class Player { - public static final String NAME_INVALID = "§cDer Spieler konnte nicht gefunden werden. Ist der Name korrekt?"; - public static final String NAME_INVALID_BEDROCK = "§cDer Spieler konnte nicht gefunden werden. Da es sich um einen Spieler der Bedrock Version handelt, muss dieser in derselben Welt sein wie du, um zur Liste hinzugefügt werden zu können."; - - public static final String ADD_SUCCESS = "§7Der Spieler wurde zur Liste§a hinzugefügt§7. Handelt es sich um einen Fall für die öffentliche Liste, dann erstelle einen Beitrag im GrieferGames-Forum oder besuche unseren Discord."; - public static final String ADD_FAILED = "§cDer Spieler konnte nicht hinzugefügt werden. Hast du eine private Liste verwendet? Um eine private Liste zu erstellen, nutze den Befehl '/radar list add '."; - public static final String ADD_IN_LIST = "§7Der Spieler befindet sich bereits auf einer Liste."; - - public static final String REMOVE_SUCCESS = "§7Der Spieler wurde aus der Liste§c entfernt§7."; - public static final String REMOVE_FAILED = "§cDer Spieler konnte nicht entfernt werden. Hast du eine private Liste verwendet?"; - public static final String REMOVE_NOT_IN_LIST = "§7Der Spieler befindet sich auf§c keiner Liste§7."; - } -} diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java index ce16128..50c3f2e 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java @@ -32,10 +32,7 @@ import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.HashMap; -import java.util.Locale; import java.util.Map; import java.util.Optional; import java.util.Set; @@ -50,7 +47,6 @@ public class Utils { private static final Logger LOGGER = LogManager.getLogger(Utils.class); private static final String MOJANG_API_NAME_TO_UUID = "https://api.mojang.com/users/profiles/minecraft/"; private static final Pattern UUID_MOJANG_API_PATTERN = Pattern.compile("(\\w{8})(\\w{4})(\\w{4})(\\w{4})(\\w{12})"); - private static final DateTimeFormatter readableDateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"); private static final Map uuidNameCache = new HashMap<>(); /** @@ -133,38 +129,6 @@ public class Utils { }); } - /** - * Formats a given date time in a human-readable form. - * - * @param localDateTime The local date time to format. - * @return Returns the formatted date time. - */ - public static @NotNull String formatDateTime(final @NotNull LocalDateTime localDateTime) { - return localDateTime.format(readableDateTimeFormatter); - } - - /** - * Checks if a given hostname is a hostname of GrieferGames. - *

- * Following domains are taken into account: - *
- * - griefergames.net - *
- * - griefergames.de - *
- * - griefergames.live - * - * @param hostName The hostname to check. - * @return Returns, whether the given hostname is one of the GrieferGames hostnames. - */ - public static boolean isGrieferGamesHostName(final @NotNull String hostName) { - final String filteredHostName = Optional.of(hostName) - .filter(host -> host.endsWith(".")) - .map(host -> host.substring(0, host.length() - 1).toLowerCase(Locale.ENGLISH)) - .orElse(hostName.toLowerCase(Locale.ENGLISH)); - return filteredHostName.endsWith("griefergames.net") || filteredHostName.endsWith("griefergames.de") || filteredHostName.endsWith("griefergames.live"); - } - /** * Gets a {@link NetworkPlayerInfo} by the uuid of a player. * From 42b890b013e517a50ccdab8e6323a76b82209c51 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sat, 18 Oct 2025 23:45:52 +0200 Subject: [PATCH 04/29] Move Subcommand interface to common module --- .../forgemod/command/Subcommand.java | 0 .../forgemod/command/Subcommand.java | 26 ------------------- 2 files changed, 26 deletions(-) rename {versions/1.12.2 => common}/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java (100%) delete mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java b/common/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java similarity index 100% rename from versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java rename to common/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java deleted file mode 100644 index 87f46b6..0000000 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/Subcommand.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2024 - present CommunityRadarGG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.github.communityradargg.forgemod.command; - -/** - * Represents a subcommand of a command. - */ -public interface Subcommand { - /** - * Runs the logic defined in the subcommand. - */ - void run(); -} From ef98303fb0f7e8491d9d8724703cae5cb64bb523 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sat, 18 Oct 2025 23:48:01 +0200 Subject: [PATCH 05/29] Introduce VersionBridge interface with a version Getter and its version specific implementations --- .../forgemod/util/VersionBridge.java | 5 +++++ .../forgemod/util/VersionBridgeImpl.java | 16 ++++++++++++++++ .../forgemod/util/VersionBridgeImpl.java | 16 ++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java create mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java create mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java new file mode 100644 index 0000000..7348231 --- /dev/null +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java @@ -0,0 +1,5 @@ +package io.github.communityradargg.forgemod.util; + +public interface VersionBridge { + String getVersion(); +} diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java new file mode 100644 index 0000000..ff6f9b4 --- /dev/null +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -0,0 +1,16 @@ +package io.github.communityradargg.forgemod.util; + +import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.ModContainer; + +public class VersionBridgeImpl implements VersionBridge { + @Override + public String getVersion() { + final ModContainer modContainer = Loader.instance().getIndexedModList().get(CommonHandler.MOD_ID); + if (modContainer == null) { + return "UNKNOWN"; + } + + return modContainer.getVersion(); + } +} diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java new file mode 100644 index 0000000..ff6f9b4 --- /dev/null +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -0,0 +1,16 @@ +package io.github.communityradargg.forgemod.util; + +import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.ModContainer; + +public class VersionBridgeImpl implements VersionBridge { + @Override + public String getVersion() { + final ModContainer modContainer = Loader.instance().getIndexedModList().get(CommonHandler.MOD_ID); + if (modContainer == null) { + return "UNKNOWN"; + } + + return modContainer.getVersion(); + } +} From ef995a7baab4d95d6bc9ce72590e5eda102406b3 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sat, 18 Oct 2025 23:59:10 +0200 Subject: [PATCH 06/29] Introduce a CommonHandler Replace the GeneralUtils static methods with a CommonHandler holding the list manager and the version bridge. In addition, move the RadarListManager (as ListManager) as well as the RadarList class to the common module. --- common/build.gradle.kts | 1 + .../forgemod/list/ListManager.java | 55 ++- .../forgemod/list}/RadarList.java | 25 +- .../forgemod/util/CommonHandler.java | 138 ++++++++ .../forgemod/util/GeneralUtils.java | 86 ----- gradle/libs.versions.toml | 2 + .../forgemod/CommunityRadarMod.java | 72 +--- .../forgemod/command/CheckSubcommand.java | 29 +- .../forgemod/command/HelpSubcommand.java | 12 +- .../forgemod/command/ListSubcommand.java | 30 +- .../forgemod/command/ListsSubcommand.java | 14 +- .../forgemod/command/PlayerSubcommand.java | 30 +- .../forgemod/command/RadarCommand.java | 22 +- .../event/ClientChatReceivedListener.java | 19 +- .../ClientConnectionDisconnectListener.java | 18 +- .../forgemod/event/KeyInputListener.java | 15 +- .../event/PlayerNameFormatListener.java | 15 +- .../radarlistmanager/RadarListManager.java | 320 ------------------ .../communityradargg/forgemod/util/Utils.java | 39 ++- .../forgemod/CommunityRadarMod.java | 72 +--- .../forgemod/command/CheckSubcommand.java | 29 +- .../forgemod/command/HelpSubcommand.java | 12 +- .../forgemod/command/ListSubcommand.java | 30 +- .../forgemod/command/ListsSubcommand.java | 14 +- .../forgemod/command/PlayerSubcommand.java | 30 +- .../forgemod/command/RadarCommand.java | 22 +- .../event/ClientChatReceivedListener.java | 19 +- .../ClientConnectionDisconnectListener.java | 18 +- .../forgemod/event/KeyInputListener.java | 15 +- .../event/PlayerNameFormatListener.java | 15 +- .../forgemod/radarlistmanager/RadarList.java | 218 ------------ .../communityradargg/forgemod/util/Utils.java | 39 ++- 32 files changed, 467 insertions(+), 1008 deletions(-) rename versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java => common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java (87%) rename {versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager => common/src/main/java/io/github/communityradargg/forgemod/list}/RadarList.java (88%) create mode 100644 common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java delete mode 100644 common/src/main/java/io/github/communityradargg/forgemod/util/GeneralUtils.java delete mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java delete mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java diff --git a/common/build.gradle.kts b/common/build.gradle.kts index dd86f33..42b9434 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -8,4 +8,5 @@ base { dependencies { compileOnly(rootProject.libs.jetbrainsJavaAnnotations) compileOnly(rootProject.libs.gson) + compileOnly(rootProject.libs.log4j) } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java b/common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java similarity index 87% rename from versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java rename to common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java index a159d76..6835279 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java @@ -13,21 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.github.communityradargg.forgemod.radarlistmanager; +package io.github.communityradargg.forgemod.list; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonIOException; import com.google.gson.JsonSyntaxException; import com.google.gson.reflect.TypeToken; -import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; +import io.github.communityradargg.forgemod.radarlistmanager.RadarListVisibility; import io.github.communityradargg.forgemod.radarlistmanager.adapters.GsonLocalDateTimeAdapter; import io.github.communityradargg.forgemod.radarlistmanager.adapters.GsonRadarListPlayerMapAdapter; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - import java.io.File; import java.io.FileReader; import java.io.FileWriter; @@ -45,31 +41,54 @@ import java.util.UUID; import java.util.stream.Collectors; import java.util.stream.Stream; +import io.github.communityradargg.forgemod.util.CommonHandler; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; /** * A class containing the methods to manage lists. */ -public class RadarListManager { - private static final Logger LOGGER = LogManager.getLogger(RadarListManager.class); +public class ListManager { + private static final Logger LOGGER = LogManager.getLogger(ListManager.class); static final Gson GSON = new GsonBuilder() .setPrettyPrinting() .registerTypeAdapter(LocalDateTime.class, new GsonLocalDateTimeAdapter()) .registerTypeAdapter(Map.class, new GsonRadarListPlayerMapAdapter()) .create(); - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; private final List lists; private final String directoryPath; /** - * Constructs a {@link RadarListManager} + * Constructs a {@link ListManager} * - * @param communityRadarMod The mod main class instance. - * @param directoryPath The directory path of the list the manager manages. + * @param commonHandler The common handler. */ - public RadarListManager(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull String directoryPath) { + public ListManager(final @NotNull CommonHandler commonHandler) { this.lists = new ArrayList<>(); - this.communityRadarMod = communityRadarMod; - this.directoryPath = directoryPath; + this.commonHandler = commonHandler; + + directoryPath = createDirectoryPath(); + } + + // TODO Look if this can be optimized in Java 8 + /** + * Creates the list directory path. + * + * @return Returns the list directory path. + */ + private String createDirectoryPath() { + final File directoryFilePath = Paths.get(new File("") + .getAbsolutePath(), "communityradar", "lists") + .toFile(); + + if (!directoryFilePath.exists() && !directoryFilePath.mkdirs()) { + LOGGER.error("Could not create directory: {}", directoryPath); + } + + return directoryFilePath.getAbsolutePath() + "/"; } /** @@ -193,7 +212,7 @@ public boolean registerPrivateList(final @NotNull String namespace, final @NotNu return false; } - lists.add(new RadarList(communityRadarMod, namespace, prefix, directoryPath + namespace + ".json", RadarListVisibility.PRIVATE)); + lists.add(new RadarList(commonHandler, namespace, prefix, directoryPath + namespace + ".json", RadarListVisibility.PRIVATE)); final Optional listOptional = getRadarList(namespace); if (!listOptional.isPresent()) { @@ -219,7 +238,7 @@ public boolean registerPublicList(final @NotNull String namespace, final @NotNul return false; } - lists.add(new RadarList(communityRadarMod, namespace, prefix, url, RadarListVisibility.PUBLIC)); + lists.add(new RadarList(commonHandler, namespace, prefix, url, RadarListVisibility.PUBLIC)); return true; } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java b/common/src/main/java/io/github/communityradargg/forgemod/list/RadarList.java similarity index 88% rename from versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java rename to common/src/main/java/io/github/communityradargg/forgemod/list/RadarList.java index aa044f1..3106be9 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/list/RadarList.java @@ -13,17 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.github.communityradargg.forgemod.radarlistmanager; +package io.github.communityradargg.forgemod.list; import com.google.gson.JsonIOException; import com.google.gson.JsonSyntaxException; import com.google.gson.annotations.SerializedName; import com.google.gson.reflect.TypeToken; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.jetbrains.annotations.NotNull; - +import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; +import io.github.communityradargg.forgemod.radarlistmanager.RadarListVisibility; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; @@ -33,13 +30,17 @@ import java.util.Map; import java.util.Optional; import java.util.UUID; +import io.github.communityradargg.forgemod.util.CommonHandler; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.NotNull; /** * A class representing a radar list. */ public class RadarList { private static final Logger LOGGER = LogManager.getLogger(RadarList.class); - private final transient CommunityRadarMod communityRadarMod; + private final transient CommonHandler commonHandler; @SerializedName("VERSION") @SuppressWarnings("unused") // needed in future private final int version = 1; @@ -56,14 +57,14 @@ public class RadarList { /** * Constructs a {@link RadarList}. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param namespace The namespace for the list. * @param prefix The prefix for the list. * @param url The url for the list. * @param visibility The visibility of the list. */ - public RadarList(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull String namespace, final @NotNull String prefix, final @NotNull String url, final @NotNull RadarListVisibility visibility) { - this.communityRadarMod = communityRadarMod; + public RadarList(final @NotNull CommonHandler commonHandler, final @NotNull String namespace, final @NotNull String prefix, final @NotNull String url, final @NotNull RadarListVisibility visibility) { + this.commonHandler = commonHandler; this.namespace = namespace; this.prefix = prefix; this.visibility = visibility; @@ -181,7 +182,7 @@ private void loadRadarListEntry(final @NotNull RadarListEntry radarListEntry) { */ public void saveList() { if (visibility == RadarListVisibility.PRIVATE) { - communityRadarMod.getListManager().saveRadarList(this); + commonHandler.getListManager().saveRadarList(this); } } @@ -190,7 +191,7 @@ public void saveList() { */ private void loadPublicList() { try (final BufferedReader reader = new BufferedReader(new InputStreamReader(new URL(this.url).openStream()))) { - final List players = RadarListManager.GSON + final List players = ListManager.GSON .fromJson(reader, new TypeToken>() {}.getType()); players.forEach(this::loadRadarListEntry); } catch (final IOException | JsonIOException | JsonSyntaxException e) { diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java new file mode 100644 index 0000000..92a4612 --- /dev/null +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java @@ -0,0 +1,138 @@ +package io.github.communityradargg.forgemod.util; + +import io.github.communityradargg.forgemod.list.ListManager; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import java.net.InetSocketAddress; +import java.net.SocketAddress; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Locale; +import java.util.Optional; + +/** + * A class for handling many utility and central tasks and holds the version bridge. + */ +public class CommonHandler { + public static final String MOD_ID = "communityradar"; + private static final Logger LOGGER = LogManager.getLogger(MOD_ID); + private final DateTimeFormatter readableDateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"); + private final VersionBridge versionBridge; + private final ListManager listManager; + private boolean onGrieferGames = false; + + /** + * Constructs a {@link CommonHandler}. + * + * @param versionBridge A version bridge implementation + */ + public CommonHandler(final @NotNull VersionBridge versionBridge) { + this.versionBridge = versionBridge; + + listManager = new ListManager(this); + registerPublicLists(); + // Needs to be after loading public lists + listManager.loadPrivateLists(); + } + + /** + * Registers the public lists. + */ + private void registerPublicLists() { + if (!listManager.registerPublicList("scammer", "&7[&cScammer&7]", "https://lists.community-radar.de/versions/v1/scammer.json")) { + LOGGER.error("Could not register public list 'scammers'!"); + } + + if (!listManager.registerPublicList("trusted", "&7[&aTrusted&7]", "https://lists.community-radar.de/versions/v1/trusted.json")) { + LOGGER.error("Could not register public list 'verbvllert_trusted'!"); + } + } + + /** + * Checks if a given hostname is a hostname of GrieferGames. + *

+ * Following domains are taken into account: + *
+ * - griefergames.net + *
+ * - griefergames.de + *
+ * - griefergames.live + * + * @param hostName The hostname to check. + * @return Returns, whether the given hostname is one of the GrieferGames hostnames. + */ + public boolean isGrieferGamesHostName(final @NotNull String hostName) { + final String filteredHostName = Optional.of(hostName) + .filter(host -> host.endsWith(".")) + .map(host -> host.substring(0, host.length() - 1).toLowerCase(Locale.ENGLISH)) + .orElse(hostName.toLowerCase(Locale.ENGLISH)); + return filteredHostName.endsWith("griefergames.net") || filteredHostName.endsWith("griefergames.de") || filteredHostName.endsWith("griefergames.live"); + } + + /** + * Formats a given date time in a human-readable form. + * + * @param localDateTime The local date time to format. + * @return Returns the formatted date time. + */ + public @NotNull String formatDateTime(final @NotNull LocalDateTime localDateTime) { + return localDateTime.format(readableDateTimeFormatter); + } + + /** + * Gets the GrieferGames connection state. + * + * @return Returns the GrieferGames connection state. + */ + @SuppressWarnings("BooleanMethodIsAlwaysInverted") + public boolean isOnGrieferGames() { + return onGrieferGames; + } + + /** + * Sets the GrieferGames connection state. + * + * @param onGrieferGames The GrieferGames connection state to set. + */ + public void setOnGrieferGames(final boolean onGrieferGames) { + this.onGrieferGames = onGrieferGames; + } + + public void setOnGrieferGames(final boolean isLocal, final @Nullable SocketAddress socketAddress) { + if (isLocal) { + return; + } + + if (!(socketAddress instanceof InetSocketAddress)) { + return; + } + + final String hostname = ((InetSocketAddress) socketAddress).getHostName(); + if (isGrieferGamesHostName(hostname)) { + onGrieferGames = true; + return; + } + onGrieferGames = false; + } + + /** + * Gets the version bridge. + * + * @return Returns the version bridge. + */ + public VersionBridge getVersionBridge() { + return versionBridge; + } + + /** + * Gets the list manager. + * + * @return Returns the list manager. + */ + public ListManager getListManager() { + return listManager; + } +} diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/GeneralUtils.java b/common/src/main/java/io/github/communityradargg/forgemod/util/GeneralUtils.java deleted file mode 100644 index 31ef493..0000000 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/GeneralUtils.java +++ /dev/null @@ -1,86 +0,0 @@ -package io.github.communityradargg.forgemod.util; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import java.net.InetSocketAddress; -import java.net.SocketAddress; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.Locale; -import java.util.Optional; - -/** - * A class with some general util methods. - */ -public class GeneralUtils { - private static final DateTimeFormatter readableDateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"); - private static boolean onGrieferGames = false; - - /** - * Checks if a given hostname is a hostname of GrieferGames. - *

- * Following domains are taken into account: - *
- * - griefergames.net - *
- * - griefergames.de - *
- * - griefergames.live - * - * @param hostName The hostname to check. - * @return Returns, whether the given hostname is one of the GrieferGames hostnames. - */ - public static boolean isGrieferGamesHostName(final @NotNull String hostName) { - final String filteredHostName = Optional.of(hostName) - .filter(host -> host.endsWith(".")) - .map(host -> host.substring(0, host.length() - 1).toLowerCase(Locale.ENGLISH)) - .orElse(hostName.toLowerCase(Locale.ENGLISH)); - return filteredHostName.endsWith("griefergames.net") || filteredHostName.endsWith("griefergames.de") || filteredHostName.endsWith("griefergames.live"); - } - - /** - * Formats a given date time in a human-readable form. - * - * @param localDateTime The local date time to format. - * @return Returns the formatted date time. - */ - public static @NotNull String formatDateTime(final @NotNull LocalDateTime localDateTime) { - return localDateTime.format(readableDateTimeFormatter); - } - - /** - * Gets the GrieferGames connection state. - * - * @return Returns the GrieferGames connection state. - */ - @SuppressWarnings("BooleanMethodIsAlwaysInverted") - public static boolean isOnGrieferGames() { - return onGrieferGames; - } - - /** - * Sets the GrieferGames connection state. - * - * @param onGrieferGames The GrieferGames connection state to set. - */ - public static void setOnGrieferGames(final boolean onGrieferGames) { - GeneralUtils.onGrieferGames = onGrieferGames; - } - - public static void setOnGrieferGames(final boolean isLocal, final @Nullable SocketAddress socketAddress) { - if (isLocal) { - return; - } - - if (!(socketAddress instanceof InetSocketAddress)) { - return; - } - - final String hostname = ((InetSocketAddress) socketAddress).getHostName(); - if (GeneralUtils.isGrieferGamesHostName(hostname)) { - GeneralUtils.setOnGrieferGames(true); - return; - } - GeneralUtils.setOnGrieferGames(false); - } -} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 770697e..7e3d39c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,6 +7,7 @@ spotless = "7.2.1" # general libs jetbrainsJavaAnnotations = "26.0.2-1" gson = "2.2.4" # needs to stay on 1.8.9 version +log4j = "2.0-beta9" # needs to stay on 1.8.9 version # 1.8.9 (Forge) minecraft189 = "1.8.9" @@ -22,6 +23,7 @@ forge1122 = "1.12.2-14.23.5.2847" # general libraries jetbrainsJavaAnnotations = { group = "org.jetbrains", name = "annotations", version.ref = "jetbrainsJavaAnnotations" } gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" } +log4j = { group = "org.apache.logging.log4j", name = "log4j-core", version.ref = "log4j" } # 1.8.9 (Forge) minecraft189 = { group = "com.mojang", name = "minecraft", version.ref = "minecraft189" } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java index eafbdf8..f237241 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java @@ -20,31 +20,26 @@ import io.github.communityradargg.forgemod.event.ClientConnectionDisconnectListener; import io.github.communityradargg.forgemod.event.KeyInputListener; import io.github.communityradargg.forgemod.event.PlayerNameFormatListener; -import io.github.communityradargg.forgemod.radarlistmanager.RadarListManager; +import io.github.communityradargg.forgemod.util.CommonHandler; +import io.github.communityradargg.forgemod.util.VersionBridgeImpl; import net.minecraft.client.Minecraft; import net.minecraft.util.text.TextComponentString; import net.minecraftforge.client.ClientCommandHandler; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; -import net.minecraftforge.fml.common.ModContainer; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; -import java.io.File; -import java.nio.file.Paths; - /** * This class represents the main class of the mod. */ -@Mod(modid = CommunityRadarMod.MOD_ID) -public class CommunityRadarMod implements ModSpecific { +@Mod(modid = CommonHandler.MOD_ID) +public class CommunityRadarMod { private static final Logger LOGGER = LogManager.getLogger(CommunityRadarMod.class); - private RadarListManager listManager; - private String version; + private final CommonHandler commonHandler = new CommonHandler(new VersionBridgeImpl()); /** * The listener for the {@link FMLInitializationEvent} event. @@ -53,72 +48,31 @@ public class CommunityRadarMod implements ModSpecific { */ @EventHandler public void init(FMLInitializationEvent event) { - LOGGER.info("Loading the mod '{}'", MOD_ID); - - final ModContainer modContainer = Loader.instance().getIndexedModList().get(MOD_ID); - version = modContainer == null ? "UNKNOWN" : modContainer.getVersion(); + LOGGER.info("Loading the mod '{}'", CommonHandler.MOD_ID); - final File directoryPath = Paths.get(new File("") - .getAbsolutePath(), "communityradar", "lists") - .toFile(); - if (!directoryPath.exists() && !directoryPath.mkdirs()) { - LOGGER.error("Could not create directory: {}", directoryPath); - } - - listManager = new RadarListManager(this, directoryPath.getAbsolutePath() + "/"); - registerPublicLists(); - // Needs to be after loading public lists - listManager.loadPrivateLists(); registerEvents(); registerCommands(); - LOGGER.info("Successfully loaded the mod '{}'", MOD_ID); + LOGGER.info("Successfully loaded the mod '{}'", CommonHandler.MOD_ID); } /** * Registers the events. */ private void registerEvents() { - MinecraftForge.EVENT_BUS.register(new ClientChatReceivedListener(this)); - MinecraftForge.EVENT_BUS.register(new PlayerNameFormatListener(this)); - MinecraftForge.EVENT_BUS.register(new KeyInputListener(this)); - MinecraftForge.EVENT_BUS.register(new ClientConnectionDisconnectListener()); + MinecraftForge.EVENT_BUS.register(new ClientChatReceivedListener(commonHandler)); + MinecraftForge.EVENT_BUS.register(new PlayerNameFormatListener(commonHandler)); + MinecraftForge.EVENT_BUS.register(new KeyInputListener(commonHandler)); + MinecraftForge.EVENT_BUS.register(new ClientConnectionDisconnectListener(commonHandler)); } /** * Registers the commands. */ private void registerCommands() { - ClientCommandHandler.instance.registerCommand(new RadarCommand(this)); - } - - /** - * Registers the public lists. - */ - private void registerPublicLists() { - if (!listManager.registerPublicList("scammer", "&7[&cScammer&7]", "https://lists.community-radar.de/versions/v1/scammer.json")) { - LOGGER.error("Could not register public list 'scammers'!"); - } - - if (!listManager.registerPublicList("trusted", "&7[&aTrusted&7]", "https://lists.community-radar.de/versions/v1/trusted.json")) { - LOGGER.error("Could not register public list 'verbvllert_trusted'!"); - } - } - - /** - * Gets the {@link RadarListManager} instance. - * - * @return Returns the radar list manager instance. - */ - public @NotNull RadarListManager getListManager() { - return listManager; - } - - @Override - public String getVersion() { - return version; + ClientCommandHandler.instance.registerCommand(new RadarCommand(commonHandler)); } - @Override + @Deprecated public void sendMessage(final @NotNull String message) { if (Minecraft.getMinecraft().player == null) { LOGGER.warn("Could not add message to chat. Player is null. The message is following: {}", message); diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java index 47477fe..cba69ea 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java @@ -15,9 +15,8 @@ */ package io.github.communityradargg.forgemod.command; -import io.github.communityradargg.forgemod.CommunityRadarMod; import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; -import io.github.communityradargg.forgemod.util.GeneralUtils; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import io.github.communityradargg.forgemod.util.Utils; @@ -32,19 +31,19 @@ * Holds the logic of the check subcommand. */ public class CheckSubcommand implements Subcommand { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; private final EntityPlayer player; private final String[] args; /** * Constructs a {@link CheckSubcommand}. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param player The player. * @param args The args. */ - public CheckSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player, final @NotNull String[] args) { - this.communityRadarMod = communityRadarMod; + public CheckSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull String[] args) { + this.commonHandler = commonHandler; this.player = player; this.args = args; } @@ -75,7 +74,7 @@ public void run() { private void handleCheckPlayerSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) .build().toChatComponentText()); - Utils.getUUID(communityRadarMod, args[1]).thenAccept(checkPlayerOptional -> { + Utils.getUUID(commonHandler, args[1]).thenAccept(checkPlayerOptional -> { if (!checkPlayerOptional.isPresent()) { // player uuid could not be fetched player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) @@ -83,7 +82,7 @@ private void handleCheckPlayerSubcommand(final @NotNull EntityPlayer player, fin return; } - final Optional entryOptional = communityRadarMod.getListManager().getRadarListEntry(checkPlayerOptional.get()); + final Optional entryOptional = commonHandler.getListManager().getRadarListEntry(checkPlayerOptional.get()); if (!entryOptional.isPresent()) { // player uuid is on no list player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) @@ -93,11 +92,11 @@ private void handleCheckPlayerSubcommand(final @NotNull EntityPlayer player, fin final RadarListEntry entry = entryOptional.get(); player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FOUND + "\n" + Messages.Check.CHECK_ENTRY) - .replaceWithColorCodes("{prefix}", communityRadarMod.getListManager().getPrefix(entry.uuid())) + .replaceWithColorCodes("{prefix}", commonHandler.getListManager().getPrefix(entry.uuid())) .replace("{name}", entry.name()) .replace("{cause}", entry.cause()) - .replace("{entryCreationDate}", GeneralUtils.formatDateTime(entry.entryCreationDate())) - .replace("{entryUpdateDate}", GeneralUtils.formatDateTime(entry.entryUpdateDate())) + .replace("{entryCreationDate}", commonHandler.formatDateTime(entry.entryCreationDate())) + .replace("{entryUpdateDate}", commonHandler.formatDateTime(entry.entryUpdateDate())) .build().toChatComponentText()); }); } @@ -116,7 +115,7 @@ private void handleCheckAllSubcommand(final @NotNull EntityPlayer player) { continue; } - final Optional listEntryOptional = communityRadarMod.getListManager() + final Optional listEntryOptional = commonHandler.getListManager() .getRadarListEntry(networkPlayer.getGameProfile().getId()); if (!listEntryOptional.isPresent()) { // player uuid is on no list @@ -131,11 +130,11 @@ private void handleCheckAllSubcommand(final @NotNull EntityPlayer player) { final RadarListEntry entry = listEntryOptional.get(); player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.CHECK_ENTRY) - .replaceWithColorCodes("{prefix}", communityRadarMod.getListManager().getPrefix(entry.uuid())) + .replaceWithColorCodes("{prefix}", commonHandler.getListManager().getPrefix(entry.uuid())) .replace("{name}", entry.name()) .replace("{cause}", entry.cause()) - .replace("{entryCreationDate}", GeneralUtils.formatDateTime(entry.entryCreationDate())) - .replace("{entryUpdateDate}", GeneralUtils.formatDateTime(entry.entryUpdateDate())) + .replace("{entryCreationDate}", commonHandler.formatDateTime(entry.entryCreationDate())) + .replace("{entryUpdateDate}", commonHandler.formatDateTime(entry.entryUpdateDate())) .build().toChatComponentText()); } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java index 2643459..b61b285 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java @@ -15,7 +15,7 @@ */ package io.github.communityradargg.forgemod.command; -import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import net.minecraft.entity.player.EntityPlayer; @@ -25,24 +25,24 @@ * Holds the logic of the help subcommand. */ public class HelpSubcommand implements Subcommand { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; private final EntityPlayer player; /** * Constructs a {@link HelpSubcommand}. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param player The player. */ - public HelpSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player) { - this.communityRadarMod = communityRadarMod; + public HelpSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player) { + this.commonHandler = commonHandler; this.player = player; } @Override public void run() { player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.HELP) - .replace("{code_version}", communityRadarMod.getVersion()) + .replace("{code_version}", commonHandler.getVersionBridge().getVersion()) .excludePrefix() .build().toChatComponentText()); } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java index 4fd373b..948f243 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java @@ -15,9 +15,9 @@ */ package io.github.communityradargg.forgemod.command; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import io.github.communityradargg.forgemod.radarlistmanager.RadarList; -import io.github.communityradargg.forgemod.radarlistmanager.RadarListManager; +import io.github.communityradargg.forgemod.list.ListManager; +import io.github.communityradargg.forgemod.list.RadarList; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import io.github.communityradargg.forgemod.util.Utils; @@ -33,19 +33,19 @@ * Holds the logic of the list subcommand. */ public class ListSubcommand implements Subcommand { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; private final EntityPlayer player; private final String[] args; /** * Constructs a {@link ListSubcommand}. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param player The player. * @param args The args. */ - public ListSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player, final @NotNull String[] args) { - this.communityRadarMod = communityRadarMod; + public ListSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull String[] args) { + this.commonHandler = commonHandler; this.player = player; this.args = args; } @@ -73,7 +73,7 @@ public void run() { handleListShowSubcommand(player, args); break; default: - new HelpSubcommand(communityRadarMod, player).run(); + new HelpSubcommand(commonHandler, player).run(); break; } } @@ -92,14 +92,14 @@ private void handleListAddSubcommand(final @NotNull EntityPlayer player, final @ return; } - if (communityRadarMod.getListManager().getRadarList(args[2]).isPresent()) { + if (commonHandler.getListManager().getRadarList(args[2]).isPresent()) { // list already existing player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) .build().toChatComponentText()); return; } - if (!communityRadarMod.getListManager().registerPrivateList(args[2], args[3])) { + if (!commonHandler.getListManager().registerPrivateList(args[2], args[3])) { // list could not be registered player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) .build().toChatComponentText()); @@ -124,7 +124,7 @@ private void handleListDeleteSubcommand(final @NotNull EntityPlayer player, fina return; } - final RadarListManager listManager = communityRadarMod.getListManager(); + final ListManager listManager = commonHandler.getListManager(); final Set oldPrefixes = listManager.getExistingPrefixes(); final Set oldUuids = listManager.getRadarList(args[2]) .map(radarList -> radarList.getPlayerMap().keySet()) @@ -137,7 +137,7 @@ private void handleListDeleteSubcommand(final @NotNull EntityPlayer player, fina return; } - oldUuids.forEach(uuid -> Utils.updatePlayerByUuid(communityRadarMod, uuid, oldPrefixes)); + oldUuids.forEach(uuid -> Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes)); player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_SUCCESS) .build().toChatComponentText()); } @@ -156,7 +156,7 @@ private void handleListShowSubcommand(final @NotNull EntityPlayer player, final return; } - final Optional listOptional = communityRadarMod.getListManager().getRadarList(args[2]); + final Optional listOptional = commonHandler.getListManager().getRadarList(args[2]); if (!listOptional.isPresent()) { // list is not existing player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_FAILED) @@ -195,7 +195,7 @@ private void handleListPrefixSubcommand(final @NotNull EntityPlayer player, fina return; } - final RadarListManager listManager = communityRadarMod.getListManager(); + final ListManager listManager = commonHandler.getListManager(); final Optional listOptional = listManager.getRadarList(args[2]); if (!listOptional.isPresent()) { // list is not existing @@ -208,7 +208,7 @@ private void handleListPrefixSubcommand(final @NotNull EntityPlayer player, fina final Set oldPrefixes = listManager.getExistingPrefixes(); list.setPrefix(args[3]); list.saveList(); - list.getPlayerMap().keySet().forEach(uuid -> Utils.updatePlayerByUuid(communityRadarMod, uuid, oldPrefixes)); + list.getPlayerMap().keySet().forEach(uuid -> Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes)); player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_SUCCESS) .replaceWithColorCodes("{prefix}", args[3]) diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java index 47a12ad..88f492b 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java @@ -15,8 +15,8 @@ */ package io.github.communityradargg.forgemod.command; -import io.github.communityradargg.forgemod.CommunityRadarMod; import io.github.communityradargg.forgemod.radarlistmanager.RadarListVisibility; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import net.minecraft.entity.player.EntityPlayer; @@ -26,25 +26,25 @@ * Holds the logic of the lists subcommand. */ public class ListsSubcommand implements Subcommand { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; private final EntityPlayer player; /** * Constructs a {@link ListsSubcommand}. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param player The player. */ - public ListsSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player) { - this.communityRadarMod = communityRadarMod; + public ListsSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player) { + this.commonHandler = commonHandler; this.player = player; } @Override public void run() { final StringBuilder listsText = new StringBuilder(); - for (final String namespace : communityRadarMod.getListManager().getNamespaces()) { - communityRadarMod.getListManager().getRadarList(namespace) + for (final String namespace : commonHandler.getListManager().getNamespaces()) { + commonHandler.getListManager().getRadarList(namespace) .ifPresent(radarList -> listsText.append("§e").append(namespace).append(" §7(§c") .append(radarList.getRadarListVisibility() == RadarListVisibility.PRIVATE ? Messages.Lists.PRIVATE : Messages.Lists.PUBLIC) .append("§7)").append(", ")); diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java index 7f94fe4..d6157d6 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java @@ -15,9 +15,9 @@ */ package io.github.communityradargg.forgemod.command; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import io.github.communityradargg.forgemod.radarlistmanager.RadarList; -import io.github.communityradargg.forgemod.radarlistmanager.RadarListManager; +import io.github.communityradargg.forgemod.list.ListManager; +import io.github.communityradargg.forgemod.list.RadarList; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import io.github.communityradargg.forgemod.util.Utils; @@ -31,19 +31,19 @@ * Holds the logic of the player subcommand. */ public class PlayerSubcommand implements Subcommand { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; private final EntityPlayer player; private final String[] args; /** * Constructs a {@link PlayerSubcommand}. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param player The player. * @param args The args. */ - public PlayerSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player, final @NotNull String[] args) { - this.communityRadarMod = communityRadarMod; + public PlayerSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull String[] args) { + this.commonHandler = commonHandler; this.player = player; this.args = args; } @@ -65,7 +65,7 @@ public void run() { handlePlayerRemoveSubcommand(player, args); break; default: - new HelpSubcommand(communityRadarMod, player).run(); + new HelpSubcommand(commonHandler, player).run(); break; } } @@ -84,7 +84,7 @@ private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final return; } - final RadarListManager listManager = communityRadarMod.getListManager(); + final ListManager listManager = commonHandler.getListManager(); final Optional listOptional = listManager.getRadarList(args[2]); if (!listOptional.isPresent()) { // list not existing @@ -95,7 +95,7 @@ private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) .build().toChatComponentText()); - Utils.getUUID(communityRadarMod, args[3]).thenAccept(uuidOptional -> { + Utils.getUUID(commonHandler, args[3]).thenAccept(uuidOptional -> { if (!uuidOptional.isPresent()) { // player uuid could not be fetched player.sendMessage(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) @@ -116,7 +116,7 @@ private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final notes.append(args[i]).append(" "); } - if (!communityRadarMod.getListManager().addRadarListEntry(args[2], uuid, args[3], notes.substring(0, notes.length() - 1))) { + if (!commonHandler.getListManager().addRadarListEntry(args[2], uuid, args[3], notes.substring(0, notes.length() - 1))) { // list is not private player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_FAILED) .build().toChatComponentText()); @@ -125,7 +125,7 @@ private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_SUCCESS) .build().toChatComponentText()); - Utils.updatePlayerByUuid(communityRadarMod, uuid, listManager.getExistingPrefixes()); + Utils.updatePlayerByUuid(commonHandler, uuid, listManager.getExistingPrefixes()); }); } @@ -143,7 +143,7 @@ private void handlePlayerRemoveSubcommand(final @NotNull EntityPlayer player, fi return; } - final RadarListManager listManager = communityRadarMod.getListManager(); + final ListManager listManager = commonHandler.getListManager(); final Optional listOptional = listManager.getRadarList(args[2]); if (!listOptional.isPresent()) { // list is not existing @@ -155,7 +155,7 @@ private void handlePlayerRemoveSubcommand(final @NotNull EntityPlayer player, fi player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) .build().toChatComponentText()); final RadarList list = listOptional.get(); - Utils.getUUID(communityRadarMod, args[3]).thenAccept(uuidOptional -> { + Utils.getUUID(commonHandler, args[3]).thenAccept(uuidOptional -> { if (!uuidOptional.isPresent()) { // player uuid could not be fetched player.sendMessage(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) @@ -172,7 +172,7 @@ private void handlePlayerRemoveSubcommand(final @NotNull EntityPlayer player, fi } list.getPlayerMap().remove(uuid); - Utils.updatePlayerByUuid(communityRadarMod, uuid, listManager.getExistingPrefixes()); + Utils.updatePlayerByUuid(commonHandler, uuid, listManager.getExistingPrefixes()); player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_SUCCESS) .build().toChatComponentText()); }); diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java index f292c66..77ea539 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java @@ -15,7 +15,7 @@ */ package io.github.communityradargg.forgemod.command; -import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import net.minecraft.command.CommandBase; @@ -32,15 +32,15 @@ * The class containing all logic for the radar command. */ public class RadarCommand extends CommandBase { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; /** * Constructs a {@link RadarCommand}. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. */ - public RadarCommand(final CommunityRadarMod communityRadarMod) { - this.communityRadarMod = communityRadarMod; + public RadarCommand(final CommonHandler commonHandler) { + this.commonHandler = commonHandler; } @Override @@ -80,25 +80,25 @@ public void execute(final @NotNull MinecraftServer server, final @NotNull IComma final EntityPlayer player = (EntityPlayer) sender; Subcommand subcommand = null; if (args.length == 0) { - subcommand = new HelpSubcommand(communityRadarMod, player); + subcommand = new HelpSubcommand(commonHandler, player); } if (subcommand == null) { switch (args[0].toUpperCase(Locale.ENGLISH)) { case "CHECK": - subcommand = new CheckSubcommand(communityRadarMod, player, args); + subcommand = new CheckSubcommand(commonHandler, player, args); break; case "LIST": - subcommand = new ListSubcommand(communityRadarMod, player, args); + subcommand = new ListSubcommand(commonHandler, player, args); break; case "PLAYER": - subcommand = new PlayerSubcommand(communityRadarMod, player, args); + subcommand = new PlayerSubcommand(commonHandler, player, args); break; case "LISTS": - subcommand = new ListsSubcommand(communityRadarMod, player); + subcommand = new ListsSubcommand(commonHandler, player); break; default: - subcommand = new HelpSubcommand(communityRadarMod, player); + subcommand = new HelpSubcommand(commonHandler, player); break; } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java index 4279580..7ba6356 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java @@ -15,8 +15,7 @@ */ package io.github.communityradargg.forgemod.event; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import io.github.communityradargg.forgemod.util.GeneralUtils; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Utils; import net.minecraft.util.text.TextComponentString; import net.minecraftforge.client.event.ClientChatReceivedEvent; @@ -34,15 +33,15 @@ public class ClientChatReceivedListener { * A pattern matching private messages (in and out) and payments (in and out) as well as global and plot chat messages with the player name (nicked, bedrock and java) as only group. */ private static final Pattern PATTERN = Pattern.compile("[A-Za-z\\-+]+\\s\\u2503\\s(~?!?\\w{1,16})"); - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; /** * Constructs the class {@link ClientChatReceivedListener}. * - * @param communityRadarMod An instance of the {@link CommunityRadarMod} class. + * @param commonHandler The common handler. */ - public ClientChatReceivedListener(final @NotNull CommunityRadarMod communityRadarMod) { - this.communityRadarMod = communityRadarMod; + public ClientChatReceivedListener(final @NotNull CommonHandler commonHandler) { + this.commonHandler = commonHandler; } /** @@ -52,7 +51,7 @@ public ClientChatReceivedListener(final @NotNull CommunityRadarMod communityRada */ @SubscribeEvent public void onClientChatReceived(final ClientChatReceivedEvent event) { - if (!GeneralUtils.isOnGrieferGames()) { + if (!commonHandler.isOnGrieferGames()) { return; } @@ -67,9 +66,9 @@ public void onClientChatReceived(final ClientChatReceivedEvent event) { return; } - Utils.getUUID(communityRadarMod, playerName).thenAccept(uuid -> { - if (uuid.isPresent() && communityRadarMod.getListManager().isInList(uuid.get())) { - event.setMessage(new TextComponentString(communityRadarMod.getListManager().getPrefix(uuid.get()).replace("&", "§")) + Utils.getUUID(commonHandler, playerName).thenAccept(uuid -> { + if (uuid.isPresent() && commonHandler.getListManager().isInList(uuid.get())) { + event.setMessage(new TextComponentString(commonHandler.getListManager().getPrefix(uuid.get()).replace("&", "§")) .appendText(" §r") .appendText(event.getMessage().getFormattedText())); } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java index bae33c0..1257197 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java @@ -15,14 +15,26 @@ */ package io.github.communityradargg.forgemod.event; -import io.github.communityradargg.forgemod.util.GeneralUtils; +import io.github.communityradargg.forgemod.util.CommonHandler; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.network.FMLNetworkEvent; +import org.jetbrains.annotations.NotNull; /** * A class containing listeners for player connect and disconnect from and to servers. */ public class ClientConnectionDisconnectListener { + private final CommonHandler commonHandler; + + /** + * Constructs a {@link ClientConnectionDisconnectListener}. + * + * @param commonHandler The common handler. + */ + public ClientConnectionDisconnectListener(final @NotNull CommonHandler commonHandler) { + this.commonHandler = commonHandler; + } + /** * The listener for the {@link FMLNetworkEvent.ClientConnectedToServerEvent} event. * @@ -30,7 +42,7 @@ public class ClientConnectionDisconnectListener { */ @SubscribeEvent public void onFMLNetworkClientConnectedToServer(final FMLNetworkEvent.ClientConnectedToServerEvent event) { - GeneralUtils.setOnGrieferGames(event.isLocal(), event.getManager().getRemoteAddress()); + commonHandler.setOnGrieferGames(event.isLocal(), event.getManager().getRemoteAddress()); } /** @@ -40,6 +52,6 @@ public void onFMLNetworkClientConnectedToServer(final FMLNetworkEvent.ClientConn */ @SubscribeEvent public void onFMLNetworkClientDisconnectionFromServer(final FMLNetworkEvent.ClientDisconnectionFromServerEvent event) { - GeneralUtils.setOnGrieferGames(false); + commonHandler.setOnGrieferGames(false); } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java index ad22f24..5a8c85c 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java @@ -15,8 +15,7 @@ */ package io.github.communityradargg.forgemod.event; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import io.github.communityradargg.forgemod.util.GeneralUtils; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Utils; import net.minecraft.client.Minecraft; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -27,15 +26,15 @@ * A class containing a listener for key input. */ public class KeyInputListener { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; /** * Constructs the class {@link KeyInputListener}. * - * @param communityRadarMod An instance of the {@link CommunityRadarMod} class. + * @param commonHandler The common handler. */ - public KeyInputListener(final @NotNull CommunityRadarMod communityRadarMod) { - this.communityRadarMod = communityRadarMod; + public KeyInputListener(final @NotNull CommonHandler commonHandler) { + this.commonHandler = commonHandler; } /** @@ -45,7 +44,7 @@ public KeyInputListener(final @NotNull CommunityRadarMod communityRadarMod) { */ @SubscribeEvent public void onKeyInput(final InputEvent.KeyInputEvent event) { - if (!GeneralUtils.isOnGrieferGames()) { + if (!commonHandler.isOnGrieferGames()) { return; } @@ -54,6 +53,6 @@ public void onKeyInput(final InputEvent.KeyInputEvent event) { return; } - Utils.updatePrefixes(communityRadarMod, communityRadarMod.getListManager().getExistingPrefixes()); + Utils.updatePrefixes(commonHandler, commonHandler.getListManager().getExistingPrefixes()); } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java index 57c4116..85ac799 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java @@ -15,8 +15,7 @@ */ package io.github.communityradargg.forgemod.event; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import io.github.communityradargg.forgemod.util.GeneralUtils; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Utils; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -26,15 +25,15 @@ * A class containing a listener for player name formatting. */ public class PlayerNameFormatListener { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; /** * Constructs the class {@link PlayerNameFormatListener}. * - * @param communityRadarMod An instance of the {@link CommunityRadarMod} class. + * @param commonHandler The common handler. */ - public PlayerNameFormatListener(final @NotNull CommunityRadarMod communityRadarMod) { - this.communityRadarMod = communityRadarMod; + public PlayerNameFormatListener(final @NotNull CommonHandler commonHandler) { + this.commonHandler = commonHandler; } /** @@ -44,9 +43,9 @@ public PlayerNameFormatListener(final @NotNull CommunityRadarMod communityRadarM */ @SubscribeEvent public void onPlayerNameFormat(final PlayerEvent.NameFormat event) { - if (!GeneralUtils.isOnGrieferGames()) { + if (!commonHandler.isOnGrieferGames()) { return; } - Utils.updatePlayerNameTag(communityRadarMod, event.getEntityPlayer(), communityRadarMod.getListManager().getExistingPrefixes()); + Utils.updatePlayerNameTag(commonHandler, event.getEntityPlayer(), commonHandler.getListManager().getExistingPrefixes()); } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java deleted file mode 100644 index a159d76..0000000 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListManager.java +++ /dev/null @@ -1,320 +0,0 @@ -/* - * Copyright 2024 - present CommunityRadarGG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.github.communityradargg.forgemod.radarlistmanager; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonIOException; -import com.google.gson.JsonSyntaxException; -import com.google.gson.reflect.TypeToken; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import io.github.communityradargg.forgemod.radarlistmanager.adapters.GsonLocalDateTimeAdapter; -import io.github.communityradargg.forgemod.radarlistmanager.adapters.GsonRadarListPlayerMapAdapter; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.UUID; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -/** - * A class containing the methods to manage lists. - */ -public class RadarListManager { - private static final Logger LOGGER = LogManager.getLogger(RadarListManager.class); - static final Gson GSON = new GsonBuilder() - .setPrettyPrinting() - .registerTypeAdapter(LocalDateTime.class, new GsonLocalDateTimeAdapter()) - .registerTypeAdapter(Map.class, new GsonRadarListPlayerMapAdapter()) - .create(); - private final CommunityRadarMod communityRadarMod; - private final List lists; - private final String directoryPath; - - /** - * Constructs a {@link RadarListManager} - * - * @param communityRadarMod The mod main class instance. - * @param directoryPath The directory path of the list the manager manages. - */ - public RadarListManager(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull String directoryPath) { - this.lists = new ArrayList<>(); - this.communityRadarMod = communityRadarMod; - this.directoryPath = directoryPath; - } - - /** - * Checks if a given uuid is in a list. - * - * @param uuid The uuid to check. - * @return Returns, whether the uuid is in a list. - */ - public boolean isInList(final @NotNull UUID uuid) { - return lists.stream() - .anyMatch(list -> list.isInList(uuid)); - } - - /** - * Gets the first prefix linked to a given uuid. - * - * @param uuid The uuid to get the prefix for. - * @return Returns the prefix. - */ - public @NotNull String getPrefix(final @NotNull UUID uuid) { - return lists.stream() - .filter(list -> list.isInList(uuid)) - .map(RadarList::getPrefix) - .findFirst() - .orElse(""); - } - - /** - * Gets all existing namespaces. - * - * @return Returns a set with all existing namespaces. - */ - public @NotNull Set getNamespaces() { - return lists.stream() - .map(RadarList::getNamespace) - .collect(Collectors.toSet()); - } - - /** - * Gets an optional with a {@link RadarListEntry} by a given uuid. - * - * @param uuid The uuid to get the entry for. - * @return Returns an optional with the found entry. - */ - public @NotNull Optional getRadarListEntry(final @NotNull UUID uuid) { - return lists.stream() - .filter(list -> list.isInList(uuid)) - .findFirst() - .flatMap(list -> list.getRadarListEntry(uuid)); - } - - /** - * Gets an optional with a {@link RadarList} by a given namespace. - * - * @param namespace The namespace to get the list for. - * @return Returns an optional with the found list. - */ - public @NotNull Optional getRadarList(final @NotNull String namespace) { - return lists.stream() - .filter(list -> list.getNamespace().equalsIgnoreCase(namespace)) - .findFirst(); - } - - /** - * Adds a player entry to a list. - * - * @param namespace The namespace of the list. - * @param uuid The player uuid for the entry. - * @param name The player name for the entry. - * @param cause The cause for the entry. - * @return Returns, whether the entry was successfully added. - */ - public boolean addRadarListEntry(final @NotNull String namespace, final @NotNull UUID uuid, final @NotNull String name, final @NotNull String cause) { - if (getRadarListEntry(uuid).isPresent()) { - return false; - } - - final Optional listOptional = lists.stream() - .filter(list -> list.getNamespace().equalsIgnoreCase(namespace)) - .findFirst(); - - if (listOptional.isPresent()) { - final RadarList list = listOptional.get(); - - if (list.getRadarListVisibility() == RadarListVisibility.PRIVATE) { - list.addRadarListEntry(new RadarListEntry(uuid, name, cause, LocalDateTime.now())); - return true; - } - } - return false; - } - - /** - * Saves a radar list to disk if it is a private one. - * - * @param list The list to save. - */ - public void saveRadarList(final @NotNull RadarList list) { - if (list.getRadarListVisibility() != RadarListVisibility.PRIVATE) { - return; - } - - try (final FileWriter writer = new FileWriter(directoryPath + list.getNamespace() + ".json")) { - writer.write(GSON.toJson(list)); - } catch (final IOException e) { - LOGGER.error("Could not save list", e); - } - } - - /** - * Registers a private list. - * - * @param namespace The namespace of the list. - * @param prefix The prefix of the list. - * @return Returns, whether the list was successfully registered. - */ - public boolean registerPrivateList(final @NotNull String namespace, final @NotNull String prefix) { - final boolean namespaceExists = getNamespaces().stream() - .anyMatch(namespace::equalsIgnoreCase); - if (namespaceExists) { - return false; - } - - lists.add(new RadarList(communityRadarMod, namespace, prefix, directoryPath + namespace + ".json", RadarListVisibility.PRIVATE)); - - final Optional listOptional = getRadarList(namespace); - if (!listOptional.isPresent()) { - return false; - } - - saveRadarList(listOptional.get()); - return true; - } - - /** - * Registers a public list. - * - * @param namespace The namespace of the list. - * @param prefix The prefix of the list. - * @return Returns, whether the list was successfully registered. - */ - @SuppressWarnings("BooleanMethodIsAlwaysInverted") // better understanding of code logic - public boolean registerPublicList(final @NotNull String namespace, final @NotNull String prefix, final @NotNull String url) { - final boolean namespaceExists = getNamespaces().stream() - .anyMatch(namespace::equalsIgnoreCase); - if (namespaceExists) { - return false; - } - - lists.add(new RadarList(communityRadarMod, namespace, prefix, url, RadarListVisibility.PUBLIC)); - return true; - } - - /** - * Adds a radar list if it is not null. - * - * @param list The nullable radar list. - */ - private void addRadarList(final @Nullable RadarList list) { - if (list != null) { - lists.add(list); - } - } - - /** - * Unregisters a list by its namespace. - * - * @param namespace The namespace of the list. - * @return Returns, whether the list was successfully unregistered. - */ - public boolean unregisterList(final @NotNull String namespace) { - final Optional listOptional = getRadarList(namespace); - if (!listOptional.isPresent()) { - return false; - } - - final RadarList list = listOptional.get(); - if (list.getRadarListVisibility() == RadarListVisibility.PUBLIC) { - return false; - } - - final File file = new File(list.getUrl()); - if (file.exists() && !file.delete()) { - return false; - } - - lists.remove(list); - return true; - } - - /** - * Loads the private lists from disk. - */ - public void loadPrivateLists() { - getJsonUrls(directoryPath) - .forEach(jsonUrl -> loadRadarListFromFile(jsonUrl) - .ifPresent(this::addRadarList)); - } - - /** - * Loads a radar list from a file. - * - * @param filePath The path to the file. - * @return Returns an optional with the loaded radar list. - */ - private @NotNull Optional loadRadarListFromFile(final @NotNull String filePath) { - try (final FileReader reader = new FileReader(filePath)) { - final RadarList list = GSON.fromJson(reader, new TypeToken() {}.getType()); - list.setUrl(filePath); - if (list.validateList()) { - return Optional.of(list); - } - } catch (final IOException | IllegalStateException | JsonIOException | JsonSyntaxException e) { - LOGGER.error("Could not load list from file", e); - } - return Optional.empty(); - } - - /** - * Gets the json urls for the directory paths. - * - * @param directoryPath The directory path. - * @return Returns a set with all json urls. - */ - private @NotNull Set getJsonUrls(final @NotNull String directoryPath) { - try (final Stream paths = Files.walk(Paths.get(directoryPath))) { - return paths - .filter(Files::isRegularFile) - .map(Path::toString) - .filter(string -> string.endsWith(".json")) - .collect(Collectors.toSet()); - } catch (final IOException e) { - LOGGER.error("Could not get json urls", e); - } - return new HashSet<>(); - } - - /** - * Gets all existing prefixes. - * - * @return Returns a set with all existing prefixes. - */ - public @NotNull Set getExistingPrefixes() { - return lists.stream() - .map(RadarList::getPrefix) - .collect(Collectors.toSet()); - } -} diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java index ef9c5eb..ddf586e 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java @@ -17,7 +17,6 @@ import com.google.gson.Gson; import com.google.gson.JsonObject; -import io.github.communityradargg.forgemod.CommunityRadarMod; import net.minecraft.client.Minecraft; import net.minecraft.client.network.NetHandlerPlayClient; import net.minecraft.client.network.NetworkPlayerInfo; @@ -53,11 +52,11 @@ public class Utils { /** * Tries to get the uuid to the player name from the world. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler * @param playerName The player name to get the corresponding uuid. * @return Returns a CompletableFuture with an optional with the player uuid. */ - public static @NotNull CompletableFuture> getUUID(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull String playerName) { + public static @NotNull CompletableFuture> getUUID(final @NotNull CommonHandler commonHandler, final @NotNull String playerName) { // user has to be in a world if (Minecraft.getMinecraft().world == null) { return CompletableFuture.completedFuture(Optional.empty()); @@ -86,17 +85,17 @@ public class Utils { } // If no player with same name is in the world, try fetching the UUID from the Mojang-API. - return requestUuidForName(communityRadarMod, playerName); + return requestUuidForName(commonHandler, playerName); } /** * Requests an uuid to a player name, from the Mojang API. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param playerName The player name to get the uuid for. * @return Returns a CompletableFuture with an optional with the requested uuid, it will be empty if an error occurred on requesting. */ - private static @NotNull CompletableFuture> requestUuidForName(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull String playerName) { + private static @NotNull CompletableFuture> requestUuidForName(final @NotNull CommonHandler commonHandler, final @NotNull String playerName) { final String urlText = MOJANG_API_NAME_TO_UUID + playerName; return CompletableFuture.supplyAsync(() -> { HttpURLConnection connection = null; @@ -106,7 +105,7 @@ public class Utils { connection.setConnectTimeout(3000); connection.setReadTimeout(3000); connection.setRequestMethod("GET"); - connection.setRequestProperty("User-Agent", CommunityRadarMod.MOD_ID + "/" + communityRadarMod.getVersion()); + connection.setRequestProperty("User-Agent", CommonHandler.MOD_ID + "/" + commonHandler.getVersionBridge().getVersion()); if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { LOGGER.warn("Requesting data from '{}' resulted in following status code: {}", urlText, connection.getResponseCode()); @@ -171,24 +170,24 @@ public class Utils { /** * Updates a player display name and name tag by its uuid. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param uuid The uuid to update the corresponding player. */ - public static void updatePlayerByUuid(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull UUID uuid, final @NotNull Set oldPrefixes) { - getEntityPlayerByUuid(uuid).ifPresent(player -> updatePlayerNameTag(communityRadarMod, player, oldPrefixes)); - getNetworkPlayerInfoByUuid(uuid).ifPresent(networkPlayerInfo -> updatePlayerPrefix(communityRadarMod, networkPlayerInfo, oldPrefixes)); + public static void updatePlayerByUuid(final @NotNull CommonHandler commonHandler, final @NotNull UUID uuid, final @NotNull Set oldPrefixes) { + getEntityPlayerByUuid(uuid).ifPresent(player -> updatePlayerNameTag(commonHandler, player, oldPrefixes)); + getNetworkPlayerInfoByUuid(uuid).ifPresent(networkPlayerInfo -> updatePlayerPrefix(commonHandler, networkPlayerInfo, oldPrefixes)); } /** * Handles updating the name tag of a player entity. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param player The player entity to update the name tag. * @param oldPrefixes The old prefixes that need to be removed before adding the new one. */ - public static void updatePlayerNameTag(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player, final @NotNull Set oldPrefixes) { + public static void updatePlayerNameTag(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull Set oldPrefixes) { player.getPrefixes().removeIf(prefix -> oldPrefixes.stream().anyMatch(oldPrefix -> new TextComponentString(oldPrefix.replace("&", "§") + " ").getUnformattedText().equals(prefix.getUnformattedText()))); - final String addonPrefix = communityRadarMod.getListManager() + final String addonPrefix = commonHandler.getListManager() .getPrefix(player.getGameProfile().getId()) .replace("&", "§"); @@ -200,25 +199,25 @@ public static void updatePlayerNameTag(final @NotNull CommunityRadarMod communit /** * Handles updating the player prefixes in the display name. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param oldPrefixes The old prefixes that need to be removed before adding the new one. */ - public static void updatePrefixes(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull Set oldPrefixes) { + public static void updatePrefixes(final @NotNull CommonHandler commonHandler, final @NotNull Set oldPrefixes) { final NetHandlerPlayClient connection = Minecraft.getMinecraft().getConnection(); if (connection == null) { return; } - connection.getPlayerInfoMap().forEach(player -> updatePlayerPrefix(communityRadarMod, player, oldPrefixes)); + connection.getPlayerInfoMap().forEach(player -> updatePlayerPrefix(commonHandler, player, oldPrefixes)); } /** * Handles updating the player prefix in the display name of a single player. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param player The player to update. * @param oldPrefixes The old prefixes that need to be removed before adding the new one. */ - private static void updatePlayerPrefix(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull NetworkPlayerInfo player, final @NotNull Set oldPrefixes) { + private static void updatePlayerPrefix(final @NotNull CommonHandler commonHandler, final @NotNull NetworkPlayerInfo player, final @NotNull Set oldPrefixes) { if (player.getGameProfile().getId() == null || player.getDisplayName() == null) { return; } @@ -232,7 +231,7 @@ private static void updatePlayerPrefix(final @NotNull CommunityRadarMod communit newDisplayName = displayName.getSiblings().get(displayName.getSiblings().size() - 1); } - final String addonPrefix = communityRadarMod.getListManager() + final String addonPrefix = commonHandler.getListManager() .getPrefix(player.getGameProfile().getId()) .replace("&", "§"); if (!addonPrefix.isEmpty()) { diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java index 19904e1..8b8aa9f 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java @@ -20,31 +20,26 @@ import io.github.communityradargg.forgemod.event.ClientConnectionDisconnectListener; import io.github.communityradargg.forgemod.event.KeyInputListener; import io.github.communityradargg.forgemod.event.PlayerNameFormatListener; -import io.github.communityradargg.forgemod.radarlistmanager.RadarListManager; +import io.github.communityradargg.forgemod.util.CommonHandler; +import io.github.communityradargg.forgemod.util.VersionBridgeImpl; import net.minecraft.client.Minecraft; import net.minecraft.util.ChatComponentText; import net.minecraftforge.client.ClientCommandHandler; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; -import net.minecraftforge.fml.common.ModContainer; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; -import java.io.File; -import java.nio.file.Paths; - /** * This class represents the main class of the mod. */ -@Mod(modid = CommunityRadarMod.MOD_ID) -public class CommunityRadarMod implements ModSpecific { +@Mod(modid = CommonHandler.MOD_ID) +public class CommunityRadarMod { private static final Logger LOGGER = LogManager.getLogger(CommunityRadarMod.class); - private RadarListManager listManager; - private String version; + private final CommonHandler commonHandler = new CommonHandler(new VersionBridgeImpl()); /** * The listener for the {@link FMLInitializationEvent} event. @@ -53,72 +48,31 @@ public class CommunityRadarMod implements ModSpecific { */ @EventHandler public void init(final FMLInitializationEvent event) { - LOGGER.info("Loading the mod '{}'", MOD_ID); - - final ModContainer modContainer = Loader.instance().getIndexedModList().get(MOD_ID); - version = modContainer == null ? "UNKNOWN" : modContainer.getVersion(); + LOGGER.info("Loading the mod '{}'", CommonHandler.MOD_ID); - final File directoryPath = Paths.get(new File("") - .getAbsolutePath(), "communityradar", "lists") - .toFile(); - if (!directoryPath.exists() && !directoryPath.mkdirs()) { - LOGGER.error("Could not create directory: {}", directoryPath); - } - - listManager = new RadarListManager(this, directoryPath.getAbsolutePath() + "/"); - registerPublicLists(); - // Needs to be after loading public lists - listManager.loadPrivateLists(); registerEvents(); registerCommands(); - LOGGER.info("Successfully loaded the mod '{}'", MOD_ID); + LOGGER.info("Successfully loaded the mod '{}'", CommonHandler.MOD_ID); } /** * Registers the events. */ private void registerEvents() { - MinecraftForge.EVENT_BUS.register(new ClientChatReceivedListener(this)); - MinecraftForge.EVENT_BUS.register(new PlayerNameFormatListener(this)); - MinecraftForge.EVENT_BUS.register(new KeyInputListener(this)); - MinecraftForge.EVENT_BUS.register(new ClientConnectionDisconnectListener()); + MinecraftForge.EVENT_BUS.register(new ClientChatReceivedListener(commonHandler)); + MinecraftForge.EVENT_BUS.register(new PlayerNameFormatListener(commonHandler)); + MinecraftForge.EVENT_BUS.register(new KeyInputListener(commonHandler)); + MinecraftForge.EVENT_BUS.register(new ClientConnectionDisconnectListener(commonHandler)); } /** * Registers the commands. */ private void registerCommands() { - ClientCommandHandler.instance.registerCommand(new RadarCommand(this)); - } - - /** - * Registers the public lists. - */ - private void registerPublicLists() { - if (!listManager.registerPublicList("scammer", "&7[&cScammer&7]", "https://lists.community-radar.de/versions/v1/scammer.json")) { - LOGGER.error("Could not register public list 'scammers'!"); - } - - if (!listManager.registerPublicList("trusted", "&7[&aTrusted&7]", "https://lists.community-radar.de/versions/v1/trusted.json")) { - LOGGER.error("Could not register public list 'verbvllert_trusted'!"); - } - } - - /** - * Gets the {@link RadarListManager} instance. - * - * @return Returns the radar list manager instance. - */ - public @NotNull RadarListManager getListManager() { - return listManager; - } - - @Override - public String getVersion() { - return version; + ClientCommandHandler.instance.registerCommand(new RadarCommand(commonHandler)); } - @Override + @Deprecated public void sendMessage(final @NotNull String message) { if (Minecraft.getMinecraft().thePlayer == null) { LOGGER.warn("Could not add message to chat. Player is null. The message is following: {}", message); diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java index 6e7405c..1e74fcd 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java @@ -15,9 +15,8 @@ */ package io.github.communityradargg.forgemod.command; -import io.github.communityradargg.forgemod.CommunityRadarMod; import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; -import io.github.communityradargg.forgemod.util.GeneralUtils; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import io.github.communityradargg.forgemod.util.Utils; @@ -31,19 +30,19 @@ * Holds the logic of the check subcommand. */ public class CheckSubcommand implements Subcommand { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; private final EntityPlayer player; private final String[] args; /** * Constructs a {@link CheckSubcommand}. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param player The player. * @param args The args. */ - public CheckSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player, final @NotNull String[] args) { - this.communityRadarMod = communityRadarMod; + public CheckSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull String[] args) { + this.commonHandler = commonHandler; this.player = player; this.args = args; } @@ -74,7 +73,7 @@ public void run() { private void handleCheckPlayerSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) .build().toChatComponentText()); - Utils.getUUID(communityRadarMod, args[1]).thenAccept(checkPlayerOptional -> { + Utils.getUUID(commonHandler, args[1]).thenAccept(checkPlayerOptional -> { if (!checkPlayerOptional.isPresent()) { // player uuid could not be fetched player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) @@ -82,7 +81,7 @@ private void handleCheckPlayerSubcommand(final @NotNull EntityPlayer player, fin return; } - final Optional entryOptional = communityRadarMod.getListManager().getRadarListEntry(checkPlayerOptional.get()); + final Optional entryOptional = commonHandler.getListManager().getRadarListEntry(checkPlayerOptional.get()); if (!entryOptional.isPresent()) { // player uuid is on no list player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) @@ -92,11 +91,11 @@ private void handleCheckPlayerSubcommand(final @NotNull EntityPlayer player, fin final RadarListEntry entry = entryOptional.get(); player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FOUND + "\n" + Messages.Check.CHECK_ENTRY) - .replaceWithColorCodes("{prefix}", communityRadarMod.getListManager().getPrefix(entry.uuid())) + .replaceWithColorCodes("{prefix}", commonHandler.getListManager().getPrefix(entry.uuid())) .replace("{name}", entry.name()) .replace("{cause}", entry.cause()) - .replace("{entryCreationDate}", GeneralUtils.formatDateTime(entry.entryCreationDate())) - .replace("{entryUpdateDate}", GeneralUtils.formatDateTime(entry.entryUpdateDate())) + .replace("{entryCreationDate}", commonHandler.formatDateTime(entry.entryCreationDate())) + .replace("{entryUpdateDate}", commonHandler.formatDateTime(entry.entryUpdateDate())) .build().toChatComponentText()); }); } @@ -113,7 +112,7 @@ private void handleCheckAllSubcommand(final @NotNull EntityPlayer player) { continue; } - final Optional listEntryOptional = communityRadarMod.getListManager() + final Optional listEntryOptional = commonHandler.getListManager() .getRadarListEntry(networkPlayer.getGameProfile().getId()); if (!listEntryOptional.isPresent()) { // player uuid is on no list @@ -128,11 +127,11 @@ private void handleCheckAllSubcommand(final @NotNull EntityPlayer player) { final RadarListEntry entry = listEntryOptional.get(); player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.CHECK_ENTRY) - .replaceWithColorCodes("{prefix}", communityRadarMod.getListManager().getPrefix(entry.uuid())) + .replaceWithColorCodes("{prefix}", commonHandler.getListManager().getPrefix(entry.uuid())) .replace("{name}", entry.name()) .replace("{cause}", entry.cause()) - .replace("{entryCreationDate}", GeneralUtils.formatDateTime(entry.entryCreationDate())) - .replace("{entryUpdateDate}", GeneralUtils.formatDateTime(entry.entryUpdateDate())) + .replace("{entryCreationDate}", commonHandler.formatDateTime(entry.entryCreationDate())) + .replace("{entryUpdateDate}", commonHandler.formatDateTime(entry.entryUpdateDate())) .build().toChatComponentText()); } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java index d697516..ad349fa 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java @@ -15,7 +15,7 @@ */ package io.github.communityradargg.forgemod.command; -import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import net.minecraft.entity.player.EntityPlayer; @@ -25,24 +25,24 @@ * Holds the logic of the help subcommand. */ public class HelpSubcommand implements Subcommand { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; private final EntityPlayer player; /** * Constructs a {@link HelpSubcommand}. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler * @param player The player. */ - public HelpSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player) { - this.communityRadarMod = communityRadarMod; + public HelpSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player) { + this.commonHandler = commonHandler; this.player = player; } @Override public void run() { player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.HELP) - .replace("{code_version}", communityRadarMod.getVersion()) + .replace("{code_version}", commonHandler.getVersionBridge().getVersion()) .excludePrefix() .build().toChatComponentText()); } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java index da5cf47..e766211 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java @@ -15,9 +15,9 @@ */ package io.github.communityradargg.forgemod.command; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import io.github.communityradargg.forgemod.radarlistmanager.RadarList; -import io.github.communityradargg.forgemod.radarlistmanager.RadarListManager; +import io.github.communityradargg.forgemod.list.ListManager; +import io.github.communityradargg.forgemod.list.RadarList; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import io.github.communityradargg.forgemod.util.Utils; @@ -33,19 +33,19 @@ * Holds the logic of the list subcommand. */ public class ListSubcommand implements Subcommand { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; private final EntityPlayer player; private final String[] args; /** * Constructs a {@link ListSubcommand}. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param player The player. * @param args The args. */ - public ListSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player, final @NotNull String[] args) { - this.communityRadarMod = communityRadarMod; + public ListSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull String[] args) { + this.commonHandler = commonHandler; this.player = player; this.args = args; } @@ -73,7 +73,7 @@ public void run() { handleListShowSubcommand(player, args); break; default: - new HelpSubcommand(communityRadarMod, player).run(); + new HelpSubcommand(commonHandler, player).run(); break; } } @@ -92,14 +92,14 @@ private void handleListAddSubcommand(final @NotNull EntityPlayer player, final @ return; } - if (communityRadarMod.getListManager().getRadarList(args[2]).isPresent()) { + if (commonHandler.getListManager().getRadarList(args[2]).isPresent()) { // list already existing player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) .build().toChatComponentText()); return; } - if (!communityRadarMod.getListManager().registerPrivateList(args[2], args[3])) { + if (!commonHandler.getListManager().registerPrivateList(args[2], args[3])) { // list could not be registered player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) .build().toChatComponentText()); @@ -124,7 +124,7 @@ private void handleListDeleteSubcommand(final @NotNull EntityPlayer player, fina return; } - final RadarListManager listManager = communityRadarMod.getListManager(); + final ListManager listManager = commonHandler.getListManager(); final Set oldPrefixes = listManager.getExistingPrefixes(); final Set oldUuids = listManager.getRadarList(args[2]) .map(radarList -> radarList.getPlayerMap().keySet()) @@ -137,7 +137,7 @@ private void handleListDeleteSubcommand(final @NotNull EntityPlayer player, fina return; } - oldUuids.forEach(uuid -> Utils.updatePlayerByUuid(communityRadarMod, uuid, oldPrefixes)); + oldUuids.forEach(uuid -> Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes)); player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_SUCCESS) .build().toChatComponentText()); } @@ -156,7 +156,7 @@ private void handleListShowSubcommand(final @NotNull EntityPlayer player, final return; } - final Optional listOptional = communityRadarMod.getListManager().getRadarList(args[2]); + final Optional listOptional = commonHandler.getListManager().getRadarList(args[2]); if (!listOptional.isPresent()) { // list is not existing player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_FAILED) @@ -195,7 +195,7 @@ private void handleListPrefixSubcommand(final @NotNull EntityPlayer player, fina return; } - final RadarListManager listManager = communityRadarMod.getListManager(); + final ListManager listManager = commonHandler.getListManager(); final Optional listOptional = listManager.getRadarList(args[2]); if (!listOptional.isPresent()) { // list is not existing @@ -208,7 +208,7 @@ private void handleListPrefixSubcommand(final @NotNull EntityPlayer player, fina final Set oldPrefixes = listManager.getExistingPrefixes(); list.setPrefix(args[3]); list.saveList(); - list.getPlayerMap().keySet().forEach(uuid -> Utils.updatePlayerByUuid(communityRadarMod, uuid, oldPrefixes)); + list.getPlayerMap().keySet().forEach(uuid -> Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes)); player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_SUCCESS) .replaceWithColorCodes("{prefix}", args[3]) diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java index 6ecb7a7..cf3d582 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java @@ -15,8 +15,8 @@ */ package io.github.communityradargg.forgemod.command; -import io.github.communityradargg.forgemod.CommunityRadarMod; import io.github.communityradargg.forgemod.radarlistmanager.RadarListVisibility; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import net.minecraft.entity.player.EntityPlayer; @@ -26,25 +26,25 @@ * Holds the logic of the lists subcommand. */ public class ListsSubcommand implements Subcommand { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; private final EntityPlayer player; /** * Constructs a {@link ListsSubcommand}. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param player The player. */ - public ListsSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player) { - this.communityRadarMod = communityRadarMod; + public ListsSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player) { + this.commonHandler = commonHandler; this.player = player; } @Override public void run() { final StringBuilder listsText = new StringBuilder(); - for (final String namespace : communityRadarMod.getListManager().getNamespaces()) { - communityRadarMod.getListManager().getRadarList(namespace) + for (final String namespace : commonHandler.getListManager().getNamespaces()) { + commonHandler.getListManager().getRadarList(namespace) .ifPresent(radarList -> listsText.append("§e").append(namespace).append(" §7(§c") .append(radarList.getRadarListVisibility() == RadarListVisibility.PRIVATE ? Messages.Lists.PRIVATE : Messages.Lists.PUBLIC) .append("§7)").append(", ")); diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java index e621150..bedb603 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java @@ -15,9 +15,9 @@ */ package io.github.communityradargg.forgemod.command; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import io.github.communityradargg.forgemod.radarlistmanager.RadarList; -import io.github.communityradargg.forgemod.radarlistmanager.RadarListManager; +import io.github.communityradargg.forgemod.list.ListManager; +import io.github.communityradargg.forgemod.list.RadarList; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import io.github.communityradargg.forgemod.util.Utils; @@ -31,19 +31,19 @@ * Holds the logic of the player subcommand. */ public class PlayerSubcommand implements Subcommand { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; private final EntityPlayer player; private final String[] args; /** * Constructs a {@link PlayerSubcommand}. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param player The player. * @param args The args. */ - public PlayerSubcommand(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player, final @NotNull String[] args) { - this.communityRadarMod = communityRadarMod; + public PlayerSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull String[] args) { + this.commonHandler = commonHandler; this.player = player; this.args = args; } @@ -65,7 +65,7 @@ public void run() { handlePlayerRemoveSubcommand(player, args); break; default: - new HelpSubcommand(communityRadarMod, player).run(); + new HelpSubcommand(commonHandler, player).run(); break; } } @@ -84,7 +84,7 @@ private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final return; } - final RadarListManager listManager = communityRadarMod.getListManager(); + final ListManager listManager = commonHandler.getListManager(); final Optional listOptional = listManager.getRadarList(args[2]); if (!listOptional.isPresent()) { // list not existing @@ -95,7 +95,7 @@ private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) .build().toChatComponentText()); - Utils.getUUID(communityRadarMod, args[3]).thenAccept(uuidOptional -> { + Utils.getUUID(commonHandler, args[3]).thenAccept(uuidOptional -> { if (!uuidOptional.isPresent()) { // player uuid could not be fetched player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) @@ -116,7 +116,7 @@ private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final notes.append(args[i]).append(" "); } - if (!communityRadarMod.getListManager().addRadarListEntry(args[2], uuid, args[3], notes.substring(0, notes.length() - 1))) { + if (!commonHandler.getListManager().addRadarListEntry(args[2], uuid, args[3], notes.substring(0, notes.length() - 1))) { // list is not private player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_FAILED) .build().toChatComponentText()); @@ -125,7 +125,7 @@ private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_SUCCESS) .build().toChatComponentText()); - Utils.updatePlayerByUuid(communityRadarMod, uuid, listManager.getExistingPrefixes()); + Utils.updatePlayerByUuid(commonHandler, uuid, listManager.getExistingPrefixes()); }); } @@ -143,7 +143,7 @@ private void handlePlayerRemoveSubcommand(final @NotNull EntityPlayer player, fi return; } - final RadarListManager listManager = communityRadarMod.getListManager(); + final ListManager listManager = commonHandler.getListManager(); final Optional listOptional = listManager.getRadarList(args[2]); if (!listOptional.isPresent()) { // list is not existing @@ -155,7 +155,7 @@ private void handlePlayerRemoveSubcommand(final @NotNull EntityPlayer player, fi player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) .build().toChatComponentText()); final RadarList list = listOptional.get(); - Utils.getUUID(communityRadarMod, args[3]).thenAccept(uuidOptional -> { + Utils.getUUID(commonHandler, args[3]).thenAccept(uuidOptional -> { if (!uuidOptional.isPresent()) { // player uuid could not be fetched player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) @@ -172,7 +172,7 @@ private void handlePlayerRemoveSubcommand(final @NotNull EntityPlayer player, fi } list.getPlayerMap().remove(uuid); - Utils.updatePlayerByUuid(communityRadarMod, uuid, listManager.getExistingPrefixes()); + Utils.updatePlayerByUuid(commonHandler, uuid, listManager.getExistingPrefixes()); player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_SUCCESS) .build().toChatComponentText()); }); diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java index 5bc6668..8d34416 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java @@ -15,7 +15,7 @@ */ package io.github.communityradargg.forgemod.command; -import io.github.communityradargg.forgemod.CommunityRadarMod; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import net.minecraft.command.CommandBase; @@ -31,15 +31,15 @@ * The class containing all logic for the main radar command. */ public class RadarCommand extends CommandBase { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; /** * Constructs a {@link RadarCommand}. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. */ - public RadarCommand(final CommunityRadarMod communityRadarMod) { - this.communityRadarMod = communityRadarMod; + public RadarCommand(final CommonHandler commonHandler) { + this.commonHandler = commonHandler; } @Override @@ -79,25 +79,25 @@ public void processCommand(final ICommandSender sender, final String[] args) { final EntityPlayer player = (EntityPlayer) sender; Subcommand subcommand = null; if (args.length == 0) { - subcommand = new HelpSubcommand(communityRadarMod, player); + subcommand = new HelpSubcommand(commonHandler, player); } if (subcommand == null) { switch (args[0].toUpperCase(Locale.ENGLISH)) { case "CHECK": - subcommand = new CheckSubcommand(communityRadarMod, player, args); + subcommand = new CheckSubcommand(commonHandler, player, args); break; case "LIST": - subcommand = new ListSubcommand(communityRadarMod, player, args); + subcommand = new ListSubcommand(commonHandler, player, args); break; case "PLAYER": - subcommand = new PlayerSubcommand(communityRadarMod, player, args); + subcommand = new PlayerSubcommand(commonHandler, player, args); break; case "LISTS": - subcommand = new ListsSubcommand(communityRadarMod, player); + subcommand = new ListsSubcommand(commonHandler, player); break; default: - subcommand = new HelpSubcommand(communityRadarMod, player); + subcommand = new HelpSubcommand(commonHandler, player); break; } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java index 75d95b8..e126ae2 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java @@ -15,8 +15,7 @@ */ package io.github.communityradargg.forgemod.event; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import io.github.communityradargg.forgemod.util.GeneralUtils; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Utils; import net.minecraft.util.ChatComponentText; import net.minecraftforge.client.event.ClientChatReceivedEvent; @@ -34,15 +33,15 @@ public class ClientChatReceivedListener { * A pattern matching private messages (in and out) and payments (in and out) as well as global and plot chat messages with the player name (nicked, bedrock and java) as only group. */ private static final Pattern PATTERN = Pattern.compile("[A-Za-z\\-+]+\\s\\u2503\\s(~?!?\\w{1,16})"); - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; /** * Constructs the class {@link ClientChatReceivedListener}. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. */ - public ClientChatReceivedListener(final @NotNull CommunityRadarMod communityRadarMod) { - this.communityRadarMod = communityRadarMod; + public ClientChatReceivedListener(final @NotNull CommonHandler commonHandler) { + this.commonHandler = commonHandler; } /** @@ -52,7 +51,7 @@ public ClientChatReceivedListener(final @NotNull CommunityRadarMod communityRada */ @SubscribeEvent public void onClientChatReceived(final ClientChatReceivedEvent event) { - if (!GeneralUtils.isOnGrieferGames()) { + if (!commonHandler.isOnGrieferGames()) { return; } @@ -67,9 +66,9 @@ public void onClientChatReceived(final ClientChatReceivedEvent event) { return; } - Utils.getUUID(communityRadarMod, playerName).thenAccept(uuid -> { - if (uuid.isPresent() && communityRadarMod.getListManager().isInList(uuid.get())) { - event.message = new ChatComponentText(communityRadarMod.getListManager().getPrefix(uuid.get()).replace("&", "§")) + Utils.getUUID(commonHandler, playerName).thenAccept(uuid -> { + if (uuid.isPresent() && commonHandler.getListManager().isInList(uuid.get())) { + event.message = new ChatComponentText(commonHandler.getListManager().getPrefix(uuid.get()).replace("&", "§")) .appendText(" §r") .appendText(event.message.getFormattedText()); } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java index 8db3762..9877b62 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientConnectionDisconnectListener.java @@ -15,14 +15,26 @@ */ package io.github.communityradargg.forgemod.event; -import io.github.communityradargg.forgemod.util.GeneralUtils; +import io.github.communityradargg.forgemod.util.CommonHandler; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.network.FMLNetworkEvent; +import org.jetbrains.annotations.NotNull; /** * A class containing listeners for player connect and disconnect from and to servers. */ public class ClientConnectionDisconnectListener { + private final CommonHandler commonHandler; + + /** + * Constructs a {@link CommonHandler}. + * + * @param commonHandler Constructs a common handler. + */ + public ClientConnectionDisconnectListener(final @NotNull CommonHandler commonHandler) { + this.commonHandler = commonHandler; + } + /** * The listener for the {@link FMLNetworkEvent.ClientConnectedToServerEvent} event. * @@ -30,7 +42,7 @@ public class ClientConnectionDisconnectListener { */ @SubscribeEvent public void onFMLNetworkClientConnectedToServer(final FMLNetworkEvent.ClientConnectedToServerEvent event) { - GeneralUtils.setOnGrieferGames(event.isLocal, event.manager.getRemoteAddress()); + commonHandler.setOnGrieferGames(event.isLocal, event.manager.getRemoteAddress()); } /** @@ -40,6 +52,6 @@ public void onFMLNetworkClientConnectedToServer(final FMLNetworkEvent.ClientConn */ @SubscribeEvent public void onFMLNetworkClientDisconnectionFromServer(final FMLNetworkEvent.ClientDisconnectionFromServerEvent event) { - GeneralUtils.setOnGrieferGames(false); + commonHandler.setOnGrieferGames(false); } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java index ad22f24..5a8c85c 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java @@ -15,8 +15,7 @@ */ package io.github.communityradargg.forgemod.event; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import io.github.communityradargg.forgemod.util.GeneralUtils; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Utils; import net.minecraft.client.Minecraft; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -27,15 +26,15 @@ * A class containing a listener for key input. */ public class KeyInputListener { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; /** * Constructs the class {@link KeyInputListener}. * - * @param communityRadarMod An instance of the {@link CommunityRadarMod} class. + * @param commonHandler The common handler. */ - public KeyInputListener(final @NotNull CommunityRadarMod communityRadarMod) { - this.communityRadarMod = communityRadarMod; + public KeyInputListener(final @NotNull CommonHandler commonHandler) { + this.commonHandler = commonHandler; } /** @@ -45,7 +44,7 @@ public KeyInputListener(final @NotNull CommunityRadarMod communityRadarMod) { */ @SubscribeEvent public void onKeyInput(final InputEvent.KeyInputEvent event) { - if (!GeneralUtils.isOnGrieferGames()) { + if (!commonHandler.isOnGrieferGames()) { return; } @@ -54,6 +53,6 @@ public void onKeyInput(final InputEvent.KeyInputEvent event) { return; } - Utils.updatePrefixes(communityRadarMod, communityRadarMod.getListManager().getExistingPrefixes()); + Utils.updatePrefixes(commonHandler, commonHandler.getListManager().getExistingPrefixes()); } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java index 97a536f..4a66da4 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/PlayerNameFormatListener.java @@ -15,8 +15,7 @@ */ package io.github.communityradargg.forgemod.event; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import io.github.communityradargg.forgemod.util.GeneralUtils; +import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Utils; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -26,15 +25,15 @@ * A class containing a listener for player name formatting. */ public class PlayerNameFormatListener { - private final CommunityRadarMod communityRadarMod; + private final CommonHandler commonHandler; /** * Constructs the class {@link PlayerNameFormatListener}. * - * @param communityRadarMod An instance of the {@link CommunityRadarMod} class. + * @param commonHandler The common handler. */ - public PlayerNameFormatListener(final @NotNull CommunityRadarMod communityRadarMod) { - this.communityRadarMod = communityRadarMod; + public PlayerNameFormatListener(final @NotNull CommonHandler commonHandler) { + this.commonHandler = commonHandler; } /** @@ -44,9 +43,9 @@ public PlayerNameFormatListener(final @NotNull CommunityRadarMod communityRadarM */ @SubscribeEvent public void onPlayerNameFormat(final PlayerEvent.NameFormat event) { - if (!GeneralUtils.isOnGrieferGames()) { + if (!commonHandler.isOnGrieferGames()) { return; } - Utils.updatePlayerNameTag(communityRadarMod, event.entityPlayer, communityRadarMod.getListManager().getExistingPrefixes()); + Utils.updatePlayerNameTag(commonHandler, event.entityPlayer, commonHandler.getListManager().getExistingPrefixes()); } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java deleted file mode 100644 index aa044f1..0000000 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarList.java +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Copyright 2024 - present CommunityRadarGG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.github.communityradargg.forgemod.radarlistmanager; - -import com.google.gson.JsonIOException; -import com.google.gson.JsonSyntaxException; -import com.google.gson.annotations.SerializedName; -import com.google.gson.reflect.TypeToken; -import io.github.communityradargg.forgemod.CommunityRadarMod; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.jetbrains.annotations.NotNull; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URL; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.UUID; - -/** - * A class representing a radar list. - */ -public class RadarList { - private static final Logger LOGGER = LogManager.getLogger(RadarList.class); - private final transient CommunityRadarMod communityRadarMod; - @SerializedName("VERSION") - @SuppressWarnings("unused") // needed in future - private final int version = 1; - @SerializedName("namespace") - private final String namespace; - @SerializedName("playerMap") - private final Map playerMap; - @SerializedName("visibility") - private final RadarListVisibility visibility; - @SerializedName("prefix") - private String prefix; - private transient String url; - - /** - * Constructs a {@link RadarList}. - * - * @param communityRadarMod The mod main class instance. - * @param namespace The namespace for the list. - * @param prefix The prefix for the list. - * @param url The url for the list. - * @param visibility The visibility of the list. - */ - public RadarList(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull String namespace, final @NotNull String prefix, final @NotNull String url, final @NotNull RadarListVisibility visibility) { - this.communityRadarMod = communityRadarMod; - this.namespace = namespace; - this.prefix = prefix; - this.visibility = visibility; - this.playerMap = new HashMap<>(); - this.url = url; - load(); - } - - /** - * Checks, whether a given uuid is in the list. - * - * @param uuid The uuid to check. - * @return Returns, whether the given uuid is in the list. - */ - public boolean isInList(final @NotNull UUID uuid) { - return playerMap.get(uuid) != null; - } - - /** - * Gets a radar list entry by a given uuid. - * - * @param uuid The uuid to get the entry for. - * @return Returns an optional with the found entry. - */ - public @NotNull Optional getRadarListEntry(final @NotNull UUID uuid) { - return Optional.ofNullable(playerMap.get(uuid)); - } - - /** - * Gets the namespace of the list. - * - * @return Returns the namespace. - */ - public @NotNull String getNamespace() { - return namespace; - } - - /** - * Gets the prefix of the list. - * - * @return Returns the prefix. - */ - public @NotNull String getPrefix() { - return prefix; - } - - /** - * Sets the prefix of the list. - * - * @param prefix The prefix to set. - */ - public void setPrefix(final @NotNull String prefix) { - this.prefix = prefix; - } - - /** - * Gets the visibility of the list. - * - * @return Returns the visibility. - */ - public @NotNull RadarListVisibility getRadarListVisibility() { - return visibility; - } - - /** - * Gets the url of the list. - * - * @return Returns the url. - */ - public @NotNull String getUrl() { - return url; - } - - /** - * Sets the url of the list. - * - * @param url The url to set. - */ - public void setUrl(final @NotNull String url) { - this.url = url; - } - - /** - * Gets the player map of the list. - * - * @return Returns the player map. - */ - public @NotNull Map getPlayerMap() { - return playerMap; - } - - /** - * Adds a radar list entry to the list if it is private. - * - * @param radarListEntry The entry to add. - */ - public void addRadarListEntry(final @NotNull RadarListEntry radarListEntry) { - if (visibility == RadarListVisibility.PRIVATE) { - playerMap.put(radarListEntry.uuid(), radarListEntry); - saveList(); - } - } - - /** - * Loads a radar list entry. - * - * @param radarListEntry The entry to load. - */ - private void loadRadarListEntry(final @NotNull RadarListEntry radarListEntry) { - playerMap.put(radarListEntry.uuid(), radarListEntry); - } - - /** - * Saves a list to the disk if it is private. - */ - public void saveList() { - if (visibility == RadarListVisibility.PRIVATE) { - communityRadarMod.getListManager().saveRadarList(this); - } - } - - /** - * Loads a public list. - */ - private void loadPublicList() { - try (final BufferedReader reader = new BufferedReader(new InputStreamReader(new URL(this.url).openStream()))) { - final List players = RadarListManager.GSON - .fromJson(reader, new TypeToken>() {}.getType()); - players.forEach(this::loadRadarListEntry); - } catch (final IOException | JsonIOException | JsonSyntaxException e) { - LOGGER.error("Could not load public list", e); - } - } - - /** - * Validates the loaded list. - * - * @return Returns, whether the list is valid or not. - */ - public boolean validateList() { - return !(namespace == null || url == null || playerMap == null || visibility == null || prefix == null); - } - - /** - * Loads a list if it is public. - */ - public void load() { - if (visibility == RadarListVisibility.PUBLIC) { - loadPublicList(); - } - } -} diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java index 50c3f2e..e836ba0 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java @@ -17,7 +17,6 @@ import com.google.gson.Gson; import com.google.gson.JsonObject; -import io.github.communityradargg.forgemod.CommunityRadarMod; import net.minecraft.client.Minecraft; import net.minecraft.client.network.NetworkPlayerInfo; import net.minecraft.entity.player.EntityPlayer; @@ -52,11 +51,11 @@ public class Utils { /** * Tries to get the uuid to the player name from the world. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param playerName The player name to get the corresponding uuid. * @return Returns a CompletableFuture with an optional with the player uuid. */ - public static @NotNull CompletableFuture> getUUID(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull String playerName) { + public static @NotNull CompletableFuture> getUUID(final @NotNull CommonHandler commonHandler, final @NotNull String playerName) { // user has to be in a world if (Minecraft.getMinecraft().theWorld == null) { return CompletableFuture.completedFuture(Optional.empty()); @@ -80,17 +79,17 @@ public class Utils { } // If no player with same name is in the world, try fetching the UUID from the Mojang-API. - return requestUuidForName(communityRadarMod, playerName); + return requestUuidForName(commonHandler, playerName); } /** * Requests an uuid to a player name, from the Mojang API. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param playerName The player name to get the uuid for. * @return Returns a CompletableFuture with an optional with the requested uuid, it will be empty if an error occurred on requesting. */ - private static @NotNull CompletableFuture> requestUuidForName(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull String playerName) { + private static @NotNull CompletableFuture> requestUuidForName(final @NotNull CommonHandler commonHandler, final @NotNull String playerName) { final String urlText = MOJANG_API_NAME_TO_UUID + playerName; return CompletableFuture.supplyAsync(() -> { HttpURLConnection connection = null; @@ -100,7 +99,7 @@ public class Utils { connection.setConnectTimeout(3000); connection.setReadTimeout(3000); connection.setRequestMethod("GET"); - connection.setRequestProperty("User-Agent", CommunityRadarMod.MOD_ID + "/" + communityRadarMod.getVersion()); + connection.setRequestProperty("User-Agent", CommonHandler.MOD_ID + "/" + commonHandler.getVersionBridge().getVersion()); if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { LOGGER.warn("Requesting data from '{}' resulted in following status code: {}", urlText, connection.getResponseCode()); @@ -161,24 +160,24 @@ public class Utils { /** * Updates a player display name and name tag by its uuid. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param uuid The uuid to update the corresponding player. */ - public static void updatePlayerByUuid(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull UUID uuid, final @NotNull Set oldPrefixes) { - getEntityPlayerByUuid(uuid).ifPresent(player -> updatePlayerNameTag(communityRadarMod, player, oldPrefixes)); - getNetworkPlayerInfoByUuid(uuid).ifPresent(networkPlayerInfo -> updatePlayerPrefix(communityRadarMod, networkPlayerInfo, oldPrefixes)); + public static void updatePlayerByUuid(final @NotNull CommonHandler commonHandler, final @NotNull UUID uuid, final @NotNull Set oldPrefixes) { + getEntityPlayerByUuid(uuid).ifPresent(player -> updatePlayerNameTag(commonHandler, player, oldPrefixes)); + getNetworkPlayerInfoByUuid(uuid).ifPresent(networkPlayerInfo -> updatePlayerPrefix(commonHandler, networkPlayerInfo, oldPrefixes)); } /** * Handles updating the name tag of a player entity. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param player The player entity to update the name tag. * @param oldPrefixes The old prefixes that need to be removed before adding the new one. */ - public static void updatePlayerNameTag(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull EntityPlayer player, final @NotNull Set oldPrefixes) { + public static void updatePlayerNameTag(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull Set oldPrefixes) { player.getPrefixes().removeIf(prefix -> oldPrefixes.stream().anyMatch(oldPrefix -> new ChatComponentText(oldPrefix.replace("&", "§") + " ").getUnformattedText().equals(prefix.getUnformattedText()))); - final String addonPrefix = communityRadarMod.getListManager() + final String addonPrefix = commonHandler.getListManager() .getPrefix(player.getGameProfile().getId()) .replace("&", "§"); @@ -190,22 +189,22 @@ public static void updatePlayerNameTag(final @NotNull CommunityRadarMod communit /** * Handles updating the player prefixes in the display name. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param oldPrefixes The old prefixes that need to be removed before adding the new one. */ - public static void updatePrefixes(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull Set oldPrefixes) { + public static void updatePrefixes(final @NotNull CommonHandler commonHandler, final @NotNull Set oldPrefixes) { Minecraft.getMinecraft().thePlayer.sendQueue.getPlayerInfoMap() - .forEach(player -> updatePlayerPrefix(communityRadarMod, player, oldPrefixes)); + .forEach(player -> updatePlayerPrefix(commonHandler, player, oldPrefixes)); } /** * Handles updating the player prefix in the display name of a single player. * - * @param communityRadarMod The mod main class instance. + * @param commonHandler The common handler. * @param player The player to update. * @param oldPrefixes The old prefixes that need to be removed before adding the new one. */ - private static void updatePlayerPrefix(final @NotNull CommunityRadarMod communityRadarMod, final @NotNull NetworkPlayerInfo player, final @NotNull Set oldPrefixes) { + private static void updatePlayerPrefix(final @NotNull CommonHandler commonHandler, final @NotNull NetworkPlayerInfo player, final @NotNull Set oldPrefixes) { if (player.getGameProfile().getId() == null || player.getDisplayName() == null) { return; } @@ -219,7 +218,7 @@ private static void updatePlayerPrefix(final @NotNull CommunityRadarMod communit newDisplayName = displayName.getSiblings().get(displayName.getSiblings().size() - 1); } - final String addonPrefix = communityRadarMod.getListManager() + final String addonPrefix = commonHandler.getListManager() .getPrefix(player.getGameProfile().getId()) .replace("&", "§"); if (!addonPrefix.isEmpty()) { From 2ef7ff2e2fd108fef97c25261db4a1e613e38acd Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 00:13:07 +0200 Subject: [PATCH 07/29] Do not expose the VersionBridge instance --- .../communityradargg/forgemod/util/CommonHandler.java | 8 ++++---- .../communityradargg/forgemod/util/VersionBridge.java | 3 +++ .../communityradargg/forgemod/command/HelpSubcommand.java | 2 +- .../io/github/communityradargg/forgemod/util/Utils.java | 2 +- .../communityradargg/forgemod/util/VersionBridgeImpl.java | 7 ++++++- .../communityradargg/forgemod/command/HelpSubcommand.java | 2 +- .../io/github/communityradargg/forgemod/util/Utils.java | 2 +- .../communityradargg/forgemod/util/VersionBridgeImpl.java | 7 ++++++- 8 files changed, 23 insertions(+), 10 deletions(-) diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java index 92a4612..4b99211 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java @@ -119,12 +119,12 @@ public void setOnGrieferGames(final boolean isLocal, final @Nullable SocketAddre } /** - * Gets the version bridge. + * Gets the mod version. * - * @return Returns the version bridge. + * @return Returns the mod version. */ - public VersionBridge getVersionBridge() { - return versionBridge; + public @NotNull String getVersion() { + return versionBridge.getVersion(); } /** diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java index 7348231..9be0286 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java @@ -1,5 +1,8 @@ package io.github.communityradargg.forgemod.util; +import org.jetbrains.annotations.NotNull; + public interface VersionBridge { String getVersion(); + @NotNull String getVersion(); } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java index b61b285..112147e 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java @@ -42,7 +42,7 @@ public HelpSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull @Override public void run() { player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.HELP) - .replace("{code_version}", commonHandler.getVersionBridge().getVersion()) + .replace("{code_version}", commonHandler.getVersion()) .excludePrefix() .build().toChatComponentText()); } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java index ddf586e..5ef3936 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java @@ -105,7 +105,7 @@ public class Utils { connection.setConnectTimeout(3000); connection.setReadTimeout(3000); connection.setRequestMethod("GET"); - connection.setRequestProperty("User-Agent", CommonHandler.MOD_ID + "/" + commonHandler.getVersionBridge().getVersion()); + connection.setRequestProperty("User-Agent", CommonHandler.MOD_ID + "/" + commonHandler.getVersion()); if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { LOGGER.warn("Requesting data from '{}' resulted in following status code: {}", urlText, connection.getResponseCode()); diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index ff6f9b4..24661f7 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -2,10 +2,15 @@ import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.ModContainer; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.NotNull; public class VersionBridgeImpl implements VersionBridge { + private static final Logger LOGGER = LogManager.getLogger(VersionBridgeImpl.class); + @Override - public String getVersion() { + public @NotNull String getVersion() { final ModContainer modContainer = Loader.instance().getIndexedModList().get(CommonHandler.MOD_ID); if (modContainer == null) { return "UNKNOWN"; diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java index ad349fa..382102c 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java @@ -42,7 +42,7 @@ public HelpSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull @Override public void run() { player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.HELP) - .replace("{code_version}", commonHandler.getVersionBridge().getVersion()) + .replace("{code_version}", commonHandler.getVersion()) .excludePrefix() .build().toChatComponentText()); } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java index e836ba0..d82e6d6 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java @@ -99,7 +99,7 @@ public class Utils { connection.setConnectTimeout(3000); connection.setReadTimeout(3000); connection.setRequestMethod("GET"); - connection.setRequestProperty("User-Agent", CommonHandler.MOD_ID + "/" + commonHandler.getVersionBridge().getVersion()); + connection.setRequestProperty("User-Agent", CommonHandler.MOD_ID + "/" + commonHandler.getVersion()); if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { LOGGER.warn("Requesting data from '{}' resulted in following status code: {}", urlText, connection.getResponseCode()); diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index ff6f9b4..24661f7 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -2,10 +2,15 @@ import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.ModContainer; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.jetbrains.annotations.NotNull; public class VersionBridgeImpl implements VersionBridge { + private static final Logger LOGGER = LogManager.getLogger(VersionBridgeImpl.class); + @Override - public String getVersion() { + public @NotNull String getVersion() { final ModContainer modContainer = Loader.instance().getIndexedModList().get(CommonHandler.MOD_ID); if (modContainer == null) { return "UNKNOWN"; From c9088f1015d6372591092ee931bbea86bbd54a3e Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 00:15:27 +0200 Subject: [PATCH 08/29] Add CommonHandler#addMessageToChat to the common module --- .../forgemod/util/CommonHandler.java | 9 +++++++++ .../forgemod/util/VersionBridge.java | 3 ++- .../forgemod/CommunityRadarMod.java | 13 ------------- .../forgemod/util/VersionBridgeImpl.java | 12 ++++++++++++ .../forgemod/CommunityRadarMod.java | 13 ------------- .../forgemod/util/VersionBridgeImpl.java | 12 ++++++++++++ 6 files changed, 35 insertions(+), 27 deletions(-) diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java index 4b99211..0980603 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java @@ -127,6 +127,15 @@ public void setOnGrieferGames(final boolean isLocal, final @Nullable SocketAddre return versionBridge.getVersion(); } + /** + * Adds a chat message to the player chat. + * + * @param message The message. + */ + public void addMessageToChat(final @NotNull String message) { + versionBridge.addMessageToChat(message); + } + /** * Gets the list manager. * diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java index 9be0286..d1af0aa 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java @@ -3,6 +3,7 @@ import org.jetbrains.annotations.NotNull; public interface VersionBridge { - String getVersion(); @NotNull String getVersion(); + + void addMessageToChat(final @NotNull String message); } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java index f237241..46dbca8 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java @@ -22,8 +22,6 @@ import io.github.communityradargg.forgemod.event.PlayerNameFormatListener; import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.VersionBridgeImpl; -import net.minecraft.client.Minecraft; -import net.minecraft.util.text.TextComponentString; import net.minecraftforge.client.ClientCommandHandler; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod; @@ -31,7 +29,6 @@ import net.minecraftforge.fml.common.event.FMLInitializationEvent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.jetbrains.annotations.NotNull; /** * This class represents the main class of the mod. @@ -71,14 +68,4 @@ private void registerEvents() { private void registerCommands() { ClientCommandHandler.instance.registerCommand(new RadarCommand(commonHandler)); } - - @Deprecated - public void sendMessage(final @NotNull String message) { - if (Minecraft.getMinecraft().player == null) { - LOGGER.warn("Could not add message to chat. Player is null. The message is following: {}", message); - return; - } - - Minecraft.getMinecraft().player.sendMessage(new TextComponentString(message)); - } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index 24661f7..666232c 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -1,5 +1,7 @@ package io.github.communityradargg.forgemod.util; +import net.minecraft.client.Minecraft; +import net.minecraft.util.text.TextComponentString; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.ModContainer; import org.apache.logging.log4j.LogManager; @@ -18,4 +20,14 @@ public class VersionBridgeImpl implements VersionBridge { return modContainer.getVersion(); } + + @Override + public void addMessageToChat(final @NotNull String message) { + if (Minecraft.getMinecraft().player == null) { + LOGGER.warn("Could not add message to chat. Player is null. The message is following: {}", message); + return; + } + + Minecraft.getMinecraft().player.sendMessage(new TextComponentString(message)); + } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java index 8b8aa9f..1c91723 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java @@ -22,8 +22,6 @@ import io.github.communityradargg.forgemod.event.PlayerNameFormatListener; import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.VersionBridgeImpl; -import net.minecraft.client.Minecraft; -import net.minecraft.util.ChatComponentText; import net.minecraftforge.client.ClientCommandHandler; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod; @@ -31,7 +29,6 @@ import net.minecraftforge.fml.common.event.FMLInitializationEvent; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.jetbrains.annotations.NotNull; /** * This class represents the main class of the mod. @@ -71,14 +68,4 @@ private void registerEvents() { private void registerCommands() { ClientCommandHandler.instance.registerCommand(new RadarCommand(commonHandler)); } - - @Deprecated - public void sendMessage(final @NotNull String message) { - if (Minecraft.getMinecraft().thePlayer == null) { - LOGGER.warn("Could not add message to chat. Player is null. The message is following: {}", message); - return; - } - - Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(message)); - } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index 24661f7..59abfc3 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -1,5 +1,7 @@ package io.github.communityradargg.forgemod.util; +import net.minecraft.client.Minecraft; +import net.minecraft.util.ChatComponentText; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.ModContainer; import org.apache.logging.log4j.LogManager; @@ -18,4 +20,14 @@ public class VersionBridgeImpl implements VersionBridge { return modContainer.getVersion(); } + + @Override + public void addMessageToChat(final @NotNull String message) { + if (Minecraft.getMinecraft().thePlayer == null) { + LOGGER.warn("Could not add message to chat. Player is null. The message is following: {}", message); + return; + } + + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(message)); + } } From 2d2270597a9e01c76baff3d9bc52f16b2ba05d3c Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 00:22:49 +0200 Subject: [PATCH 09/29] Rename Radarmessage variables and parameter names from text to message and messagePart --- .../forgemod/util/RadarMessage.java | 40 +++++++++---------- .../forgemod/util/RadarMessage.java | 40 +++++++++---------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java index 32b5c13..07818cf 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java @@ -22,65 +22,65 @@ * A class representing a message that can be shown to a player. */ public class RadarMessage { - private final String text; + private final String message; /** * Constructs a {@link RadarMessage}. * - * @param text The text for the message. + * @param message The message. * @param includePrefix Whether a prefix should be included in the message. */ - private RadarMessage(final @NotNull String text, final boolean includePrefix) { - this.text = (includePrefix ? Messages.PREFIX : "") + text; + private RadarMessage(final @NotNull String message, final boolean includePrefix) { + this.message = (includePrefix ? Messages.PREFIX : "") + message; } /** * Converts this class instance to a {@link TextComponentString}. * - * @return Returns the text converted to a {@link TextComponentString}. + * @return Returns the message converted to a {@link TextComponentString}. */ public @NotNull TextComponentString toChatComponentText() { - return new TextComponentString(this.text); + return new TextComponentString(message); } /** * A class that serves as a builder for the class {@link RadarMessage}. */ public static class RadarMessageBuilder { - private String text; + private String message; private boolean includePrefix; /** * Constructs a {@link RadarMessageBuilder}. * - * @param text The text for the builder. + * @param message The message for the builder. */ - public RadarMessageBuilder(final @NotNull String text) { - this.text = text; + public RadarMessageBuilder(final @NotNull String message) { + this.message = message; this.includePrefix = true; } /** - * Replaces old text with a new one in the text stored in this builder. + * Replaces an old message part with a new one in the message stored in this builder. * - * @param oldText The old text to replace. - * @param newText The replacement text. + * @param oldMessagePart The old message part. + * @param newMessagePart The new message part. * @return Returns the builder after replacing the text. */ - public @NotNull RadarMessageBuilder replace(final @NotNull String oldText, final @NotNull String newText) { - this.text = this.text.replace(oldText, newText); + public @NotNull RadarMessageBuilder replace(final @NotNull String oldMessagePart, final @NotNull String newMessagePart) { + this.message = this.message.replace(oldMessagePart, newMessagePart); return this; } /** * Replaces old text with a new one in the text stored in this builder by considering color codes. * - * @param oldText The old text to replace. - * @param newText The replacement text. + * @param oldMessagePart The old message part. + * @param newMessagePart The new message part. * @return Returns the builder after replacing the text and color codes. */ - public @NotNull RadarMessageBuilder replaceWithColorCodes(final @NotNull String oldText, final @NotNull String newText) { - this.text = this.text.replace(oldText, newText.replace("&", "§")); + public @NotNull RadarMessageBuilder replaceWithColorCodes(final @NotNull String oldMessagePart, final @NotNull String newMessagePart) { + this.message = this.message.replace(oldMessagePart, newMessagePart.replace("&", "§")); return this; } @@ -100,7 +100,7 @@ public RadarMessageBuilder(final @NotNull String text) { * @return Returns the build {@link RadarMessage}. */ public @NotNull RadarMessage build() { - return new RadarMessage(text, includePrefix); + return new RadarMessage(message, includePrefix); } } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java index de77a08..f17c5c4 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java @@ -22,65 +22,65 @@ * A class representing a message that can be shown to a player. */ public class RadarMessage { - private final String text; + private final String message; /** * Constructs a {@link RadarMessage}. * - * @param text The text for the message. + * @param message The message. * @param includePrefix Whether a prefix should be included in the message. */ - private RadarMessage(final @NotNull String text, final boolean includePrefix) { - this.text = (includePrefix ? Messages.PREFIX : "") + text; + private RadarMessage(final @NotNull String message, final boolean includePrefix) { + this.message = (includePrefix ? Messages.PREFIX : "") + message; } /** * Converts this class instance to a {@link ChatComponentText}. * - * @return Returns the text converted to a {@link ChatComponentText}. + * @return Returns the message converted to a {@link ChatComponentText}. */ public @NotNull ChatComponentText toChatComponentText() { - return new ChatComponentText(this.text); + return new ChatComponentText(message); } /** * A class that serves as a builder for the class {@link RadarMessage}. */ public static class RadarMessageBuilder { - private String text; + private String message; private boolean includePrefix; /** * Constructs a {@link RadarMessageBuilder}. * - * @param text The text for the builder. + * @param message The message for the builder. */ - public RadarMessageBuilder(final @NotNull String text) { - this.text = text; + public RadarMessageBuilder(final @NotNull String message) { + this.message = message; this.includePrefix = true; } /** - * Replaces old text with a new one in the text stored in this builder. + * Replaces an old message part with a new one in the message stored in this builder. * - * @param oldText The old text to replace. - * @param newText The replacement text. + * @param oldMessagePart The old message part. + * @param newMessagePart The new message part. * @return Returns the builder after replacing the text. */ - public @NotNull RadarMessageBuilder replace(final @NotNull String oldText, final @NotNull String newText) { - this.text = this.text.replace(oldText, newText); + public @NotNull RadarMessageBuilder replace(final @NotNull String oldMessagePart, final @NotNull String newMessagePart) { + this.message = this.message.replace(oldMessagePart, newMessagePart); return this; } /** * Replaces old text with a new one in the text stored in this builder by considering color codes. * - * @param oldText The old text to replace. - * @param newText The replacement text. + * @param oldMessagePart The old message part. + * @param newMessagePart The new message part. * @return Returns the builder after replacing the text and color codes. */ - public @NotNull RadarMessageBuilder replaceWithColorCodes(final @NotNull String oldText, final @NotNull String newText) { - this.text = this.text.replace(oldText, newText.replace("&", "§")); + public @NotNull RadarMessageBuilder replaceWithColorCodes(final @NotNull String oldMessagePart, final @NotNull String newMessagePart) { + this.message = this.message.replace(oldMessagePart, newMessagePart.replace("&", "§")); return this; } @@ -100,7 +100,7 @@ public RadarMessageBuilder(final @NotNull String text) { * @return Returns the build {@link RadarMessage}. */ public @NotNull RadarMessage build() { - return new RadarMessage(text, includePrefix); + return new RadarMessage(message, includePrefix); } } } From 65137bd2deb8e33f12d8a7d244f4d615ae1119ec Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 00:52:19 +0200 Subject: [PATCH 10/29] Use the CommonHandler#addMessageToChat --- .../forgemod/command/CheckSubcommand.java | 49 +++++------ .../forgemod/command/HelpSubcommand.java | 10 +-- .../forgemod/command/ListSubcommand.java | 88 +++++++++---------- .../forgemod/command/ListsSubcommand.java | 14 ++- .../forgemod/command/PlayerSubcommand.java | 76 ++++++++-------- .../forgemod/command/RadarCommand.java | 17 ++-- .../forgemod/util/RadarMessage.java | 9 +- .../forgemod/command/CheckSubcommand.java | 49 +++++------ .../forgemod/command/HelpSubcommand.java | 10 +-- .../forgemod/command/ListSubcommand.java | 88 +++++++++---------- .../forgemod/command/ListsSubcommand.java | 14 ++- .../forgemod/command/PlayerSubcommand.java | 74 +++++++--------- .../forgemod/command/RadarCommand.java | 17 ++-- .../forgemod/util/RadarMessage.java | 9 +- 14 files changed, 232 insertions(+), 292 deletions(-) diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java index cba69ea..a3299dd 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java @@ -24,7 +24,6 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.network.NetHandlerPlayClient; import net.minecraft.client.network.NetworkPlayerInfo; -import net.minecraft.entity.player.EntityPlayer; import org.jetbrains.annotations.NotNull; /** @@ -32,19 +31,16 @@ */ public class CheckSubcommand implements Subcommand { private final CommonHandler commonHandler; - private final EntityPlayer player; private final String[] args; /** * Constructs a {@link CheckSubcommand}. * * @param commonHandler The common handler. - * @param player The player. * @param args The args. */ - public CheckSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull String[] args) { + public CheckSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull String[] args) { this.commonHandler = commonHandler; - this.player = player; this.args = args; } @@ -52,61 +48,58 @@ public CheckSubcommand(final @NotNull CommonHandler commonHandler, final @NotNul public void run() { if (args.length != 2) { // missing arguments - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } if (args[1].equalsIgnoreCase("*")) { // check all argument - handleCheckAllSubcommand(player); + handleCheckAllSubcommand(); return; } - handleCheckPlayerSubcommand(player, args); + handleCheckPlayerSubcommand(args); } /** * Handles the check - player subcommand. * - * @param player The player, which executed the subcommand. * @param args The arguments passed to the main command. */ - private void handleCheckPlayerSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) - .build().toChatComponentText()); + private void handleCheckPlayerSubcommand(final @NotNull String[] args) { + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) + .build().getMessage()); Utils.getUUID(commonHandler, args[1]).thenAccept(checkPlayerOptional -> { if (!checkPlayerOptional.isPresent()) { // player uuid could not be fetched - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) + .build().getMessage()); return; } final Optional entryOptional = commonHandler.getListManager().getRadarListEntry(checkPlayerOptional.get()); if (!entryOptional.isPresent()) { // player uuid is on no list - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) + .build().getMessage()); return; } final RadarListEntry entry = entryOptional.get(); - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FOUND + "\n" + Messages.Check.CHECK_ENTRY) + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.FOUND + "\n" + Messages.Check.CHECK_ENTRY) .replaceWithColorCodes("{prefix}", commonHandler.getListManager().getPrefix(entry.uuid())) .replace("{name}", entry.name()) .replace("{cause}", entry.cause()) .replace("{entryCreationDate}", commonHandler.formatDateTime(entry.entryCreationDate())) .replace("{entryUpdateDate}", commonHandler.formatDateTime(entry.entryUpdateDate())) - .build().toChatComponentText()); + .build().getMessage()); }); } /** * Handles the check - all subcommand. - * - * @param player The player, which executed the subcommand. */ - private void handleCheckAllSubcommand(final @NotNull EntityPlayer player) { + private void handleCheckAllSubcommand() { boolean anyPlayerFound = false; final NetHandlerPlayClient connection = Minecraft.getMinecraft().getConnection(); if (connection != null) { @@ -123,25 +116,25 @@ private void handleCheckAllSubcommand(final @NotNull EntityPlayer player) { } if (!anyPlayerFound) { - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.EVERYONE) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.EVERYONE) + .build().getMessage()); anyPlayerFound = true; } final RadarListEntry entry = listEntryOptional.get(); - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.CHECK_ENTRY) + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.CHECK_ENTRY) .replaceWithColorCodes("{prefix}", commonHandler.getListManager().getPrefix(entry.uuid())) .replace("{name}", entry.name()) .replace("{cause}", entry.cause()) .replace("{entryCreationDate}", commonHandler.formatDateTime(entry.entryCreationDate())) .replace("{entryUpdateDate}", commonHandler.formatDateTime(entry.entryUpdateDate())) - .build().toChatComponentText()); + .build().getMessage()); } } if (!anyPlayerFound) { - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.NOT_FOUND) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.NOT_FOUND) + .build().getMessage()); } } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java index 112147e..669281d 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java @@ -18,7 +18,6 @@ import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; -import net.minecraft.entity.player.EntityPlayer; import org.jetbrains.annotations.NotNull; /** @@ -26,24 +25,21 @@ */ public class HelpSubcommand implements Subcommand { private final CommonHandler commonHandler; - private final EntityPlayer player; /** * Constructs a {@link HelpSubcommand}. * * @param commonHandler The common handler. - * @param player The player. */ - public HelpSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player) { + public HelpSubcommand(final @NotNull CommonHandler commonHandler) { this.commonHandler = commonHandler; - this.player = player; } @Override public void run() { - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.HELP) + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.HELP) .replace("{code_version}", commonHandler.getVersion()) .excludePrefix() - .build().toChatComponentText()); + .build().getMessage()); } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java index 948f243..d289934 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java @@ -26,7 +26,6 @@ import java.util.Optional; import java.util.Set; import java.util.UUID; -import net.minecraft.entity.player.EntityPlayer; import org.jetbrains.annotations.NotNull; /** @@ -34,19 +33,16 @@ */ public class ListSubcommand implements Subcommand { private final CommonHandler commonHandler; - private final EntityPlayer player; private final String[] args; /** * Constructs a {@link ListSubcommand}. * * @param commonHandler The common handler. - * @param player The player. * @param args The args. */ - public ListSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull String[] args) { + public ListSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull String[] args) { this.commonHandler = commonHandler; - this.player = player; this.args = args; } @@ -54,26 +50,26 @@ public ListSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull public void run() { if (args.length < 2) { // missing arguments - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } switch (args[1].toUpperCase(Locale.ENGLISH)) { case "ADD": - handleListAddSubcommand(player, args); + handleListAddSubcommand(args); break; case "PREFIX": - handleListPrefixSubcommand(player, args); + handleListPrefixSubcommand(args); break; case "DELETE": - handleListDeleteSubcommand(player, args); + handleListDeleteSubcommand(args); break; case "SHOW": - handleListShowSubcommand(player, args); + handleListShowSubcommand(args); break; default: - new HelpSubcommand(commonHandler, player).run(); + new HelpSubcommand(commonHandler).run(); break; } } @@ -81,46 +77,44 @@ public void run() { /** * Handles the list - add subcommand. * - * @param player The player, which executed the subcommand. * @param args The arguments passed to the main command. */ - private void handleListAddSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + private void handleListAddSubcommand(final @NotNull String[] args) { if (args.length != 4) { // missing arguments - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } if (commonHandler.getListManager().getRadarList(args[2]).isPresent()) { // list already existing - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) + .build().getMessage()); return; } if (!commonHandler.getListManager().registerPrivateList(args[2], args[3])) { // list could not be registered - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) + .build().getMessage()); return; } - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_SUCCESS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_SUCCESS) + .build().getMessage()); } /** * Handles the list - delete subcommand. * - * @param player The player, which executed the subcommand. * @param args The arguments passed to the main command. */ - private void handleListDeleteSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + private void handleListDeleteSubcommand(final @NotNull String[] args) { if (args.length != 3) { // missing arguments - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } @@ -132,66 +126,64 @@ private void handleListDeleteSubcommand(final @NotNull EntityPlayer player, fina if (!listManager.unregisterList(args[2])) { // list is not existing, list is not private, file cannot be deleted - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_FAILED) + .build().getMessage()); return; } oldUuids.forEach(uuid -> Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes)); - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_SUCCESS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_SUCCESS) + .build().getMessage()); } /** * Handles the list - show subcommand. * - * @param player The player, which executed the subcommand. * @param args The arguments passed to the main command. */ - private void handleListShowSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + private void handleListShowSubcommand(final @NotNull String[] args) { if (args.length != 3) { // missing arguments - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } final Optional listOptional = commonHandler.getListManager().getRadarList(args[2]); if (!listOptional.isPresent()) { // list is not existing - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_FAILED) + .build().getMessage()); return; } final RadarList list = listOptional.get(); if (list.getPlayerMap().isEmpty()) { // list is empty - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_EMPTY) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_EMPTY) + .build().getMessage()); return; } final StringBuilder players = new StringBuilder(); list.getPlayerMap().values().forEach(value -> players.append(value.name()).append(", ")); - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_SUCCESS) + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_SUCCESS) .replace("{list}", list.getNamespace()) .replaceWithColorCodes("{prefix}", listOptional.get().getPrefix()) .replace("{players}", players.substring(0, players.length() - 2)) - .build().toChatComponentText()); + .build().getMessage()); } /** * Handles the list - prefix subcommand. * - * @param player The player, which executed the subcommand. * @param args The arguments passed to the main command. */ - private void handleListPrefixSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + private void handleListPrefixSubcommand(final @NotNull String[] args) { if (args.length != 4) { // missing arguments - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } @@ -199,8 +191,8 @@ private void handleListPrefixSubcommand(final @NotNull EntityPlayer player, fina final Optional listOptional = listManager.getRadarList(args[2]); if (!listOptional.isPresent()) { // list is not existing - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_FAILED) + .build().getMessage()); return; } @@ -210,8 +202,8 @@ private void handleListPrefixSubcommand(final @NotNull EntityPlayer player, fina list.saveList(); list.getPlayerMap().keySet().forEach(uuid -> Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes)); - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_SUCCESS) + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_SUCCESS) .replaceWithColorCodes("{prefix}", args[3]) - .build().toChatComponentText()); + .build().getMessage()); } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java index 88f492b..f922ec8 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java @@ -19,7 +19,6 @@ import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; -import net.minecraft.entity.player.EntityPlayer; import org.jetbrains.annotations.NotNull; /** @@ -27,17 +26,14 @@ */ public class ListsSubcommand implements Subcommand { private final CommonHandler commonHandler; - private final EntityPlayer player; /** * Constructs a {@link ListsSubcommand}. * * @param commonHandler The common handler. - * @param player The player. */ - public ListsSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player) { + public ListsSubcommand(final @NotNull CommonHandler commonHandler) { this.commonHandler = commonHandler; - this.player = player; } @Override @@ -52,13 +48,13 @@ public void run() { if (listsText.length() > 0) { // players on the list - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Lists.FOUND) + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Lists.FOUND) .replace("{lists}", listsText.substring(0, listsText.length() - 2)) - .build().toChatComponentText()); + .build().getMessage()); } else { // list is empty - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Lists.EMPTY) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Lists.EMPTY) + .build().getMessage()); } } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java index d6157d6..2741dce 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java @@ -24,7 +24,6 @@ import java.util.Locale; import java.util.Optional; import java.util.UUID; -import net.minecraft.entity.player.EntityPlayer; import org.jetbrains.annotations.NotNull; /** @@ -32,19 +31,16 @@ */ public class PlayerSubcommand implements Subcommand { private final CommonHandler commonHandler; - private final EntityPlayer player; private final String[] args; /** * Constructs a {@link PlayerSubcommand}. * * @param commonHandler The common handler. - * @param player The player. * @param args The args. */ - public PlayerSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull String[] args) { + public PlayerSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull String[] args) { this.commonHandler = commonHandler; - this.player = player; this.args = args; } @@ -52,20 +48,20 @@ public PlayerSubcommand(final @NotNull CommonHandler commonHandler, final @NotNu public void run() { if (args.length < 2) { // missing arguments - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } switch (args[1].toUpperCase(Locale.ENGLISH)) { case "ADD": - handlePlayerAddSubcommand(player, args); + handlePlayerAddSubcommand(args); break; case "REMOVE": - handlePlayerRemoveSubcommand(player, args); + handlePlayerRemoveSubcommand(args); break; default: - new HelpSubcommand(commonHandler, player).run(); + new HelpSubcommand(commonHandler).run(); break; } } @@ -73,14 +69,13 @@ public void run() { /** * Handles the player - add subcommand. * - * @param player The player, which executed the subcommand. * @param args The arguments passed to the main command. */ - private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + private void handlePlayerAddSubcommand(final @NotNull String[] args) { if (args.length < 5) { // missing arguments - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } @@ -88,26 +83,26 @@ private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final final Optional listOptional = listManager.getRadarList(args[2]); if (!listOptional.isPresent()) { // list not existing - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_FAILED) + .build().getMessage()); return; } - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) + .build().getMessage()); Utils.getUUID(commonHandler, args[3]).thenAccept(uuidOptional -> { if (!uuidOptional.isPresent()) { // player uuid could not be fetched - player.sendMessage(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) + .build().getMessage()); return; } final UUID uuid = uuidOptional.get(); if (listOptional.get().isInList(uuid)) { // player already on list - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_IN_LIST) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_IN_LIST) + .build().getMessage()); return; } @@ -118,13 +113,13 @@ private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final if (!commonHandler.getListManager().addRadarListEntry(args[2], uuid, args[3], notes.substring(0, notes.length() - 1))) { // list is not private - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_FAILED) + .build().getMessage()); return; } - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_SUCCESS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_SUCCESS) + .build().getMessage()); Utils.updatePlayerByUuid(commonHandler, uuid, listManager.getExistingPrefixes()); }); } @@ -132,14 +127,13 @@ private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final /** * Handles the player - remove subcommand. * - * @param player The player, which executed the subcommand. * @param args The arguments passed to the main command. */ - private void handlePlayerRemoveSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + private void handlePlayerRemoveSubcommand(final @NotNull String[] args) { if (args.length != 4) { // missing arguments - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } @@ -147,34 +141,36 @@ private void handlePlayerRemoveSubcommand(final @NotNull EntityPlayer player, fi final Optional listOptional = listManager.getRadarList(args[2]); if (!listOptional.isPresent()) { // list is not existing - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_FAILED) + .build().getMessage()); return; } - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) + .build().getMessage()); + final RadarList list = listOptional.get(); Utils.getUUID(commonHandler, args[3]).thenAccept(uuidOptional -> { if (!uuidOptional.isPresent()) { // player uuid could not be fetched - player.sendMessage(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) + .build().getMessage()); return; } final UUID uuid = uuidOptional.get(); if (!list.isInList(uuid)) { // player uuid not on list - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_NOT_IN_LIST) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_NOT_IN_LIST) + .build().getMessage()); return; } list.getPlayerMap().remove(uuid); Utils.updatePlayerByUuid(commonHandler, uuid, listManager.getExistingPrefixes()); - player.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_SUCCESS) - .build().toChatComponentText()); + + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_SUCCESS) + .build().getMessage()); }); } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java index 77ea539..9c9efe6 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java @@ -71,34 +71,33 @@ public boolean checkPermission(final @NotNull MinecraftServer server, final @Not @Override public void execute(final @NotNull MinecraftServer server, final @NotNull ICommandSender sender, final String @NotNull [] args) { if (!(sender instanceof EntityPlayer)) { - sender.sendMessage(new RadarMessage.RadarMessageBuilder(Messages.NOT_PLAYER) + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.NOT_PLAYER) .build() - .toChatComponentText()); + .getMessage()); return; } - final EntityPlayer player = (EntityPlayer) sender; Subcommand subcommand = null; if (args.length == 0) { - subcommand = new HelpSubcommand(commonHandler, player); + subcommand = new HelpSubcommand(commonHandler); } if (subcommand == null) { switch (args[0].toUpperCase(Locale.ENGLISH)) { case "CHECK": - subcommand = new CheckSubcommand(commonHandler, player, args); + subcommand = new CheckSubcommand(commonHandler, args); break; case "LIST": - subcommand = new ListSubcommand(commonHandler, player, args); + subcommand = new ListSubcommand(commonHandler, args); break; case "PLAYER": - subcommand = new PlayerSubcommand(commonHandler, player, args); + subcommand = new PlayerSubcommand(commonHandler, args); break; case "LISTS": - subcommand = new ListsSubcommand(commonHandler, player); + subcommand = new ListsSubcommand(commonHandler); break; default: - subcommand = new HelpSubcommand(commonHandler, player); + subcommand = new HelpSubcommand(commonHandler); break; } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java index 07818cf..e44e05f 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java @@ -15,7 +15,6 @@ */ package io.github.communityradargg.forgemod.util; -import net.minecraft.util.text.TextComponentString; import org.jetbrains.annotations.NotNull; /** @@ -35,12 +34,12 @@ private RadarMessage(final @NotNull String message, final boolean includePrefix) } /** - * Converts this class instance to a {@link TextComponentString}. + * Gets the message. * - * @return Returns the message converted to a {@link TextComponentString}. + * @return Returns the message. */ - public @NotNull TextComponentString toChatComponentText() { - return new TextComponentString(message); + public @NotNull String getMessage() { + return message; } /** diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java index 1e74fcd..a2dc544 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java @@ -22,7 +22,6 @@ import io.github.communityradargg.forgemod.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.network.NetworkPlayerInfo; -import net.minecraft.entity.player.EntityPlayer; import org.jetbrains.annotations.NotNull; import java.util.Optional; @@ -31,19 +30,16 @@ */ public class CheckSubcommand implements Subcommand { private final CommonHandler commonHandler; - private final EntityPlayer player; private final String[] args; /** * Constructs a {@link CheckSubcommand}. * * @param commonHandler The common handler. - * @param player The player. * @param args The args. */ - public CheckSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull String[] args) { + public CheckSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull String[] args) { this.commonHandler = commonHandler; - this.player = player; this.args = args; } @@ -51,61 +47,58 @@ public CheckSubcommand(final @NotNull CommonHandler commonHandler, final @NotNul public void run() { if (args.length != 2) { // missing arguments - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } if (args[1].equalsIgnoreCase("*")) { // check all argument - handleCheckAllSubcommand(player); + handleCheckAllSubcommand(); return; } - handleCheckPlayerSubcommand(player, args); + handleCheckPlayerSubcommand(args); } /** * Handles the check - player subcommand. * - * @param player The player, which executed the subcommand. * @param args The arguments passed to the main command. */ - private void handleCheckPlayerSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) - .build().toChatComponentText()); + private void handleCheckPlayerSubcommand(final @NotNull String[] args) { + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) + .build().getMessage()); Utils.getUUID(commonHandler, args[1]).thenAccept(checkPlayerOptional -> { if (!checkPlayerOptional.isPresent()) { // player uuid could not be fetched - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) + .build().getMessage()); return; } final Optional entryOptional = commonHandler.getListManager().getRadarListEntry(checkPlayerOptional.get()); if (!entryOptional.isPresent()) { // player uuid is on no list - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) + .build().getMessage()); return; } final RadarListEntry entry = entryOptional.get(); - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.FOUND + "\n" + Messages.Check.CHECK_ENTRY) + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.FOUND + "\n" + Messages.Check.CHECK_ENTRY) .replaceWithColorCodes("{prefix}", commonHandler.getListManager().getPrefix(entry.uuid())) .replace("{name}", entry.name()) .replace("{cause}", entry.cause()) .replace("{entryCreationDate}", commonHandler.formatDateTime(entry.entryCreationDate())) .replace("{entryUpdateDate}", commonHandler.formatDateTime(entry.entryUpdateDate())) - .build().toChatComponentText()); + .build().getMessage()); }); } /** * Handles the check - all subcommand. - * - * @param player The player, which executed the subcommand. */ - private void handleCheckAllSubcommand(final @NotNull EntityPlayer player) { + private void handleCheckAllSubcommand() { boolean anyPlayerFound = false; for (final NetworkPlayerInfo networkPlayer : Minecraft.getMinecraft().getNetHandler().getPlayerInfoMap()) { if (networkPlayer.getGameProfile().getId() == null) { @@ -120,24 +113,24 @@ private void handleCheckAllSubcommand(final @NotNull EntityPlayer player) { } if (!anyPlayerFound) { - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.EVERYONE) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.EVERYONE) + .build().getMessage()); anyPlayerFound = true; } final RadarListEntry entry = listEntryOptional.get(); - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.CHECK_ENTRY) + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.CHECK_ENTRY) .replaceWithColorCodes("{prefix}", commonHandler.getListManager().getPrefix(entry.uuid())) .replace("{name}", entry.name()) .replace("{cause}", entry.cause()) .replace("{entryCreationDate}", commonHandler.formatDateTime(entry.entryCreationDate())) .replace("{entryUpdateDate}", commonHandler.formatDateTime(entry.entryUpdateDate())) - .build().toChatComponentText()); + .build().getMessage()); } if (!anyPlayerFound) { - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Check.NOT_FOUND) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.NOT_FOUND) + .build().getMessage()); } } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java index 382102c..79b0f13 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java @@ -18,7 +18,6 @@ import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; -import net.minecraft.entity.player.EntityPlayer; import org.jetbrains.annotations.NotNull; /** @@ -26,24 +25,21 @@ */ public class HelpSubcommand implements Subcommand { private final CommonHandler commonHandler; - private final EntityPlayer player; /** * Constructs a {@link HelpSubcommand}. * * @param commonHandler The common handler - * @param player The player. */ - public HelpSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player) { + public HelpSubcommand(final @NotNull CommonHandler commonHandler) { this.commonHandler = commonHandler; - this.player = player; } @Override public void run() { - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.HELP) + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.HELP) .replace("{code_version}", commonHandler.getVersion()) .excludePrefix() - .build().toChatComponentText()); + .build().getMessage()); } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java index e766211..57e306a 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java @@ -21,7 +21,6 @@ import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import io.github.communityradargg.forgemod.util.Utils; -import net.minecraft.entity.player.EntityPlayer; import org.jetbrains.annotations.NotNull; import java.util.Collections; import java.util.Locale; @@ -34,19 +33,16 @@ */ public class ListSubcommand implements Subcommand { private final CommonHandler commonHandler; - private final EntityPlayer player; private final String[] args; /** * Constructs a {@link ListSubcommand}. * * @param commonHandler The common handler. - * @param player The player. * @param args The args. */ - public ListSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull String[] args) { + public ListSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull String[] args) { this.commonHandler = commonHandler; - this.player = player; this.args = args; } @@ -54,26 +50,26 @@ public ListSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull public void run() { if (args.length < 2) { // missing arguments - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } switch (args[1].toUpperCase(Locale.ENGLISH)) { case "ADD": - handleListAddSubcommand(player, args); + handleListAddSubcommand(args); break; case "PREFIX": - handleListPrefixSubcommand(player, args); + handleListPrefixSubcommand(args); break; case "DELETE": - handleListDeleteSubcommand(player, args); + handleListDeleteSubcommand(args); break; case "SHOW": - handleListShowSubcommand(player, args); + handleListShowSubcommand(args); break; default: - new HelpSubcommand(commonHandler, player).run(); + new HelpSubcommand(commonHandler).run(); break; } } @@ -81,46 +77,44 @@ public void run() { /** * Handles the list - add subcommand. * - * @param player The player, which executed the subcommand. * @param args The arguments passed to the main command. */ - private void handleListAddSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + private void handleListAddSubcommand(final @NotNull String[] args) { if (args.length != 4) { // missing arguments - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } if (commonHandler.getListManager().getRadarList(args[2]).isPresent()) { // list already existing - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) + .build().getMessage()); return; } if (!commonHandler.getListManager().registerPrivateList(args[2], args[3])) { // list could not be registered - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) + .build().getMessage()); return; } - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_SUCCESS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_SUCCESS) + .build().getMessage()); } /** * Handles the list - delete subcommand. * - * @param player The player, which executed the subcommand. * @param args The arguments passed to the main command. */ - private void handleListDeleteSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + private void handleListDeleteSubcommand(final @NotNull String[] args) { if (args.length != 3) { // missing arguments - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } @@ -132,66 +126,64 @@ private void handleListDeleteSubcommand(final @NotNull EntityPlayer player, fina if (!listManager.unregisterList(args[2])) { // list is not existing, list is not private, file cannot be deleted - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_FAILED) + .build().getMessage()); return; } oldUuids.forEach(uuid -> Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes)); - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_SUCCESS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_SUCCESS) + .build().getMessage()); } /** * Handles the list - show subcommand. * - * @param player The player, which executed the subcommand. * @param args The arguments passed to the main command. */ - private void handleListShowSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + private void handleListShowSubcommand(final @NotNull String[] args) { if (args.length != 3) { // missing arguments - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } final Optional listOptional = commonHandler.getListManager().getRadarList(args[2]); if (!listOptional.isPresent()) { // list is not existing - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_FAILED) + .build().getMessage()); return; } final RadarList list = listOptional.get(); if (list.getPlayerMap().isEmpty()) { // list is empty - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_EMPTY) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_EMPTY) + .build().getMessage()); return; } final StringBuilder players = new StringBuilder(); list.getPlayerMap().values().forEach(value -> players.append(value.name()).append(", ")); - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_SUCCESS) + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_SUCCESS) .replace("{list}", list.getNamespace()) .replaceWithColorCodes("{prefix}", listOptional.get().getPrefix()) .replace("{players}", players.substring(0, players.length() - 2)) - .build().toChatComponentText()); + .build().getMessage()); } /** * Handles the list - prefix subcommand. * - * @param player The player, which executed the subcommand. * @param args The arguments passed to the main command. */ - private void handleListPrefixSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + private void handleListPrefixSubcommand(final @NotNull String[] args) { if (args.length != 4) { // missing arguments - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } @@ -199,8 +191,8 @@ private void handleListPrefixSubcommand(final @NotNull EntityPlayer player, fina final Optional listOptional = listManager.getRadarList(args[2]); if (!listOptional.isPresent()) { // list is not existing - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_FAILED) + .build().getMessage()); return; } @@ -210,8 +202,8 @@ private void handleListPrefixSubcommand(final @NotNull EntityPlayer player, fina list.saveList(); list.getPlayerMap().keySet().forEach(uuid -> Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes)); - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_SUCCESS) + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_SUCCESS) .replaceWithColorCodes("{prefix}", args[3]) - .build().toChatComponentText()); + .build().getMessage()); } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java index cf3d582..f922ec8 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java @@ -19,7 +19,6 @@ import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; -import net.minecraft.entity.player.EntityPlayer; import org.jetbrains.annotations.NotNull; /** @@ -27,17 +26,14 @@ */ public class ListsSubcommand implements Subcommand { private final CommonHandler commonHandler; - private final EntityPlayer player; /** * Constructs a {@link ListsSubcommand}. * * @param commonHandler The common handler. - * @param player The player. */ - public ListsSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player) { + public ListsSubcommand(final @NotNull CommonHandler commonHandler) { this.commonHandler = commonHandler; - this.player = player; } @Override @@ -52,13 +48,13 @@ public void run() { if (listsText.length() > 0) { // players on the list - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Lists.FOUND) + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Lists.FOUND) .replace("{lists}", listsText.substring(0, listsText.length() - 2)) - .build().toChatComponentText()); + .build().getMessage()); } else { // list is empty - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Lists.EMPTY) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Lists.EMPTY) + .build().getMessage()); } } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java index bedb603..5dfeaec 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java @@ -21,7 +21,6 @@ import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; import io.github.communityradargg.forgemod.util.Utils; -import net.minecraft.entity.player.EntityPlayer; import org.jetbrains.annotations.NotNull; import java.util.Locale; import java.util.Optional; @@ -32,19 +31,16 @@ */ public class PlayerSubcommand implements Subcommand { private final CommonHandler commonHandler; - private final EntityPlayer player; private final String[] args; /** * Constructs a {@link PlayerSubcommand}. * * @param commonHandler The common handler. - * @param player The player. * @param args The args. */ - public PlayerSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull String[] args) { + public PlayerSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull String[] args) { this.commonHandler = commonHandler; - this.player = player; this.args = args; } @@ -52,20 +48,20 @@ public PlayerSubcommand(final @NotNull CommonHandler commonHandler, final @NotNu public void run() { if (args.length < 2) { // missing arguments - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } switch (args[1].toUpperCase(Locale.ENGLISH)) { case "ADD": - handlePlayerAddSubcommand(player, args); + handlePlayerAddSubcommand(args); break; case "REMOVE": - handlePlayerRemoveSubcommand(player, args); + handlePlayerRemoveSubcommand(args); break; default: - new HelpSubcommand(commonHandler, player).run(); + new HelpSubcommand(commonHandler).run(); break; } } @@ -73,14 +69,13 @@ public void run() { /** * Handles the player - add subcommand. * - * @param player The player, which executed the subcommand. * @param args The arguments passed to the main command. */ - private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + private void handlePlayerAddSubcommand(final @NotNull String[] args) { if (args.length < 5) { // missing arguments - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } @@ -88,26 +83,26 @@ private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final final Optional listOptional = listManager.getRadarList(args[2]); if (!listOptional.isPresent()) { // list not existing - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_FAILED) + .build().getMessage()); return; } - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) + .build().getMessage()); Utils.getUUID(commonHandler, args[3]).thenAccept(uuidOptional -> { if (!uuidOptional.isPresent()) { // player uuid could not be fetched - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) + .build().getMessage()); return; } final UUID uuid = uuidOptional.get(); if (listOptional.get().isInList(uuid)) { // player already on list - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_IN_LIST) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_IN_LIST) + .build().getMessage()); return; } @@ -118,13 +113,13 @@ private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final if (!commonHandler.getListManager().addRadarListEntry(args[2], uuid, args[3], notes.substring(0, notes.length() - 1))) { // list is not private - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_FAILED) + .build().getMessage()); return; } - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_SUCCESS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_SUCCESS) + .build().getMessage()); Utils.updatePlayerByUuid(commonHandler, uuid, listManager.getExistingPrefixes()); }); } @@ -132,14 +127,13 @@ private void handlePlayerAddSubcommand(final @NotNull EntityPlayer player, final /** * Handles the player - remove subcommand. * - * @param player The player, which executed the subcommand. * @param args The arguments passed to the main command. */ - private void handlePlayerRemoveSubcommand(final @NotNull EntityPlayer player, final @NotNull String[] args) { + private void handlePlayerRemoveSubcommand(final @NotNull String[] args) { if (args.length != 4) { // missing arguments - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) + .build().getMessage()); return; } @@ -147,34 +141,34 @@ private void handlePlayerRemoveSubcommand(final @NotNull EntityPlayer player, fi final Optional listOptional = listManager.getRadarList(args[2]); if (!listOptional.isPresent()) { // list is not existing - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_FAILED) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_FAILED) + .build().getMessage()); return; } - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) + .build().getMessage()); final RadarList list = listOptional.get(); Utils.getUUID(commonHandler, args[3]).thenAccept(uuidOptional -> { if (!uuidOptional.isPresent()) { // player uuid could not be fetched - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) + .build().getMessage()); return; } final UUID uuid = uuidOptional.get(); if (!list.isInList(uuid)) { // player uuid not on list - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_NOT_IN_LIST) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_NOT_IN_LIST) + .build().getMessage()); return; } list.getPlayerMap().remove(uuid); Utils.updatePlayerByUuid(commonHandler, uuid, listManager.getExistingPrefixes()); - player.addChatComponentMessage(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_SUCCESS) - .build().toChatComponentText()); + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_SUCCESS) + .build().getMessage()); }); } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java index 8d34416..bbfc5fb 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java @@ -70,34 +70,33 @@ public boolean canCommandSenderUseCommand(final ICommandSender sender) { @Override public void processCommand(final ICommandSender sender, final String[] args) { if (!(sender instanceof EntityPlayer)) { - sender.addChatMessage(new RadarMessage.RadarMessageBuilder(Messages.NOT_PLAYER) + commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.NOT_PLAYER) .build() - .toChatComponentText()); + .getMessage()); return; } - final EntityPlayer player = (EntityPlayer) sender; Subcommand subcommand = null; if (args.length == 0) { - subcommand = new HelpSubcommand(commonHandler, player); + subcommand = new HelpSubcommand(commonHandler); } if (subcommand == null) { switch (args[0].toUpperCase(Locale.ENGLISH)) { case "CHECK": - subcommand = new CheckSubcommand(commonHandler, player, args); + subcommand = new CheckSubcommand(commonHandler, args); break; case "LIST": - subcommand = new ListSubcommand(commonHandler, player, args); + subcommand = new ListSubcommand(commonHandler, args); break; case "PLAYER": - subcommand = new PlayerSubcommand(commonHandler, player, args); + subcommand = new PlayerSubcommand(commonHandler, args); break; case "LISTS": - subcommand = new ListsSubcommand(commonHandler, player); + subcommand = new ListsSubcommand(commonHandler); break; default: - subcommand = new HelpSubcommand(commonHandler, player); + subcommand = new HelpSubcommand(commonHandler); break; } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java index f17c5c4..e44e05f 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java @@ -15,7 +15,6 @@ */ package io.github.communityradargg.forgemod.util; -import net.minecraft.util.ChatComponentText; import org.jetbrains.annotations.NotNull; /** @@ -35,12 +34,12 @@ private RadarMessage(final @NotNull String message, final boolean includePrefix) } /** - * Converts this class instance to a {@link ChatComponentText}. + * Gets the message. * - * @return Returns the message converted to a {@link ChatComponentText}. + * @return Returns the message. */ - public @NotNull ChatComponentText toChatComponentText() { - return new ChatComponentText(message); + public @NotNull String getMessage() { + return message; } /** From d6b9094385bf8ac7f3f60e0ac5d9ddc6e630a9d6 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 00:58:17 +0200 Subject: [PATCH 11/29] Move RadarMessage, ListsSubcommand and HelpSubcommand to common module --- .../forgemod/command/HelpSubcommand.java | 0 .../forgemod/command/ListsSubcommand.java | 0 .../forgemod/util/RadarMessage.java | 0 .../forgemod/command/HelpSubcommand.java | 45 -------- .../forgemod/command/ListsSubcommand.java | 60 ---------- .../forgemod/util/RadarMessage.java | 105 ------------------ 6 files changed, 210 deletions(-) rename {versions/1.8.9 => common}/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java (100%) rename {versions/1.12.2 => common}/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java (100%) rename {versions/1.12.2 => common}/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java (100%) delete mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java delete mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java delete mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java b/common/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java similarity index 100% rename from versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java rename to common/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java b/common/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java similarity index 100% rename from versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java rename to common/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java b/common/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java similarity index 100% rename from versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java rename to common/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java deleted file mode 100644 index 669281d..0000000 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/HelpSubcommand.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2024 - present CommunityRadarGG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.github.communityradargg.forgemod.command; - -import io.github.communityradargg.forgemod.util.CommonHandler; -import io.github.communityradargg.forgemod.util.Messages; -import io.github.communityradargg.forgemod.util.RadarMessage; -import org.jetbrains.annotations.NotNull; - -/** - * Holds the logic of the help subcommand. - */ -public class HelpSubcommand implements Subcommand { - private final CommonHandler commonHandler; - - /** - * Constructs a {@link HelpSubcommand}. - * - * @param commonHandler The common handler. - */ - public HelpSubcommand(final @NotNull CommonHandler commonHandler) { - this.commonHandler = commonHandler; - } - - @Override - public void run() { - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.HELP) - .replace("{code_version}", commonHandler.getVersion()) - .excludePrefix() - .build().getMessage()); - } -} diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java deleted file mode 100644 index f922ec8..0000000 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2024 - present CommunityRadarGG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.github.communityradargg.forgemod.command; - -import io.github.communityradargg.forgemod.radarlistmanager.RadarListVisibility; -import io.github.communityradargg.forgemod.util.CommonHandler; -import io.github.communityradargg.forgemod.util.Messages; -import io.github.communityradargg.forgemod.util.RadarMessage; -import org.jetbrains.annotations.NotNull; - -/** - * Holds the logic of the lists subcommand. - */ -public class ListsSubcommand implements Subcommand { - private final CommonHandler commonHandler; - - /** - * Constructs a {@link ListsSubcommand}. - * - * @param commonHandler The common handler. - */ - public ListsSubcommand(final @NotNull CommonHandler commonHandler) { - this.commonHandler = commonHandler; - } - - @Override - public void run() { - final StringBuilder listsText = new StringBuilder(); - for (final String namespace : commonHandler.getListManager().getNamespaces()) { - commonHandler.getListManager().getRadarList(namespace) - .ifPresent(radarList -> listsText.append("§e").append(namespace).append(" §7(§c") - .append(radarList.getRadarListVisibility() == RadarListVisibility.PRIVATE ? Messages.Lists.PRIVATE : Messages.Lists.PUBLIC) - .append("§7)").append(", ")); - } - - if (listsText.length() > 0) { - // players on the list - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Lists.FOUND) - .replace("{lists}", listsText.substring(0, listsText.length() - 2)) - .build().getMessage()); - } else { - // list is empty - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Lists.EMPTY) - .build().getMessage()); - } - } -} diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java deleted file mode 100644 index e44e05f..0000000 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/RadarMessage.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright 2024 - present CommunityRadarGG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.github.communityradargg.forgemod.util; - -import org.jetbrains.annotations.NotNull; - -/** - * A class representing a message that can be shown to a player. - */ -public class RadarMessage { - private final String message; - - /** - * Constructs a {@link RadarMessage}. - * - * @param message The message. - * @param includePrefix Whether a prefix should be included in the message. - */ - private RadarMessage(final @NotNull String message, final boolean includePrefix) { - this.message = (includePrefix ? Messages.PREFIX : "") + message; - } - - /** - * Gets the message. - * - * @return Returns the message. - */ - public @NotNull String getMessage() { - return message; - } - - /** - * A class that serves as a builder for the class {@link RadarMessage}. - */ - public static class RadarMessageBuilder { - private String message; - private boolean includePrefix; - - /** - * Constructs a {@link RadarMessageBuilder}. - * - * @param message The message for the builder. - */ - public RadarMessageBuilder(final @NotNull String message) { - this.message = message; - this.includePrefix = true; - } - - /** - * Replaces an old message part with a new one in the message stored in this builder. - * - * @param oldMessagePart The old message part. - * @param newMessagePart The new message part. - * @return Returns the builder after replacing the text. - */ - public @NotNull RadarMessageBuilder replace(final @NotNull String oldMessagePart, final @NotNull String newMessagePart) { - this.message = this.message.replace(oldMessagePart, newMessagePart); - return this; - } - - /** - * Replaces old text with a new one in the text stored in this builder by considering color codes. - * - * @param oldMessagePart The old message part. - * @param newMessagePart The new message part. - * @return Returns the builder after replacing the text and color codes. - */ - public @NotNull RadarMessageBuilder replaceWithColorCodes(final @NotNull String oldMessagePart, final @NotNull String newMessagePart) { - this.message = this.message.replace(oldMessagePart, newMessagePart.replace("&", "§")); - return this; - } - - /** - * Sets the prefix exclude state in the builder. - * - * @return Returns the builder after setting the prefix exclude state. - */ - public @NotNull RadarMessageBuilder excludePrefix() { - this.includePrefix = false; - return this; - } - - /** - * Builds a {@link RadarMessage} out of the builder. - * - * @return Returns the build {@link RadarMessage}. - */ - public @NotNull RadarMessage build() { - return new RadarMessage(message, includePrefix); - } - } -} From 84bdd864960b8a4b43ecc51f763e1812db6ff20f Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 01:39:17 +0200 Subject: [PATCH 12/29] Move Utils#getUUID and Utils#requestUuidForName to CommonHandler --- .../forgemod/util/CommonHandler.java | 92 ++++++++++++++++ .../forgemod/util/VersionBridge.java | 6 ++ .../forgemod/command/CheckSubcommand.java | 3 +- .../forgemod/command/PlayerSubcommand.java | 4 +- .../event/ClientChatReceivedListener.java | 3 +- .../communityradargg/forgemod/util/Utils.java | 102 ------------------ .../forgemod/util/VersionBridgeImpl.java | 24 +++++ .../forgemod/command/CheckSubcommand.java | 3 +- .../forgemod/command/PlayerSubcommand.java | 4 +- .../event/ClientChatReceivedListener.java | 3 +- .../communityradargg/forgemod/util/Utils.java | 97 ----------------- .../forgemod/util/VersionBridgeImpl.java | 24 +++++ 12 files changed, 154 insertions(+), 211 deletions(-) diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java index 0980603..bb817c9 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java @@ -1,16 +1,27 @@ package io.github.communityradargg.forgemod.util; +import com.google.gson.Gson; +import com.google.gson.JsonObject; import io.github.communityradargg.forgemod.list.ListManager; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; import java.net.InetSocketAddress; import java.net.SocketAddress; +import java.net.URL; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.HashMap; import java.util.Locale; +import java.util.Map; import java.util.Optional; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; +import java.util.regex.Pattern; /** * A class for handling many utility and central tasks and holds the version bridge. @@ -18,7 +29,10 @@ public class CommonHandler { public static final String MOD_ID = "communityradar"; private static final Logger LOGGER = LogManager.getLogger(MOD_ID); + private static final String MOJANG_API_NAME_TO_UUID = "https://api.mojang.com/users/profiles/minecraft/"; + private static final Pattern UUID_MOJANG_API_PATTERN = Pattern.compile("(\\w{8})(\\w{4})(\\w{4})(\\w{4})(\\w{12})"); private final DateTimeFormatter readableDateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"); + private final Map UUID_NAME_CACHE = new HashMap<>(); private final VersionBridge versionBridge; private final ListManager listManager; private boolean onGrieferGames = false; @@ -118,6 +132,84 @@ public void setOnGrieferGames(final boolean isLocal, final @Nullable SocketAddre onGrieferGames = false; } + /** + * Tries to get the uuid to the player name from the world. + * + * @param commonHandler The common handler. + * @param playerName The player name to get the corresponding uuid. + * @return Returns a CompletableFuture with an optional with the player uuid. + */ + public @NotNull CompletableFuture> getUuidByPlayerName(final @NotNull CommonHandler commonHandler, final @NotNull String playerName) { + // user has to be in a world + if (versionBridge.isNotInWorld()) { + return CompletableFuture.completedFuture(Optional.empty()); + } + + // If the UUID has been cached, returning from the map. + if (UUID_NAME_CACHE.containsKey(playerName)) { + return CompletableFuture.completedFuture(Optional.of(UUID_NAME_CACHE.get(playerName))); + } + + // Checking if there is a player with same name in the loaded world. If so, returning UUID from EntityPlayer. + final Optional playerUuid = versionBridge.getPlayerUuidByNameFromWorld(playerName); + if (playerUuid.isPresent()) { + UUID_NAME_CACHE.put(playerName, playerUuid.get()); + return CompletableFuture.completedFuture(playerUuid); + } + + if (playerName.startsWith("!") || playerName.startsWith("~")) { + return CompletableFuture.completedFuture(Optional.empty()); + } + + // If no player with same name is in the world, try fetching the UUID from the Mojang-API. + return commonHandler.requestUuidForName(playerName); + } + + /** + * Requests an uuid to a player name, from the Mojang API. + * + * @param playerName The player name to get the uuid for. + * @return Returns a CompletableFuture with an optional with the requested uuid, it will be empty if an error occurred on requesting. + */ + private @NotNull CompletableFuture> requestUuidForName(final @NotNull String playerName) { + final String urlText = MOJANG_API_NAME_TO_UUID + playerName; + return CompletableFuture.supplyAsync(() -> { + HttpURLConnection connection = null; + try { + final URL url = new URL(urlText); + connection = (HttpURLConnection) url.openConnection(); + connection.setConnectTimeout(3000); + connection.setReadTimeout(3000); + connection.setRequestMethod("GET"); + connection.setRequestProperty("User-Agent", CommonHandler.MOD_ID + "/" + versionBridge.getVersion()); + + if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { + LOGGER.warn("Requesting data from '{}' resulted in following status code: {}", urlText, connection.getResponseCode()); + return Optional.empty(); + } + + try (final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) { + final JsonObject json = new Gson().fromJson(reader, JsonObject.class); + if (json == null || !json.has("id") || !json.has("name")) { + connection.disconnect(); + return Optional.empty(); + } + + final UUID uuid = UUID.fromString(UUID_MOJANG_API_PATTERN.matcher(json.get("id").getAsString()).replaceAll("$1-$2-$3-$4-$5")); + UUID_NAME_CACHE.put(playerName, uuid); + connection.disconnect(); + return Optional.of(uuid); + } + } catch (final Exception e) { + if (connection != null) { + connection.disconnect(); + } + LOGGER.error("Trying to request data from '{}' resulted in an exception", urlText, e); + return Optional.empty(); + } + }); + } + /** * Gets the mod version. * diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java index d1af0aa..63a4f5a 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java @@ -1,9 +1,15 @@ package io.github.communityradargg.forgemod.util; import org.jetbrains.annotations.NotNull; +import java.util.Optional; +import java.util.UUID; public interface VersionBridge { @NotNull String getVersion(); void addMessageToChat(final @NotNull String message); + + boolean isNotInWorld(); + + Optional getPlayerUuidByNameFromWorld(final @NotNull String playerName); } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java index a3299dd..db606bb 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java @@ -19,7 +19,6 @@ import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; -import io.github.communityradargg.forgemod.util.Utils; import java.util.Optional; import net.minecraft.client.Minecraft; import net.minecraft.client.network.NetHandlerPlayClient; @@ -69,7 +68,7 @@ public void run() { private void handleCheckPlayerSubcommand(final @NotNull String[] args) { commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) .build().getMessage()); - Utils.getUUID(commonHandler, args[1]).thenAccept(checkPlayerOptional -> { + commonHandler.getUuidByPlayerName(commonHandler, args[1]).thenAccept(checkPlayerOptional -> { if (!checkPlayerOptional.isPresent()) { // player uuid could not be fetched commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java index 2741dce..65e841e 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java @@ -90,7 +90,7 @@ private void handlePlayerAddSubcommand(final @NotNull String[] args) { commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) .build().getMessage()); - Utils.getUUID(commonHandler, args[3]).thenAccept(uuidOptional -> { + commonHandler.getUuidByPlayerName(commonHandler, args[3]).thenAccept(uuidOptional -> { if (!uuidOptional.isPresent()) { // player uuid could not be fetched commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) @@ -150,7 +150,7 @@ private void handlePlayerRemoveSubcommand(final @NotNull String[] args) { .build().getMessage()); final RadarList list = listOptional.get(); - Utils.getUUID(commonHandler, args[3]).thenAccept(uuidOptional -> { + commonHandler.getUuidByPlayerName(commonHandler, args[3]).thenAccept(uuidOptional -> { if (!uuidOptional.isPresent()) { // player uuid could not be fetched commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java index 7ba6356..45b38a3 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java @@ -16,7 +16,6 @@ package io.github.communityradargg.forgemod.event; import io.github.communityradargg.forgemod.util.CommonHandler; -import io.github.communityradargg.forgemod.util.Utils; import net.minecraft.util.text.TextComponentString; import net.minecraftforge.client.event.ClientChatReceivedEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -66,7 +65,7 @@ public void onClientChatReceived(final ClientChatReceivedEvent event) { return; } - Utils.getUUID(commonHandler, playerName).thenAccept(uuid -> { + commonHandler.getUuidByPlayerName(commonHandler, playerName).thenAccept(uuid -> { if (uuid.isPresent() && commonHandler.getListManager().isInList(uuid.get())) { event.setMessage(new TextComponentString(commonHandler.getListManager().getPrefix(uuid.get()).replace("&", "§")) .appendText(" §r") diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java index 5ef3936..097cf4f 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java @@ -15,8 +15,6 @@ */ package io.github.communityradargg.forgemod.util; -import com.google.gson.Gson; -import com.google.gson.JsonObject; import net.minecraft.client.Minecraft; import net.minecraft.client.network.NetHandlerPlayClient; import net.minecraft.client.network.NetworkPlayerInfo; @@ -24,116 +22,16 @@ import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TextComponentString; import net.minecraft.world.World; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.regex.Pattern; /** * A class with some util methods. */ public class Utils { - private static final Logger LOGGER = LogManager.getLogger(Utils.class); - private static final String MOJANG_API_NAME_TO_UUID = "https://api.mojang.com/users/profiles/minecraft/"; - private static final Pattern UUID_MOJANG_API_PATTERN = Pattern.compile("(\\w{8})(\\w{4})(\\w{4})(\\w{4})(\\w{12})"); - private static final Map uuidNameCache = new HashMap<>(); - - /** - * Tries to get the uuid to the player name from the world. - * - * @param commonHandler The common handler - * @param playerName The player name to get the corresponding uuid. - * @return Returns a CompletableFuture with an optional with the player uuid. - */ - public static @NotNull CompletableFuture> getUUID(final @NotNull CommonHandler commonHandler, final @NotNull String playerName) { - // user has to be in a world - if (Minecraft.getMinecraft().world == null) { - return CompletableFuture.completedFuture(Optional.empty()); - } - - // If the UUID has been cached, returning from the map. - if (uuidNameCache.containsKey(playerName)) { - return CompletableFuture.completedFuture(Optional.of(uuidNameCache.get(playerName))); - } - - final NetHandlerPlayClient connection = Minecraft.getMinecraft().getConnection(); - if (connection == null) { - return CompletableFuture.completedFuture(Optional.empty()); - } - - // Checking if there is a player with same name in the loaded world. If so, returning UUID from EntityPlayer. - for (final NetworkPlayerInfo networkPlayerInfo : connection.getPlayerInfoMap()) { - if (networkPlayerInfo.getGameProfile().getName().equalsIgnoreCase(playerName)) { - uuidNameCache.put(playerName, networkPlayerInfo.getGameProfile().getId()); - return CompletableFuture.completedFuture(Optional.of(networkPlayerInfo.getGameProfile().getId())); - } - } - - if (playerName.startsWith("!") || playerName.startsWith("~")) { - return CompletableFuture.completedFuture(Optional.empty()); - } - - // If no player with same name is in the world, try fetching the UUID from the Mojang-API. - return requestUuidForName(commonHandler, playerName); - } - - /** - * Requests an uuid to a player name, from the Mojang API. - * - * @param commonHandler The common handler. - * @param playerName The player name to get the uuid for. - * @return Returns a CompletableFuture with an optional with the requested uuid, it will be empty if an error occurred on requesting. - */ - private static @NotNull CompletableFuture> requestUuidForName(final @NotNull CommonHandler commonHandler, final @NotNull String playerName) { - final String urlText = MOJANG_API_NAME_TO_UUID + playerName; - return CompletableFuture.supplyAsync(() -> { - HttpURLConnection connection = null; - try { - final URL url = new URL(urlText); - connection = (HttpURLConnection) url.openConnection(); - connection.setConnectTimeout(3000); - connection.setReadTimeout(3000); - connection.setRequestMethod("GET"); - connection.setRequestProperty("User-Agent", CommonHandler.MOD_ID + "/" + commonHandler.getVersion()); - - if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { - LOGGER.warn("Requesting data from '{}' resulted in following status code: {}", urlText, connection.getResponseCode()); - return Optional.empty(); - } - - try (final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) { - final JsonObject json = new Gson().fromJson(reader, JsonObject.class); - if (json == null || !json.has("id") || !json.has("name")) { - connection.disconnect(); - return Optional.empty(); - } - - final UUID uuid = UUID.fromString(UUID_MOJANG_API_PATTERN.matcher(json.get("id").getAsString()).replaceAll("$1-$2-$3-$4-$5")); - uuidNameCache.put(playerName, uuid); - connection.disconnect(); - return Optional.of(uuid); - } - } catch (final Exception e) { - if (connection != null) { - connection.disconnect(); - } - LOGGER.error("Trying to request data from '{}' resulted in an exception", urlText, e); - return Optional.empty(); - } - }); - } - /** * Gets a {@link NetworkPlayerInfo} by the uuid of a player. * diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index 666232c..c228677 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -1,12 +1,16 @@ package io.github.communityradargg.forgemod.util; import net.minecraft.client.Minecraft; +import net.minecraft.client.network.NetHandlerPlayClient; +import net.minecraft.client.network.NetworkPlayerInfo; import net.minecraft.util.text.TextComponentString; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.ModContainer; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; +import java.util.Optional; +import java.util.UUID; public class VersionBridgeImpl implements VersionBridge { private static final Logger LOGGER = LogManager.getLogger(VersionBridgeImpl.class); @@ -30,4 +34,24 @@ public void addMessageToChat(final @NotNull String message) { Minecraft.getMinecraft().player.sendMessage(new TextComponentString(message)); } + + @Override + public boolean isNotInWorld() { + return Minecraft.getMinecraft().world == null; + } + + @Override + public Optional getPlayerUuidByNameFromWorld(final @NotNull String playerName) { + final NetHandlerPlayClient connection = Minecraft.getMinecraft().getConnection(); + if (connection == null) { + return Optional.empty(); + } + + for (final NetworkPlayerInfo networkPlayerInfo : connection.getPlayerInfoMap()) { + if (networkPlayerInfo.getGameProfile().getName().equalsIgnoreCase(playerName)) { + return Optional.of(networkPlayerInfo.getGameProfile().getId()); + } + } + return Optional.empty(); + } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java index a2dc544..e8401a9 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java @@ -19,7 +19,6 @@ import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; -import io.github.communityradargg.forgemod.util.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.network.NetworkPlayerInfo; import org.jetbrains.annotations.NotNull; @@ -68,7 +67,7 @@ public void run() { private void handleCheckPlayerSubcommand(final @NotNull String[] args) { commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) .build().getMessage()); - Utils.getUUID(commonHandler, args[1]).thenAccept(checkPlayerOptional -> { + commonHandler.getUuidByPlayerName(commonHandler, args[1]).thenAccept(checkPlayerOptional -> { if (!checkPlayerOptional.isPresent()) { // player uuid could not be fetched commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java index 5dfeaec..14626e5 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java @@ -90,7 +90,7 @@ private void handlePlayerAddSubcommand(final @NotNull String[] args) { commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) .build().getMessage()); - Utils.getUUID(commonHandler, args[3]).thenAccept(uuidOptional -> { + commonHandler.getUuidByPlayerName(commonHandler, args[3]).thenAccept(uuidOptional -> { if (!uuidOptional.isPresent()) { // player uuid could not be fetched commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) @@ -149,7 +149,7 @@ private void handlePlayerRemoveSubcommand(final @NotNull String[] args) { commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) .build().getMessage()); final RadarList list = listOptional.get(); - Utils.getUUID(commonHandler, args[3]).thenAccept(uuidOptional -> { + commonHandler.getUuidByPlayerName(commonHandler, args[3]).thenAccept(uuidOptional -> { if (!uuidOptional.isPresent()) { // player uuid could not be fetched commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java index e126ae2..516128e 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/ClientChatReceivedListener.java @@ -16,7 +16,6 @@ package io.github.communityradargg.forgemod.event; import io.github.communityradargg.forgemod.util.CommonHandler; -import io.github.communityradargg.forgemod.util.Utils; import net.minecraft.util.ChatComponentText; import net.minecraftforge.client.event.ClientChatReceivedEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -66,7 +65,7 @@ public void onClientChatReceived(final ClientChatReceivedEvent event) { return; } - Utils.getUUID(commonHandler, playerName).thenAccept(uuid -> { + commonHandler.getUuidByPlayerName(commonHandler, playerName).thenAccept(uuid -> { if (uuid.isPresent() && commonHandler.getListManager().isInList(uuid.get())) { event.message = new ChatComponentText(commonHandler.getListManager().getPrefix(uuid.get()).replace("&", "§")) .appendText(" §r") diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java index d82e6d6..478c421 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java @@ -15,119 +15,22 @@ */ package io.github.communityradargg.forgemod.util; -import com.google.gson.Gson; -import com.google.gson.JsonObject; import net.minecraft.client.Minecraft; import net.minecraft.client.network.NetworkPlayerInfo; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ChatComponentText; import net.minecraft.util.IChatComponent; import net.minecraft.world.World; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.regex.Pattern; /** * A class with some util methods. */ public class Utils { - private static final Logger LOGGER = LogManager.getLogger(Utils.class); - private static final String MOJANG_API_NAME_TO_UUID = "https://api.mojang.com/users/profiles/minecraft/"; - private static final Pattern UUID_MOJANG_API_PATTERN = Pattern.compile("(\\w{8})(\\w{4})(\\w{4})(\\w{4})(\\w{12})"); - private static final Map uuidNameCache = new HashMap<>(); - - /** - * Tries to get the uuid to the player name from the world. - * - * @param commonHandler The common handler. - * @param playerName The player name to get the corresponding uuid. - * @return Returns a CompletableFuture with an optional with the player uuid. - */ - public static @NotNull CompletableFuture> getUUID(final @NotNull CommonHandler commonHandler, final @NotNull String playerName) { - // user has to be in a world - if (Minecraft.getMinecraft().theWorld == null) { - return CompletableFuture.completedFuture(Optional.empty()); - } - - // If the UUID has been cached, returning from the map. - if (uuidNameCache.containsKey(playerName)) { - return CompletableFuture.completedFuture(Optional.of(uuidNameCache.get(playerName))); - } - - // Checking if there is a player with same name in the loaded world. If so, returning UUID from EntityPlayer. - for (final NetworkPlayerInfo networkPlayerInfo : Minecraft.getMinecraft().getNetHandler().getPlayerInfoMap()) { - if (networkPlayerInfo.getGameProfile().getName().equalsIgnoreCase(playerName)) { - uuidNameCache.put(playerName, networkPlayerInfo.getGameProfile().getId()); - return CompletableFuture.completedFuture(Optional.of(networkPlayerInfo.getGameProfile().getId())); - } - } - - if (playerName.startsWith("!") || playerName.startsWith("~")) { - return CompletableFuture.completedFuture(Optional.empty()); - } - - // If no player with same name is in the world, try fetching the UUID from the Mojang-API. - return requestUuidForName(commonHandler, playerName); - } - - /** - * Requests an uuid to a player name, from the Mojang API. - * - * @param commonHandler The common handler. - * @param playerName The player name to get the uuid for. - * @return Returns a CompletableFuture with an optional with the requested uuid, it will be empty if an error occurred on requesting. - */ - private static @NotNull CompletableFuture> requestUuidForName(final @NotNull CommonHandler commonHandler, final @NotNull String playerName) { - final String urlText = MOJANG_API_NAME_TO_UUID + playerName; - return CompletableFuture.supplyAsync(() -> { - HttpURLConnection connection = null; - try { - final URL url = new URL(urlText); - connection = (HttpURLConnection) url.openConnection(); - connection.setConnectTimeout(3000); - connection.setReadTimeout(3000); - connection.setRequestMethod("GET"); - connection.setRequestProperty("User-Agent", CommonHandler.MOD_ID + "/" + commonHandler.getVersion()); - - if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { - LOGGER.warn("Requesting data from '{}' resulted in following status code: {}", urlText, connection.getResponseCode()); - return Optional.empty(); - } - - try (final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) { - final JsonObject json = new Gson().fromJson(reader, JsonObject.class); - if (json == null || !json.has("id") || !json.has("name")) { - connection.disconnect(); - return Optional.empty(); - } - - final UUID uuid = UUID.fromString(UUID_MOJANG_API_PATTERN.matcher(json.get("id").getAsString()).replaceAll("$1-$2-$3-$4-$5")); - uuidNameCache.put(playerName, uuid); - connection.disconnect(); - return Optional.of(uuid); - } - } catch (final Exception e) { - if (connection != null) { - connection.disconnect(); - } - LOGGER.error("Trying to request data from '{}' resulted in an exception", urlText, e); - return Optional.empty(); - } - }); - } - /** * Gets a {@link NetworkPlayerInfo} by the uuid of a player. * diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index 59abfc3..be395b8 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -1,12 +1,16 @@ package io.github.communityradargg.forgemod.util; import net.minecraft.client.Minecraft; +import net.minecraft.client.network.NetHandlerPlayClient; +import net.minecraft.client.network.NetworkPlayerInfo; import net.minecraft.util.ChatComponentText; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.ModContainer; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; +import java.util.Optional; +import java.util.UUID; public class VersionBridgeImpl implements VersionBridge { private static final Logger LOGGER = LogManager.getLogger(VersionBridgeImpl.class); @@ -30,4 +34,24 @@ public void addMessageToChat(final @NotNull String message) { Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(message)); } + + @Override + public boolean isNotInWorld() { + return Minecraft.getMinecraft().theWorld == null; + } + + @Override + public Optional getPlayerUuidByNameFromWorld(final @NotNull String playerName) { + final NetHandlerPlayClient connection = Minecraft.getMinecraft().getNetHandler(); + if (connection == null) { + return Optional.empty(); + } + + for (final NetworkPlayerInfo networkPlayerInfo : connection.getPlayerInfoMap()) { + if (networkPlayerInfo.getGameProfile().getName().equalsIgnoreCase(playerName)) { + return Optional.of(networkPlayerInfo.getGameProfile().getId()); + } + } + return Optional.empty(); + } } From 2752a4b0d9f21f6e83271d386c5590be49b2d012 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 02:15:09 +0200 Subject: [PATCH 13/29] Introduce a PlayerInfo class with the uuid and player name --- .../forgemod/util/CommonHandler.java | 19 +++++++-- .../forgemod/util/PlayerInfo.java | 42 +++++++++++++++++++ .../forgemod/util/VersionBridge.java | 5 +-- .../forgemod/util/VersionBridgeImpl.java | 23 +++++----- .../forgemod/util/VersionBridgeImpl.java | 23 +++++----- 5 files changed, 83 insertions(+), 29 deletions(-) create mode 100644 common/src/main/java/io/github/communityradargg/forgemod/util/PlayerInfo.java diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java index bb817c9..81f28e2 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java @@ -16,6 +16,7 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.HashMap; +import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Optional; @@ -151,10 +152,11 @@ public void setOnGrieferGames(final boolean isLocal, final @Nullable SocketAddre } // Checking if there is a player with same name in the loaded world. If so, returning UUID from EntityPlayer. - final Optional playerUuid = versionBridge.getPlayerUuidByNameFromWorld(playerName); - if (playerUuid.isPresent()) { - UUID_NAME_CACHE.put(playerName, playerUuid.get()); - return CompletableFuture.completedFuture(playerUuid); + for (final PlayerInfo playerInfo : versionBridge.getWorldPlayers()) { + if (playerInfo.getPlayerName().equalsIgnoreCase(playerName) && playerInfo.getUuid() != null) { + UUID_NAME_CACHE.put(playerName, playerInfo.getUuid()); + return CompletableFuture.completedFuture(Optional.of(playerInfo.getUuid())); + } } if (playerName.startsWith("!") || playerName.startsWith("~")) { @@ -228,6 +230,15 @@ public void addMessageToChat(final @NotNull String message) { versionBridge.addMessageToChat(message); } + /** + * Gets the player info data for all players in the current world. + * + * @return Returns the player info data. + */ + public @NotNull List<@NotNull PlayerInfo> getWorldPlayers() { + return versionBridge.getWorldPlayers(); + } + /** * Gets the list manager. * diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/PlayerInfo.java b/common/src/main/java/io/github/communityradargg/forgemod/util/PlayerInfo.java new file mode 100644 index 0000000..bf8fa0a --- /dev/null +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/PlayerInfo.java @@ -0,0 +1,42 @@ +package io.github.communityradargg.forgemod.util; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import java.util.UUID; + +/** + * Holds the general player info. + */ +public class PlayerInfo { + private final UUID uuid; + private final String playerName; + + /** + * Constructs a {@link PlayerInfo}. + * + * @param uuid The uuid. + * @param playerName The player name. + */ + public PlayerInfo(final @Nullable UUID uuid, final @NotNull String playerName) { + this.uuid = uuid; + this.playerName = playerName; + } + + /** + * Gets the uuid. + * + * @return Returns the uuid. + */ + public @Nullable UUID getUuid() { + return uuid; + } + + /** + * Gets the player name. + * + * @return Returns the player name. + */ + public @NotNull String getPlayerName() { + return playerName; + } +} diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java index 63a4f5a..63a5a25 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java @@ -1,8 +1,7 @@ package io.github.communityradargg.forgemod.util; import org.jetbrains.annotations.NotNull; -import java.util.Optional; -import java.util.UUID; +import java.util.List; public interface VersionBridge { @NotNull String getVersion(); @@ -11,5 +10,5 @@ public interface VersionBridge { boolean isNotInWorld(); - Optional getPlayerUuidByNameFromWorld(final @NotNull String playerName); + @NotNull List<@NotNull PlayerInfo> getWorldPlayers(); } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index c228677..fcb978f 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -1,16 +1,17 @@ package io.github.communityradargg.forgemod.util; +import com.mojang.authlib.GameProfile; import net.minecraft.client.Minecraft; import net.minecraft.client.network.NetHandlerPlayClient; -import net.minecraft.client.network.NetworkPlayerInfo; import net.minecraft.util.text.TextComponentString; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.ModContainer; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; -import java.util.Optional; -import java.util.UUID; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; public class VersionBridgeImpl implements VersionBridge { private static final Logger LOGGER = LogManager.getLogger(VersionBridgeImpl.class); @@ -41,17 +42,17 @@ public boolean isNotInWorld() { } @Override - public Optional getPlayerUuidByNameFromWorld(final @NotNull String playerName) { + public @NotNull List<@NotNull PlayerInfo> getWorldPlayers() { final NetHandlerPlayClient connection = Minecraft.getMinecraft().getConnection(); if (connection == null) { - return Optional.empty(); + return Collections.emptyList(); } - for (final NetworkPlayerInfo networkPlayerInfo : connection.getPlayerInfoMap()) { - if (networkPlayerInfo.getGameProfile().getName().equalsIgnoreCase(playerName)) { - return Optional.of(networkPlayerInfo.getGameProfile().getId()); - } - } - return Optional.empty(); + return connection.getPlayerInfoMap().stream() + .map(networkPlayerInfo -> { + final GameProfile gameProfile = networkPlayerInfo.getGameProfile(); + return new PlayerInfo(gameProfile.getId(), gameProfile.getName()); + }) + .collect(Collectors.toList()); } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index be395b8..5a4b5b6 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -1,16 +1,17 @@ package io.github.communityradargg.forgemod.util; +import com.mojang.authlib.GameProfile; import net.minecraft.client.Minecraft; import net.minecraft.client.network.NetHandlerPlayClient; -import net.minecraft.client.network.NetworkPlayerInfo; import net.minecraft.util.ChatComponentText; import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.ModContainer; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; -import java.util.Optional; -import java.util.UUID; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; public class VersionBridgeImpl implements VersionBridge { private static final Logger LOGGER = LogManager.getLogger(VersionBridgeImpl.class); @@ -41,17 +42,17 @@ public boolean isNotInWorld() { } @Override - public Optional getPlayerUuidByNameFromWorld(final @NotNull String playerName) { + public @NotNull List<@NotNull PlayerInfo> getWorldPlayers() { final NetHandlerPlayClient connection = Minecraft.getMinecraft().getNetHandler(); if (connection == null) { - return Optional.empty(); + return Collections.emptyList(); } - for (final NetworkPlayerInfo networkPlayerInfo : connection.getPlayerInfoMap()) { - if (networkPlayerInfo.getGameProfile().getName().equalsIgnoreCase(playerName)) { - return Optional.of(networkPlayerInfo.getGameProfile().getId()); - } - } - return Optional.empty(); + return connection.getPlayerInfoMap().stream() + .map(networkPlayerInfo -> { + final GameProfile gameProfile = networkPlayerInfo.getGameProfile(); + return new PlayerInfo(gameProfile.getId(), gameProfile.getName()); + }) + .collect(Collectors.toList()); } } From 82cf3af3f7ae85c1eb2a77442f226b9a6137e1ac Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 02:15:33 +0200 Subject: [PATCH 14/29] Move the CheckSubcommand to the common module --- .../forgemod/command/CheckSubcommand.java | 11 +- .../forgemod/command/CheckSubcommand.java | 139 ------------------ 2 files changed, 5 insertions(+), 145 deletions(-) rename {versions/1.8.9 => common}/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java (93%) delete mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java b/common/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java similarity index 93% rename from versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java rename to common/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java index e8401a9..3d3772f 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java @@ -18,11 +18,10 @@ import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; +import io.github.communityradargg.forgemod.util.PlayerInfo; import io.github.communityradargg.forgemod.util.RadarMessage; -import net.minecraft.client.Minecraft; -import net.minecraft.client.network.NetworkPlayerInfo; -import org.jetbrains.annotations.NotNull; import java.util.Optional; +import org.jetbrains.annotations.NotNull; /** * Holds the logic of the check subcommand. @@ -99,13 +98,13 @@ private void handleCheckPlayerSubcommand(final @NotNull String[] args) { */ private void handleCheckAllSubcommand() { boolean anyPlayerFound = false; - for (final NetworkPlayerInfo networkPlayer : Minecraft.getMinecraft().getNetHandler().getPlayerInfoMap()) { - if (networkPlayer.getGameProfile().getId() == null) { + for (final PlayerInfo playerInfo : commonHandler.getWorldPlayers()) { + if (playerInfo.getUuid() == null) { continue; } final Optional listEntryOptional = commonHandler.getListManager() - .getRadarListEntry(networkPlayer.getGameProfile().getId()); + .getRadarListEntry(playerInfo.getUuid()); if (!listEntryOptional.isPresent()) { // player uuid is on no list continue; diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java deleted file mode 100644 index db606bb..0000000 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright 2024 - present CommunityRadarGG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.github.communityradargg.forgemod.command; - -import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; -import io.github.communityradargg.forgemod.util.CommonHandler; -import io.github.communityradargg.forgemod.util.Messages; -import io.github.communityradargg.forgemod.util.RadarMessage; -import java.util.Optional; -import net.minecraft.client.Minecraft; -import net.minecraft.client.network.NetHandlerPlayClient; -import net.minecraft.client.network.NetworkPlayerInfo; -import org.jetbrains.annotations.NotNull; - -/** - * Holds the logic of the check subcommand. - */ -public class CheckSubcommand implements Subcommand { - private final CommonHandler commonHandler; - private final String[] args; - - /** - * Constructs a {@link CheckSubcommand}. - * - * @param commonHandler The common handler. - * @param args The args. - */ - public CheckSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull String[] args) { - this.commonHandler = commonHandler; - this.args = args; - } - - @Override - public void run() { - if (args.length != 2) { - // missing arguments - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().getMessage()); - return; - } - - if (args[1].equalsIgnoreCase("*")) { - // check all argument - handleCheckAllSubcommand(); - return; - } - handleCheckPlayerSubcommand(args); - } - - /** - * Handles the check - player subcommand. - * - * @param args The arguments passed to the main command. - */ - private void handleCheckPlayerSubcommand(final @NotNull String[] args) { - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) - .build().getMessage()); - commonHandler.getUuidByPlayerName(commonHandler, args[1]).thenAccept(checkPlayerOptional -> { - if (!checkPlayerOptional.isPresent()) { - // player uuid could not be fetched - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) - .build().getMessage()); - return; - } - - final Optional entryOptional = commonHandler.getListManager().getRadarListEntry(checkPlayerOptional.get()); - if (!entryOptional.isPresent()) { - // player uuid is on no list - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.FAILED) - .build().getMessage()); - return; - } - - final RadarListEntry entry = entryOptional.get(); - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.FOUND + "\n" + Messages.Check.CHECK_ENTRY) - .replaceWithColorCodes("{prefix}", commonHandler.getListManager().getPrefix(entry.uuid())) - .replace("{name}", entry.name()) - .replace("{cause}", entry.cause()) - .replace("{entryCreationDate}", commonHandler.formatDateTime(entry.entryCreationDate())) - .replace("{entryUpdateDate}", commonHandler.formatDateTime(entry.entryUpdateDate())) - .build().getMessage()); - }); - } - - /** - * Handles the check - all subcommand. - */ - private void handleCheckAllSubcommand() { - boolean anyPlayerFound = false; - final NetHandlerPlayClient connection = Minecraft.getMinecraft().getConnection(); - if (connection != null) { - for (final NetworkPlayerInfo networkPlayer : connection.getPlayerInfoMap()) { - if (networkPlayer.getGameProfile().getId() == null) { - continue; - } - - final Optional listEntryOptional = commonHandler.getListManager() - .getRadarListEntry(networkPlayer.getGameProfile().getId()); - if (!listEntryOptional.isPresent()) { - // player uuid is on no list - continue; - } - - if (!anyPlayerFound) { - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.EVERYONE) - .build().getMessage()); - anyPlayerFound = true; - } - - final RadarListEntry entry = listEntryOptional.get(); - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.CHECK_ENTRY) - .replaceWithColorCodes("{prefix}", commonHandler.getListManager().getPrefix(entry.uuid())) - .replace("{name}", entry.name()) - .replace("{cause}", entry.cause()) - .replace("{entryCreationDate}", commonHandler.formatDateTime(entry.entryCreationDate())) - .replace("{entryUpdateDate}", commonHandler.formatDateTime(entry.entryUpdateDate())) - .build().getMessage()); - } - } - - if (!anyPlayerFound) { - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Check.NOT_FOUND) - .build().getMessage()); - } - } -} From 30025a7bae350b99f0d6d9fadfceafa4a2a934b1 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 02:35:31 +0200 Subject: [PATCH 15/29] Remove unnecessary replace --- .../java/io/github/communityradargg/forgemod/util/Utils.java | 2 +- .../java/io/github/communityradargg/forgemod/util/Utils.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java index 097cf4f..8c4dda0 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java @@ -133,7 +133,7 @@ private static void updatePlayerPrefix(final @NotNull CommonHandler commonHandle .getPrefix(player.getGameProfile().getId()) .replace("&", "§"); if (!addonPrefix.isEmpty()) { - newDisplayName = new TextComponentString(addonPrefix.replace("&", "§") + " ").appendSibling(newDisplayName); + newDisplayName = new TextComponentString(addonPrefix + " ").appendSibling(newDisplayName); } player.setDisplayName(newDisplayName); } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java index 478c421..42bbda7 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java @@ -125,7 +125,7 @@ private static void updatePlayerPrefix(final @NotNull CommonHandler commonHandle .getPrefix(player.getGameProfile().getId()) .replace("&", "§"); if (!addonPrefix.isEmpty()) { - newDisplayName = new ChatComponentText(addonPrefix.replace("&", "§") + " ").appendSibling(newDisplayName); + newDisplayName = new ChatComponentText(addonPrefix + " ").appendSibling(newDisplayName); } player.setDisplayName(newDisplayName); } From 409ce6152a55b36e0d9247949d39a22684f3d7b2 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 03:17:37 +0200 Subject: [PATCH 16/29] Introduce a RootRadarCommand and move ListSubcommand and PlayerSubcommand to common project --- .../forgemod/command/ListSubcommand.java | 7 +- .../forgemod/command/PlayerSubcommand.java | 5 +- .../forgemod/command/RootRadarCommand.java | 59 +++++ .../forgemod/util/CommonHandler.java | 11 + .../forgemod/util/Messages.java | 2 - .../forgemod/util/VersionBridge.java | 4 + .../forgemod/command/PlayerSubcommand.java | 176 --------------- .../forgemod/command/RadarCommand.java | 50 +---- .../forgemod/util/VersionBridgeImpl.java | 7 + .../forgemod/command/ListSubcommand.java | 209 ------------------ .../forgemod/command/RadarCommand.java | 48 +--- .../forgemod/util/VersionBridgeImpl.java | 7 + 12 files changed, 106 insertions(+), 479 deletions(-) rename {versions/1.12.2 => common}/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java (96%) rename {versions/1.8.9 => common}/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java (96%) create mode 100644 common/src/main/java/io/github/communityradargg/forgemod/command/RootRadarCommand.java delete mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java delete mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java b/common/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java similarity index 96% rename from versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java rename to common/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java index d289934..3e3c1da 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java @@ -20,13 +20,12 @@ import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; -import io.github.communityradargg.forgemod.util.Utils; +import org.jetbrains.annotations.NotNull; import java.util.Collections; import java.util.Locale; import java.util.Optional; import java.util.Set; import java.util.UUID; -import org.jetbrains.annotations.NotNull; /** * Holds the logic of the list subcommand. @@ -131,7 +130,7 @@ private void handleListDeleteSubcommand(final @NotNull String[] args) { return; } - oldUuids.forEach(uuid -> Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes)); + oldUuids.forEach(uuid -> commonHandler.updatePlayerByUuid(uuid, oldPrefixes)); commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_SUCCESS) .build().getMessage()); } @@ -200,7 +199,7 @@ private void handleListPrefixSubcommand(final @NotNull String[] args) { final Set oldPrefixes = listManager.getExistingPrefixes(); list.setPrefix(args[3]); list.saveList(); - list.getPlayerMap().keySet().forEach(uuid -> Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes)); + list.getPlayerMap().keySet().forEach(uuid -> commonHandler.updatePlayerByUuid(uuid, oldPrefixes)); commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_SUCCESS) .replaceWithColorCodes("{prefix}", args[3]) diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java b/common/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java similarity index 96% rename from versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java rename to common/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java index 14626e5..becb0d5 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java @@ -20,7 +20,6 @@ import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; -import io.github.communityradargg.forgemod.util.Utils; import org.jetbrains.annotations.NotNull; import java.util.Locale; import java.util.Optional; @@ -120,7 +119,7 @@ private void handlePlayerAddSubcommand(final @NotNull String[] args) { commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_SUCCESS) .build().getMessage()); - Utils.updatePlayerByUuid(commonHandler, uuid, listManager.getExistingPrefixes()); + commonHandler.updatePlayerByUuid(uuid, listManager.getExistingPrefixes()); }); } @@ -166,7 +165,7 @@ private void handlePlayerRemoveSubcommand(final @NotNull String[] args) { } list.getPlayerMap().remove(uuid); - Utils.updatePlayerByUuid(commonHandler, uuid, listManager.getExistingPrefixes()); + commonHandler.updatePlayerByUuid(uuid, listManager.getExistingPrefixes()); commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_SUCCESS) .build().getMessage()); }); diff --git a/common/src/main/java/io/github/communityradargg/forgemod/command/RootRadarCommand.java b/common/src/main/java/io/github/communityradargg/forgemod/command/RootRadarCommand.java new file mode 100644 index 0000000..3c986d8 --- /dev/null +++ b/common/src/main/java/io/github/communityradargg/forgemod/command/RootRadarCommand.java @@ -0,0 +1,59 @@ +package io.github.communityradargg.forgemod.command; + +import io.github.communityradargg.forgemod.util.CommonHandler; +import org.jetbrains.annotations.NotNull; +import java.util.Arrays; +import java.util.List; +import java.util.Locale; + +/** + * The root radar command. + */ +public class RootRadarCommand { + public static final String COMMAND_NAME = "radar"; + public static final List COMMAND_ALIASES = Arrays.asList("communityradar", "scammer", "trustedmm", "mm"); + private final CommonHandler commonHandler; + + /** + * Constructs as {@link RootRadarCommand}. + * + * @param commonHandler The common handler. + */ + public RootRadarCommand(final @NotNull CommonHandler commonHandler) { + this.commonHandler = commonHandler; + } + + /** + * Executes the root command with the given arguments. + * + * @param args The arguments. + */ + public void execute(final String[] args) { + Subcommand subcommand = null; + if (args.length == 0) { + subcommand = new HelpSubcommand(commonHandler); + } + + if (subcommand == null) { + switch (args[0].toUpperCase(Locale.ENGLISH)) { + case "CHECK": + subcommand = new CheckSubcommand(commonHandler, args); + break; + case "LIST": + subcommand = new ListSubcommand(commonHandler, args); + break; + case "PLAYER": + subcommand = new PlayerSubcommand(commonHandler, args); + break; + case "LISTS": + subcommand = new ListsSubcommand(commonHandler); + break; + default: + subcommand = new HelpSubcommand(commonHandler); + break; + } + } + + subcommand.run(); + } +} diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java index 81f28e2..b46143f 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java @@ -20,6 +20,7 @@ import java.util.Locale; import java.util.Map; import java.util.Optional; +import java.util.Set; import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.regex.Pattern; @@ -239,6 +240,16 @@ public void addMessageToChat(final @NotNull String message) { return versionBridge.getWorldPlayers(); } + /** + * Updates a player display name and name tag by its uuid. + * + * @param uuid The uuid to update the corresponding player. + * @param oldPrefixes The old prefixes. + */ + public void updatePlayerByUuid(final @NotNull UUID uuid, final @NotNull Set oldPrefixes) { + versionBridge.updatePlayerByUuid(this, uuid, oldPrefixes); + } + /** * Gets the list manager. * diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/Messages.java b/common/src/main/java/io/github/communityradargg/forgemod/util/Messages.java index f308a60..e394947 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/Messages.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/Messages.java @@ -21,9 +21,7 @@ public class Messages { public static final String PREFIX = "§8[§cCommunityRadar§8]§r "; public static final String MISSING_ARGS = "§cNicht genug Argumente. Gib '/radar' für den korrekten Syntax ein."; - public static final String NOT_PLAYER = "§cDieser Befehl kann nur von Spielern ausgeführt werden."; public static final String INPUT_PROCESSING = "§7Deine Eingabe wird verarbeitet. Dies kann einige Augenblicke benötigen."; - public static final String HELP = "§7§l--------- §eRadar-Hilfe §7§l---------§r\n" + "§e/radar lists §7-> Zeigt die vorhandenen Listen an.\n" + diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java index 63a5a25..6307b39 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java @@ -2,6 +2,8 @@ import org.jetbrains.annotations.NotNull; import java.util.List; +import java.util.Set; +import java.util.UUID; public interface VersionBridge { @NotNull String getVersion(); @@ -11,4 +13,6 @@ public interface VersionBridge { boolean isNotInWorld(); @NotNull List<@NotNull PlayerInfo> getWorldPlayers(); + + void updatePlayerByUuid(final @NotNull CommonHandler commonHandler, final @NotNull UUID uuid, final @NotNull Set<@NotNull String> oldPrefixes); } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java deleted file mode 100644 index 65e841e..0000000 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/PlayerSubcommand.java +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Copyright 2024 - present CommunityRadarGG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.github.communityradargg.forgemod.command; - -import io.github.communityradargg.forgemod.list.ListManager; -import io.github.communityradargg.forgemod.list.RadarList; -import io.github.communityradargg.forgemod.util.CommonHandler; -import io.github.communityradargg.forgemod.util.Messages; -import io.github.communityradargg.forgemod.util.RadarMessage; -import io.github.communityradargg.forgemod.util.Utils; -import java.util.Locale; -import java.util.Optional; -import java.util.UUID; -import org.jetbrains.annotations.NotNull; - -/** - * Holds the logic of the player subcommand. - */ -public class PlayerSubcommand implements Subcommand { - private final CommonHandler commonHandler; - private final String[] args; - - /** - * Constructs a {@link PlayerSubcommand}. - * - * @param commonHandler The common handler. - * @param args The args. - */ - public PlayerSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull String[] args) { - this.commonHandler = commonHandler; - this.args = args; - } - - @Override - public void run() { - if (args.length < 2) { - // missing arguments - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().getMessage()); - return; - } - - switch (args[1].toUpperCase(Locale.ENGLISH)) { - case "ADD": - handlePlayerAddSubcommand(args); - break; - case "REMOVE": - handlePlayerRemoveSubcommand(args); - break; - default: - new HelpSubcommand(commonHandler).run(); - break; - } - } - - /** - * Handles the player - add subcommand. - * - * @param args The arguments passed to the main command. - */ - private void handlePlayerAddSubcommand(final @NotNull String[] args) { - if (args.length < 5) { - // missing arguments - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().getMessage()); - return; - } - - final ListManager listManager = commonHandler.getListManager(); - final Optional listOptional = listManager.getRadarList(args[2]); - if (!listOptional.isPresent()) { - // list not existing - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_FAILED) - .build().getMessage()); - return; - } - - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) - .build().getMessage()); - commonHandler.getUuidByPlayerName(commonHandler, args[3]).thenAccept(uuidOptional -> { - if (!uuidOptional.isPresent()) { - // player uuid could not be fetched - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) - .build().getMessage()); - return; - } - - final UUID uuid = uuidOptional.get(); - if (listOptional.get().isInList(uuid)) { - // player already on list - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_IN_LIST) - .build().getMessage()); - return; - } - - final StringBuilder notes = new StringBuilder(); - for (int i = 4; i < args.length; i++) { - notes.append(args[i]).append(" "); - } - - if (!commonHandler.getListManager().addRadarListEntry(args[2], uuid, args[3], notes.substring(0, notes.length() - 1))) { - // list is not private - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_FAILED) - .build().getMessage()); - return; - } - - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.ADD_SUCCESS) - .build().getMessage()); - Utils.updatePlayerByUuid(commonHandler, uuid, listManager.getExistingPrefixes()); - }); - } - - /** - * Handles the player - remove subcommand. - * - * @param args The arguments passed to the main command. - */ - private void handlePlayerRemoveSubcommand(final @NotNull String[] args) { - if (args.length != 4) { - // missing arguments - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().getMessage()); - return; - } - - final ListManager listManager = commonHandler.getListManager(); - final Optional listOptional = listManager.getRadarList(args[2]); - if (!listOptional.isPresent()) { - // list is not existing - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_FAILED) - .build().getMessage()); - return; - } - - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.INPUT_PROCESSING) - .build().getMessage()); - - final RadarList list = listOptional.get(); - commonHandler.getUuidByPlayerName(commonHandler, args[3]).thenAccept(uuidOptional -> { - if (!uuidOptional.isPresent()) { - // player uuid could not be fetched - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(args[3].startsWith("!") ? Messages.Player.NAME_INVALID_BEDROCK : Messages.Player.NAME_INVALID) - .build().getMessage()); - return; - } - - final UUID uuid = uuidOptional.get(); - if (!list.isInList(uuid)) { - // player uuid not on list - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_NOT_IN_LIST) - .build().getMessage()); - return; - } - - list.getPlayerMap().remove(uuid); - Utils.updatePlayerByUuid(commonHandler, uuid, listManager.getExistingPrefixes()); - - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.Player.REMOVE_SUCCESS) - .build().getMessage()); - }); - } -} diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java index 9c9efe6..08411e1 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java @@ -16,46 +16,42 @@ package io.github.communityradargg.forgemod.command; import io.github.communityradargg.forgemod.util.CommonHandler; -import io.github.communityradargg.forgemod.util.Messages; -import io.github.communityradargg.forgemod.util.RadarMessage; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.server.MinecraftServer; import org.jetbrains.annotations.NotNull; -import java.util.Arrays; import java.util.List; -import java.util.Locale; /** * The class containing all logic for the radar command. */ public class RadarCommand extends CommandBase { - private final CommonHandler commonHandler; + private final RootRadarCommand rootRadarCommand; /** * Constructs a {@link RadarCommand}. * * @param commonHandler The common handler. */ - public RadarCommand(final CommonHandler commonHandler) { - this.commonHandler = commonHandler; + public RadarCommand(final @NotNull CommonHandler commonHandler) { + rootRadarCommand = new RootRadarCommand(commonHandler); } @Override public @NotNull String getName() { - return "radar"; + return RootRadarCommand.COMMAND_NAME; } @Override public @NotNull String getUsage(final @NotNull ICommandSender sender) { - return "/radar"; + return "/" + RootRadarCommand.COMMAND_NAME; } @Override public @NotNull List getAliases() { - return Arrays.asList("communityradar", "scammer", "trustedmm", "mm"); + return RootRadarCommand.COMMAND_ALIASES; } @Override @@ -70,38 +66,6 @@ public boolean checkPermission(final @NotNull MinecraftServer server, final @Not @Override public void execute(final @NotNull MinecraftServer server, final @NotNull ICommandSender sender, final String @NotNull [] args) { - if (!(sender instanceof EntityPlayer)) { - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.NOT_PLAYER) - .build() - .getMessage()); - return; - } - - Subcommand subcommand = null; - if (args.length == 0) { - subcommand = new HelpSubcommand(commonHandler); - } - - if (subcommand == null) { - switch (args[0].toUpperCase(Locale.ENGLISH)) { - case "CHECK": - subcommand = new CheckSubcommand(commonHandler, args); - break; - case "LIST": - subcommand = new ListSubcommand(commonHandler, args); - break; - case "PLAYER": - subcommand = new PlayerSubcommand(commonHandler, args); - break; - case "LISTS": - subcommand = new ListsSubcommand(commonHandler); - break; - default: - subcommand = new HelpSubcommand(commonHandler); - break; - } - } - - subcommand.run(); + rootRadarCommand.execute(args); } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index fcb978f..56c558f 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -11,6 +11,8 @@ import org.jetbrains.annotations.NotNull; import java.util.Collections; import java.util.List; +import java.util.Set; +import java.util.UUID; import java.util.stream.Collectors; public class VersionBridgeImpl implements VersionBridge { @@ -55,4 +57,9 @@ public boolean isNotInWorld() { }) .collect(Collectors.toList()); } + + @Override + public void updatePlayerByUuid(final @NotNull CommonHandler commonHandler, final @NotNull UUID uuid, final @NotNull Set<@NotNull String> oldPrefixes) { + Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes); + } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java deleted file mode 100644 index 57e306a..0000000 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/ListSubcommand.java +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright 2024 - present CommunityRadarGG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.github.communityradargg.forgemod.command; - -import io.github.communityradargg.forgemod.list.ListManager; -import io.github.communityradargg.forgemod.list.RadarList; -import io.github.communityradargg.forgemod.util.CommonHandler; -import io.github.communityradargg.forgemod.util.Messages; -import io.github.communityradargg.forgemod.util.RadarMessage; -import io.github.communityradargg.forgemod.util.Utils; -import org.jetbrains.annotations.NotNull; -import java.util.Collections; -import java.util.Locale; -import java.util.Optional; -import java.util.Set; -import java.util.UUID; - -/** - * Holds the logic of the list subcommand. - */ -public class ListSubcommand implements Subcommand { - private final CommonHandler commonHandler; - private final String[] args; - - /** - * Constructs a {@link ListSubcommand}. - * - * @param commonHandler The common handler. - * @param args The args. - */ - public ListSubcommand(final @NotNull CommonHandler commonHandler, final @NotNull String[] args) { - this.commonHandler = commonHandler; - this.args = args; - } - - @Override - public void run() { - if (args.length < 2) { - // missing arguments - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().getMessage()); - return; - } - - switch (args[1].toUpperCase(Locale.ENGLISH)) { - case "ADD": - handleListAddSubcommand(args); - break; - case "PREFIX": - handleListPrefixSubcommand(args); - break; - case "DELETE": - handleListDeleteSubcommand(args); - break; - case "SHOW": - handleListShowSubcommand(args); - break; - default: - new HelpSubcommand(commonHandler).run(); - break; - } - } - - /** - * Handles the list - add subcommand. - * - * @param args The arguments passed to the main command. - */ - private void handleListAddSubcommand(final @NotNull String[] args) { - if (args.length != 4) { - // missing arguments - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().getMessage()); - return; - } - - if (commonHandler.getListManager().getRadarList(args[2]).isPresent()) { - // list already existing - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) - .build().getMessage()); - return; - } - - if (!commonHandler.getListManager().registerPrivateList(args[2], args[3])) { - // list could not be registered - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_FAILED) - .build().getMessage()); - return; - } - - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.CREATE_SUCCESS) - .build().getMessage()); - } - - /** - * Handles the list - delete subcommand. - * - * @param args The arguments passed to the main command. - */ - private void handleListDeleteSubcommand(final @NotNull String[] args) { - if (args.length != 3) { - // missing arguments - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().getMessage()); - return; - } - - final ListManager listManager = commonHandler.getListManager(); - final Set oldPrefixes = listManager.getExistingPrefixes(); - final Set oldUuids = listManager.getRadarList(args[2]) - .map(radarList -> radarList.getPlayerMap().keySet()) - .orElse(Collections.emptySet()); - - if (!listManager.unregisterList(args[2])) { - // list is not existing, list is not private, file cannot be deleted - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_FAILED) - .build().getMessage()); - return; - } - - oldUuids.forEach(uuid -> Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes)); - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.DELETE_SUCCESS) - .build().getMessage()); - } - - /** - * Handles the list - show subcommand. - * - * @param args The arguments passed to the main command. - */ - private void handleListShowSubcommand(final @NotNull String[] args) { - if (args.length != 3) { - // missing arguments - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().getMessage()); - return; - } - - final Optional listOptional = commonHandler.getListManager().getRadarList(args[2]); - if (!listOptional.isPresent()) { - // list is not existing - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_FAILED) - .build().getMessage()); - return; - } - - final RadarList list = listOptional.get(); - if (list.getPlayerMap().isEmpty()) { - // list is empty - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_EMPTY) - .build().getMessage()); - return; - } - - final StringBuilder players = new StringBuilder(); - list.getPlayerMap().values().forEach(value -> players.append(value.name()).append(", ")); - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.SHOW_SUCCESS) - .replace("{list}", list.getNamespace()) - .replaceWithColorCodes("{prefix}", listOptional.get().getPrefix()) - .replace("{players}", players.substring(0, players.length() - 2)) - .build().getMessage()); - } - - /** - * Handles the list - prefix subcommand. - * - * @param args The arguments passed to the main command. - */ - private void handleListPrefixSubcommand(final @NotNull String[] args) { - if (args.length != 4) { - // missing arguments - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.MISSING_ARGS) - .build().getMessage()); - return; - } - - final ListManager listManager = commonHandler.getListManager(); - final Optional listOptional = listManager.getRadarList(args[2]); - if (!listOptional.isPresent()) { - // list is not existing - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_FAILED) - .build().getMessage()); - return; - } - - final RadarList list = listOptional.get(); - final Set oldPrefixes = listManager.getExistingPrefixes(); - list.setPrefix(args[3]); - list.saveList(); - list.getPlayerMap().keySet().forEach(uuid -> Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes)); - - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.List.PREFIX_SUCCESS) - .replaceWithColorCodes("{prefix}", args[3]) - .build().getMessage()); - } -} diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java index bbfc5fb..d69a573 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/command/RadarCommand.java @@ -16,22 +16,18 @@ package io.github.communityradargg.forgemod.command; import io.github.communityradargg.forgemod.util.CommonHandler; -import io.github.communityradargg.forgemod.util.Messages; -import io.github.communityradargg.forgemod.util.RadarMessage; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; import org.jetbrains.annotations.NotNull; -import java.util.Arrays; import java.util.List; -import java.util.Locale; /** * The class containing all logic for the main radar command. */ public class RadarCommand extends CommandBase { - private final CommonHandler commonHandler; + private final RootRadarCommand rootRadarCommand; /** * Constructs a {@link RadarCommand}. @@ -39,22 +35,22 @@ public class RadarCommand extends CommandBase { * @param commonHandler The common handler. */ public RadarCommand(final CommonHandler commonHandler) { - this.commonHandler = commonHandler; + rootRadarCommand = new RootRadarCommand(commonHandler); } @Override public @NotNull String getCommandName() { - return "radar"; + return RootRadarCommand.COMMAND_NAME; } @Override public String getCommandUsage(final @NotNull ICommandSender sender) { - return "/radar"; + return "/" + RootRadarCommand.COMMAND_NAME; } @Override public List getCommandAliases() { - return Arrays.asList("communityradar", "scammer", "trustedmm", "mm"); + return RootRadarCommand.COMMAND_ALIASES; } @Override @@ -69,38 +65,6 @@ public boolean canCommandSenderUseCommand(final ICommandSender sender) { @Override public void processCommand(final ICommandSender sender, final String[] args) { - if (!(sender instanceof EntityPlayer)) { - commonHandler.addMessageToChat(new RadarMessage.RadarMessageBuilder(Messages.NOT_PLAYER) - .build() - .getMessage()); - return; - } - - Subcommand subcommand = null; - if (args.length == 0) { - subcommand = new HelpSubcommand(commonHandler); - } - - if (subcommand == null) { - switch (args[0].toUpperCase(Locale.ENGLISH)) { - case "CHECK": - subcommand = new CheckSubcommand(commonHandler, args); - break; - case "LIST": - subcommand = new ListSubcommand(commonHandler, args); - break; - case "PLAYER": - subcommand = new PlayerSubcommand(commonHandler, args); - break; - case "LISTS": - subcommand = new ListsSubcommand(commonHandler); - break; - default: - subcommand = new HelpSubcommand(commonHandler); - break; - } - } - - subcommand.run(); + rootRadarCommand.execute(args); } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index 5a4b5b6..154e465 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -11,6 +11,8 @@ import org.jetbrains.annotations.NotNull; import java.util.Collections; import java.util.List; +import java.util.Set; +import java.util.UUID; import java.util.stream.Collectors; public class VersionBridgeImpl implements VersionBridge { @@ -55,4 +57,9 @@ public boolean isNotInWorld() { }) .collect(Collectors.toList()); } + + @Override + public void updatePlayerByUuid(final @NotNull CommonHandler commonHandler, final @NotNull UUID uuid, final @NotNull Set<@NotNull String> oldPrefixes) { + Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes); + } } From 913029ac82d68aa31b690c758da69e1fe668d91b Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 16:43:27 +0200 Subject: [PATCH 17/29] Move main logic of KeyInputListener to CommonHandler --- .../forgemod/util/CommonHandler.java | 9 +++++++++ .../forgemod/util/VersionBridge.java | 4 ++++ .../forgemod/event/KeyInputListener.java | 13 +------------ .../forgemod/util/VersionBridgeImpl.java | 10 ++++++++++ .../forgemod/event/KeyInputListener.java | 13 +------------ .../forgemod/util/VersionBridgeImpl.java | 10 ++++++++++ 6 files changed, 35 insertions(+), 24 deletions(-) diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java index b46143f..27bbadb 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java @@ -250,6 +250,15 @@ public void updatePlayerByUuid(final @NotNull UUID uuid, final @NotNull Set getWorldPlayers(); void updatePlayerByUuid(final @NotNull CommonHandler commonHandler, final @NotNull UUID uuid, final @NotNull Set<@NotNull String> oldPrefixes); + + void updatePrefixes(final @NotNull CommonHandler commonHandler, final @NotNull Set oldPrefixes); + + boolean isPlayerListKeyPressed(); } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java index 5a8c85c..1461ed3 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java @@ -16,8 +16,6 @@ package io.github.communityradargg.forgemod.event; import io.github.communityradargg.forgemod.util.CommonHandler; -import io.github.communityradargg.forgemod.util.Utils; -import net.minecraft.client.Minecraft; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.InputEvent; import org.jetbrains.annotations.NotNull; @@ -44,15 +42,6 @@ public KeyInputListener(final @NotNull CommonHandler commonHandler) { */ @SubscribeEvent public void onKeyInput(final InputEvent.KeyInputEvent event) { - if (!commonHandler.isOnGrieferGames()) { - return; - } - - final Minecraft mc = Minecraft.getMinecraft(); - if (!mc.gameSettings.keyBindPlayerList.isPressed()) { - return; - } - - Utils.updatePrefixes(commonHandler, commonHandler.getListManager().getExistingPrefixes()); + commonHandler.handleKeyInputEvent(); } } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index 56c558f..769ff17 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -62,4 +62,14 @@ public boolean isNotInWorld() { public void updatePlayerByUuid(final @NotNull CommonHandler commonHandler, final @NotNull UUID uuid, final @NotNull Set<@NotNull String> oldPrefixes) { Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes); } + + @Override + public void updatePrefixes(final @NotNull CommonHandler commonHandler, final @NotNull Set oldPrefixes) { + Utils.updatePrefixes(commonHandler, oldPrefixes); + } + + @Override + public boolean isPlayerListKeyPressed() { + return Minecraft.getMinecraft().gameSettings.keyBindPlayerList.isPressed(); + } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java index 5a8c85c..1461ed3 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/event/KeyInputListener.java @@ -16,8 +16,6 @@ package io.github.communityradargg.forgemod.event; import io.github.communityradargg.forgemod.util.CommonHandler; -import io.github.communityradargg.forgemod.util.Utils; -import net.minecraft.client.Minecraft; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.InputEvent; import org.jetbrains.annotations.NotNull; @@ -44,15 +42,6 @@ public KeyInputListener(final @NotNull CommonHandler commonHandler) { */ @SubscribeEvent public void onKeyInput(final InputEvent.KeyInputEvent event) { - if (!commonHandler.isOnGrieferGames()) { - return; - } - - final Minecraft mc = Minecraft.getMinecraft(); - if (!mc.gameSettings.keyBindPlayerList.isPressed()) { - return; - } - - Utils.updatePrefixes(commonHandler, commonHandler.getListManager().getExistingPrefixes()); + commonHandler.handleKeyInputEvent(); } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index 154e465..f5e1456 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -62,4 +62,14 @@ public boolean isNotInWorld() { public void updatePlayerByUuid(final @NotNull CommonHandler commonHandler, final @NotNull UUID uuid, final @NotNull Set<@NotNull String> oldPrefixes) { Utils.updatePlayerByUuid(commonHandler, uuid, oldPrefixes); } + + @Override + public void updatePrefixes(final @NotNull CommonHandler commonHandler, final @NotNull Set oldPrefixes) { + Utils.updatePrefixes(commonHandler, oldPrefixes); + } + + @Override + public boolean isPlayerListKeyPressed() { + return Minecraft.getMinecraft().gameSettings.keyBindPlayerList.isPressed(); + } } From bed8e18cc4f8241c9249fd83faa9edbd30fe50f6 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 17:26:45 +0200 Subject: [PATCH 18/29] Optimize the code by deduplicating some code --- .../forgemod/util/CommonHandler.java | 31 +++++++++++++++++++ .../forgemod/util/VersionBridge.java | 2 ++ .../forgemod/CommunityRadarMod.java | 1 + .../communityradargg/forgemod/util/Utils.java | 14 ++++----- .../forgemod/util/VersionBridgeImpl.java | 5 +++ .../forgemod/CommunityRadarMod.java | 1 + .../communityradargg/forgemod/util/Utils.java | 14 ++++----- .../forgemod/util/VersionBridgeImpl.java | 5 +++ 8 files changed, 57 insertions(+), 16 deletions(-) diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java index 27bbadb..ef138ca 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java @@ -259,6 +259,37 @@ public void handleKeyInputEvent() { } } + /** + * Formats a prefix by replacing {@literal &} with {@literal §} and adding a space to the end. + * + * @param rawText The raw input text. + * @return Returns the formatted prefix. + */ + public String formatPrefix(final @NotNull String rawText) { + return rawText.replace("&", "§") + " "; + } + + /** + * Formats the text, wraps it into the version specific text component and gets the unformatted text from it for the possibility of comparison of texts. + * + * @param rawText The raw input text. + * @return Returns the unformatted text + */ + public String unformatPrefixForCompare(final @NotNull String rawText) { + return versionBridge.wrapAndUnformatText(formatPrefix(rawText)); + } + + /** + * Checks if the given prefix candidate is matching with any of the old prefixes. + * + * @param prefixCandidate The possible prefix candidate. + * @param oldPrefixes The old prefixes. + * @return Returns {@code true} if there is a match, else {@code false}. + */ + public boolean isPrefixMatching(final @NotNull String prefixCandidate, final @NotNull Set<@NotNull String> oldPrefixes) { + return oldPrefixes.stream().anyMatch(old -> unformatPrefixForCompare(old).equals(prefixCandidate)); + } + /** * Gets the list manager. * diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java index ace3e92..4865ee6 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java @@ -19,4 +19,6 @@ public interface VersionBridge { void updatePrefixes(final @NotNull CommonHandler commonHandler, final @NotNull Set oldPrefixes); boolean isPlayerListKeyPressed(); + + @NotNull String wrapAndUnformatText(final @NotNull String text); } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java index 46dbca8..71d0825 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java @@ -49,6 +49,7 @@ public void init(FMLInitializationEvent event) { registerEvents(); registerCommands(); + LOGGER.info("Successfully loaded the mod '{}'", CommonHandler.MOD_ID); } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java index 8c4dda0..7203371 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/Utils.java @@ -84,13 +84,12 @@ public static void updatePlayerByUuid(final @NotNull CommonHandler commonHandler * @param oldPrefixes The old prefixes that need to be removed before adding the new one. */ public static void updatePlayerNameTag(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull Set oldPrefixes) { - player.getPrefixes().removeIf(prefix -> oldPrefixes.stream().anyMatch(oldPrefix -> new TextComponentString(oldPrefix.replace("&", "§") + " ").getUnformattedText().equals(prefix.getUnformattedText()))); + player.getPrefixes().removeIf(prefix -> commonHandler.isPrefixMatching(prefix.getUnformattedText(), oldPrefixes)); final String addonPrefix = commonHandler.getListManager() - .getPrefix(player.getGameProfile().getId()) - .replace("&", "§"); + .getPrefix(player.getGameProfile().getId()); if (!addonPrefix.isEmpty()) { - player.addPrefix(new TextComponentString(addonPrefix + " ")); + player.addPrefix(new TextComponentString(commonHandler.formatPrefix(addonPrefix))); } } @@ -123,17 +122,16 @@ private static void updatePlayerPrefix(final @NotNull CommonHandler commonHandle final ITextComponent displayName = player.getDisplayName(); ITextComponent newDisplayName = displayName; for (final String prefix : oldPrefixes) { - if (!displayName.getUnformattedText().startsWith(new TextComponentString(prefix.replace("&", "§") + " ").getUnformattedText())) { + if (!displayName.getUnformattedText().startsWith(commonHandler.unformatPrefixForCompare(prefix))) { continue; } newDisplayName = displayName.getSiblings().get(displayName.getSiblings().size() - 1); } final String addonPrefix = commonHandler.getListManager() - .getPrefix(player.getGameProfile().getId()) - .replace("&", "§"); + .getPrefix(player.getGameProfile().getId()); if (!addonPrefix.isEmpty()) { - newDisplayName = new TextComponentString(addonPrefix + " ").appendSibling(newDisplayName); + newDisplayName = new TextComponentString(commonHandler.formatPrefix(addonPrefix)).appendSibling(newDisplayName); } player.setDisplayName(newDisplayName); } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index 769ff17..2f2d770 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -72,4 +72,9 @@ public void updatePrefixes(final @NotNull CommonHandler commonHandler, final @No public boolean isPlayerListKeyPressed() { return Minecraft.getMinecraft().gameSettings.keyBindPlayerList.isPressed(); } + + @Override + public @NotNull String wrapAndUnformatText(final @NotNull String text) { + return new TextComponentString(text).getUnformattedText(); + } } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java index 1c91723..63d1566 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/CommunityRadarMod.java @@ -49,6 +49,7 @@ public void init(final FMLInitializationEvent event) { registerEvents(); registerCommands(); + LOGGER.info("Successfully loaded the mod '{}'", CommonHandler.MOD_ID); } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java index 42bbda7..3594902 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/Utils.java @@ -79,13 +79,12 @@ public static void updatePlayerByUuid(final @NotNull CommonHandler commonHandler * @param oldPrefixes The old prefixes that need to be removed before adding the new one. */ public static void updatePlayerNameTag(final @NotNull CommonHandler commonHandler, final @NotNull EntityPlayer player, final @NotNull Set oldPrefixes) { - player.getPrefixes().removeIf(prefix -> oldPrefixes.stream().anyMatch(oldPrefix -> new ChatComponentText(oldPrefix.replace("&", "§") + " ").getUnformattedText().equals(prefix.getUnformattedText()))); + player.getPrefixes().removeIf(prefix -> commonHandler.isPrefixMatching(prefix.getUnformattedText(), oldPrefixes)); final String addonPrefix = commonHandler.getListManager() - .getPrefix(player.getGameProfile().getId()) - .replace("&", "§"); + .getPrefix(player.getGameProfile().getId()); if (!addonPrefix.isEmpty()) { - player.addPrefix(new ChatComponentText(addonPrefix + " ")); + player.addPrefix(new ChatComponentText(commonHandler.formatPrefix(addonPrefix))); } } @@ -115,17 +114,16 @@ private static void updatePlayerPrefix(final @NotNull CommonHandler commonHandle final IChatComponent displayName = player.getDisplayName(); IChatComponent newDisplayName = displayName; for (final String prefix : oldPrefixes) { - if (!displayName.getUnformattedText().startsWith(new ChatComponentText(prefix.replace("&", "§") + " ").getUnformattedText())) { + if (!displayName.getUnformattedText().startsWith(commonHandler.unformatPrefixForCompare(prefix))) { continue; } newDisplayName = displayName.getSiblings().get(displayName.getSiblings().size() - 1); } final String addonPrefix = commonHandler.getListManager() - .getPrefix(player.getGameProfile().getId()) - .replace("&", "§"); + .getPrefix(player.getGameProfile().getId()); if (!addonPrefix.isEmpty()) { - newDisplayName = new ChatComponentText(addonPrefix + " ").appendSibling(newDisplayName); + newDisplayName = new ChatComponentText(commonHandler.formatPrefix(addonPrefix)).appendSibling(newDisplayName); } player.setDisplayName(newDisplayName); } diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index f5e1456..0ffb521 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -72,4 +72,9 @@ public void updatePrefixes(final @NotNull CommonHandler commonHandler, final @No public boolean isPlayerListKeyPressed() { return Minecraft.getMinecraft().gameSettings.keyBindPlayerList.isPressed(); } + + @Override + public @NotNull String wrapAndUnformatText(final @NotNull String text) { + return new ChatComponentText(text).getUnformattedText(); + } } From e488032bda84bf09c14dcba180bb08124d111ac3 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 17:34:23 +0200 Subject: [PATCH 19/29] Add missing javadocs --- .../forgemod/util/VersionBridge.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java index 4865ee6..ef09ea3 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/VersionBridge.java @@ -5,20 +5,67 @@ import java.util.Set; import java.util.UUID; +/** + * An interface holding all methods, which need a version specific implementation. + */ public interface VersionBridge { + /** + * Gets the mod version. + * + * @return Returns the mod version. + */ @NotNull String getVersion(); + /** + * Adds a message to the player chat. + * + * @param message The message. + */ void addMessageToChat(final @NotNull String message); + /** + * Checks if the player is not in a world. + * + * @return Returns {@code true} if the player is not in a world, else {@code false}. + */ boolean isNotInWorld(); + /** + * Gets a list with player wrappers with their game profile UUID and name for all players in the current world. + * + * @return Returns the list with player wrappers with all players in the world. + */ @NotNull List<@NotNull PlayerInfo> getWorldPlayers(); + /** + * Updates a player by its UUID. + * + * @param commonHandler The common handler. + * @param uuid The player UUID. + * @param oldPrefixes A Set with old prefixes. + */ void updatePlayerByUuid(final @NotNull CommonHandler commonHandler, final @NotNull UUID uuid, final @NotNull Set<@NotNull String> oldPrefixes); + /** + * Updates the prefixes for all players. + * + * @param commonHandler The common handler. + * @param oldPrefixes A Set with old prefixes. + */ void updatePrefixes(final @NotNull CommonHandler commonHandler, final @NotNull Set oldPrefixes); + /** + * Checks is the player list key is pressed. + * + * @return Returns {@code true} if the key is pressed, else {@code false}. + */ boolean isPlayerListKeyPressed(); + /** + * Wraps a given text in the version specific text component and unformat it for later possible comparison. + * + * @param text The text. + * @return Returns the unformatted text. + */ @NotNull String wrapAndUnformatText(final @NotNull String text); } From e998deef46e1f4935aa8d94e385c17e72ab7fdab Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 17:35:46 +0200 Subject: [PATCH 20/29] Remove todo --- .../io/github/communityradargg/forgemod/list/ListManager.java | 1 - 1 file changed, 1 deletion(-) diff --git a/common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java b/common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java index 6835279..3eff43d 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java @@ -73,7 +73,6 @@ public ListManager(final @NotNull CommonHandler commonHandler) { directoryPath = createDirectoryPath(); } - // TODO Look if this can be optimized in Java 8 /** * Creates the list directory path. * From a1c125e9e2b72ebff656f905e5493ddc42dcbae1 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 17:40:29 +0200 Subject: [PATCH 21/29] Add more missing javadoc --- .../communityradargg/forgemod/util/CommonHandler.java | 6 ++++++ .../communityradargg/forgemod/util/VersionBridgeImpl.java | 3 +++ .../communityradargg/forgemod/util/VersionBridgeImpl.java | 3 +++ 3 files changed, 12 insertions(+) diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java index ef138ca..376e3c9 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java @@ -117,6 +117,12 @@ public void setOnGrieferGames(final boolean onGrieferGames) { this.onGrieferGames = onGrieferGames; } + /** + * Sets the GrieferGames connection state. + * + * @param isLocal The state, whether the connection is local. + * @param socketAddress The socket address. + */ public void setOnGrieferGames(final boolean isLocal, final @Nullable SocketAddress socketAddress) { if (isLocal) { return; diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index 2f2d770..132888f 100644 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -15,6 +15,9 @@ import java.util.UUID; import java.util.stream.Collectors; +/** + * The version bridge implementation for the 1.12.2 version. + */ public class VersionBridgeImpl implements VersionBridge { private static final Logger LOGGER = LogManager.getLogger(VersionBridgeImpl.class); diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java index 0ffb521..61e7fea 100644 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java +++ b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/util/VersionBridgeImpl.java @@ -15,6 +15,9 @@ import java.util.UUID; import java.util.stream.Collectors; +/** + * The version bridge implementation for the 1.8.9 version. + */ public class VersionBridgeImpl implements VersionBridge { private static final Logger LOGGER = LogManager.getLogger(VersionBridgeImpl.class); From 56d2c7b272d350fdb8e152e17abd71d6a414575c Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 17:40:45 +0200 Subject: [PATCH 22/29] Remove unused code --- .../communityradargg/forgemod/ModSpecific.java | 16 ---------------- settings.gradle.kts | 2 -- 2 files changed, 18 deletions(-) delete mode 100644 common/src/main/java/io/github/communityradargg/forgemod/ModSpecific.java diff --git a/common/src/main/java/io/github/communityradargg/forgemod/ModSpecific.java b/common/src/main/java/io/github/communityradargg/forgemod/ModSpecific.java deleted file mode 100644 index 782927c..0000000 --- a/common/src/main/java/io/github/communityradargg/forgemod/ModSpecific.java +++ /dev/null @@ -1,16 +0,0 @@ -package io.github.communityradargg.forgemod; - -import org.jetbrains.annotations.NotNull; - -public interface ModSpecific { - String MOD_ID = "communityradar"; - - /** - * Gets the version. - * - * @return Returns the version. - */ - String getVersion(); - - void sendMessage(final @NotNull String message); -} diff --git a/settings.gradle.kts b/settings.gradle.kts index 46be910..96787bb 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -41,8 +41,6 @@ plugins { id("org.gradle.toolchains.foojay-resolver-convention") version("0.8.0") } - - include("common") listOf("1.8.9", "1.12.2").forEach { version -> From 0f6e3de118914b0dd5b1b8f9b091fb34684edce8 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 21:11:57 +0200 Subject: [PATCH 23/29] Combine the radarlistmanager and list package --- .../communityradargg/forgemod/command/CheckSubcommand.java | 2 +- .../communityradargg/forgemod/command/ListsSubcommand.java | 2 +- .../github/communityradargg/forgemod/list/ListManager.java | 6 ++---- .../io/github/communityradargg/forgemod/list/RadarList.java | 2 -- .../forgemod/{radarlistmanager => list}/RadarListEntry.java | 2 +- .../{radarlistmanager => list}/RadarListVisibility.java | 2 +- .../adapters/GsonLocalDateTimeAdapter.java | 2 +- .../adapters/GsonRadarListPlayerMapAdapter.java | 4 ++-- 8 files changed, 9 insertions(+), 13 deletions(-) rename common/src/main/java/io/github/communityradargg/forgemod/{radarlistmanager => list}/RadarListEntry.java (98%) rename common/src/main/java/io/github/communityradargg/forgemod/{radarlistmanager => list}/RadarListVisibility.java (93%) rename common/src/main/java/io/github/communityradargg/forgemod/{radarlistmanager => list}/adapters/GsonLocalDateTimeAdapter.java (96%) rename common/src/main/java/io/github/communityradargg/forgemod/{radarlistmanager => list}/adapters/GsonRadarListPlayerMapAdapter.java (93%) diff --git a/common/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java b/common/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java index 3d3772f..e2c72b8 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/command/CheckSubcommand.java @@ -15,7 +15,7 @@ */ package io.github.communityradargg.forgemod.command; -import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; +import io.github.communityradargg.forgemod.list.RadarListEntry; import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.PlayerInfo; diff --git a/common/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java b/common/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java index f922ec8..9bfe5cd 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/command/ListsSubcommand.java @@ -15,7 +15,7 @@ */ package io.github.communityradargg.forgemod.command; -import io.github.communityradargg.forgemod.radarlistmanager.RadarListVisibility; +import io.github.communityradargg.forgemod.list.RadarListVisibility; import io.github.communityradargg.forgemod.util.CommonHandler; import io.github.communityradargg.forgemod.util.Messages; import io.github.communityradargg.forgemod.util.RadarMessage; diff --git a/common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java b/common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java index 3eff43d..913051f 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java @@ -20,10 +20,8 @@ import com.google.gson.JsonIOException; import com.google.gson.JsonSyntaxException; import com.google.gson.reflect.TypeToken; -import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; -import io.github.communityradargg.forgemod.radarlistmanager.RadarListVisibility; -import io.github.communityradargg.forgemod.radarlistmanager.adapters.GsonLocalDateTimeAdapter; -import io.github.communityradargg.forgemod.radarlistmanager.adapters.GsonRadarListPlayerMapAdapter; +import io.github.communityradargg.forgemod.list.adapters.GsonLocalDateTimeAdapter; +import io.github.communityradargg.forgemod.list.adapters.GsonRadarListPlayerMapAdapter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; diff --git a/common/src/main/java/io/github/communityradargg/forgemod/list/RadarList.java b/common/src/main/java/io/github/communityradargg/forgemod/list/RadarList.java index 3106be9..a4106e7 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/list/RadarList.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/list/RadarList.java @@ -19,8 +19,6 @@ import com.google.gson.JsonSyntaxException; import com.google.gson.annotations.SerializedName; import com.google.gson.reflect.TypeToken; -import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; -import io.github.communityradargg.forgemod.radarlistmanager.RadarListVisibility; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; diff --git a/common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java b/common/src/main/java/io/github/communityradargg/forgemod/list/RadarListEntry.java similarity index 98% rename from common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java rename to common/src/main/java/io/github/communityradargg/forgemod/list/RadarListEntry.java index 5732790..892bcdd 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/list/RadarListEntry.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.github.communityradargg.forgemod.radarlistmanager; +package io.github.communityradargg.forgemod.list; import com.google.gson.annotations.SerializedName; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java b/common/src/main/java/io/github/communityradargg/forgemod/list/RadarListVisibility.java similarity index 93% rename from common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java rename to common/src/main/java/io/github/communityradargg/forgemod/list/RadarListVisibility.java index b972288..0aa3c2d 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/list/RadarListVisibility.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.github.communityradargg.forgemod.radarlistmanager; +package io.github.communityradargg.forgemod.list; /** * An enum representing the visibility state of a radar list. diff --git a/common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java b/common/src/main/java/io/github/communityradargg/forgemod/list/adapters/GsonLocalDateTimeAdapter.java similarity index 96% rename from common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java rename to common/src/main/java/io/github/communityradargg/forgemod/list/adapters/GsonLocalDateTimeAdapter.java index 3e671ad..e8ed55d 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/list/adapters/GsonLocalDateTimeAdapter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.github.communityradargg.forgemod.radarlistmanager.adapters; +package io.github.communityradargg.forgemod.list.adapters; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; diff --git a/common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java b/common/src/main/java/io/github/communityradargg/forgemod/list/adapters/GsonRadarListPlayerMapAdapter.java similarity index 93% rename from common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java rename to common/src/main/java/io/github/communityradargg/forgemod/list/adapters/GsonRadarListPlayerMapAdapter.java index 877d1f4..65df13a 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/list/adapters/GsonRadarListPlayerMapAdapter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package io.github.communityradargg.forgemod.radarlistmanager.adapters; +package io.github.communityradargg.forgemod.list.adapters; import com.google.gson.JsonArray; import com.google.gson.JsonDeserializationContext; @@ -22,7 +22,7 @@ import com.google.gson.JsonParseException; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; -import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; +import io.github.communityradargg.forgemod.list.RadarListEntry; import java.lang.reflect.Type; import java.util.HashMap; From b99a7741dbc09e31f9285b1019fe1f0b3785ad33 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 21:16:29 +0200 Subject: [PATCH 24/29] Use a cache with a one-day lifetime instead of a normal HashMap and cache all players got from the world --- common/build.gradle.kts | 1 + .../forgemod/util/CommonHandler.java | 22 ++++---- .../forgemod/util/PlayerNameUuidCache.java | 55 +++++++++++++++++++ gradle/libs.versions.toml | 2 + 4 files changed, 69 insertions(+), 11 deletions(-) create mode 100644 common/src/main/java/io/github/communityradargg/forgemod/util/PlayerNameUuidCache.java diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 42b9434..72e971a 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -9,4 +9,5 @@ dependencies { compileOnly(rootProject.libs.jetbrainsJavaAnnotations) compileOnly(rootProject.libs.gson) compileOnly(rootProject.libs.log4j) + compileOnly(rootProject.libs.guava) } diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java index 376e3c9..1da5ee2 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java @@ -15,10 +15,8 @@ import java.net.URL; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.HashMap; import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.UUID; @@ -34,7 +32,7 @@ public class CommonHandler { private static final String MOJANG_API_NAME_TO_UUID = "https://api.mojang.com/users/profiles/minecraft/"; private static final Pattern UUID_MOJANG_API_PATTERN = Pattern.compile("(\\w{8})(\\w{4})(\\w{4})(\\w{4})(\\w{12})"); private final DateTimeFormatter readableDateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"); - private final Map UUID_NAME_CACHE = new HashMap<>(); + private final PlayerNameUuidCache playerNameUuidCache = new PlayerNameUuidCache(); private final VersionBridge versionBridge; private final ListManager listManager; private boolean onGrieferGames = false; @@ -154,16 +152,18 @@ public void setOnGrieferGames(final boolean isLocal, final @Nullable SocketAddre } // If the UUID has been cached, returning from the map. - if (UUID_NAME_CACHE.containsKey(playerName)) { - return CompletableFuture.completedFuture(Optional.of(UUID_NAME_CACHE.get(playerName))); + final Optional uuidFromInitialCache = playerNameUuidCache.get(playerName); + if (uuidFromInitialCache.isPresent()) { + return CompletableFuture.completedFuture(uuidFromInitialCache); } // Checking if there is a player with same name in the loaded world. If so, returning UUID from EntityPlayer. - for (final PlayerInfo playerInfo : versionBridge.getWorldPlayers()) { - if (playerInfo.getPlayerName().equalsIgnoreCase(playerName) && playerInfo.getUuid() != null) { - UUID_NAME_CACHE.put(playerName, playerInfo.getUuid()); - return CompletableFuture.completedFuture(Optional.of(playerInfo.getUuid())); - } + final List playerInfos = versionBridge.getWorldPlayers(); + playerNameUuidCache.putAll(playerInfos); + + final Optional uuidFromWorldLookup = playerNameUuidCache.get(playerName); + if (uuidFromWorldLookup.isPresent()) { + return CompletableFuture.completedFuture(uuidFromWorldLookup); } if (playerName.startsWith("!") || playerName.startsWith("~")) { @@ -205,7 +205,7 @@ public void setOnGrieferGames(final boolean isLocal, final @Nullable SocketAddre } final UUID uuid = UUID.fromString(UUID_MOJANG_API_PATTERN.matcher(json.get("id").getAsString()).replaceAll("$1-$2-$3-$4-$5")); - UUID_NAME_CACHE.put(playerName, uuid); + playerNameUuidCache.put(playerName, uuid); connection.disconnect(); return Optional.of(uuid); } diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/PlayerNameUuidCache.java b/common/src/main/java/io/github/communityradargg/forgemod/util/PlayerNameUuidCache.java new file mode 100644 index 0000000..24939a0 --- /dev/null +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/PlayerNameUuidCache.java @@ -0,0 +1,55 @@ +package io.github.communityradargg.forgemod.util; + +import com.google.common.cache.Cache; +import com.google.common.cache.CacheBuilder; +import org.jetbrains.annotations.NotNull; +import java.util.List; +import java.util.Locale; +import java.util.Optional; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +/** + * Represents a cache to cache a player name to UUID mapping. + */ +@SuppressWarnings("UnstableApiUsage") +public class PlayerNameUuidCache { + private final Cache CACHE = CacheBuilder.newBuilder() + .expireAfterWrite(1, TimeUnit.DAYS) + .build(); + + /** + * Gets a UUID by a player name out of the cache. The method is case-insensitive. + * + * @param playerName The player name to lookup. + * @return Returns a Optional with the found UUID. + */ + public Optional get(final @NotNull String playerName) { + return Optional.ofNullable(CACHE.getIfPresent(playerName.toLowerCase(Locale.ENGLISH))); + } + + /** + * Puts a player name UUID mapping into the cache. + * + * @param playerName The player name. + * @param uuid The UUID. + */ + public void put(final @NotNull String playerName, final UUID uuid) { + CACHE.put(playerName.toLowerCase(Locale.ENGLISH), uuid); + } + + /** + * Puts a list of {@link PlayerInfo} into the cache. + * + * @param playerInfos The player infos to put in the cache. + */ + public void putAll(final @NotNull List<@NotNull PlayerInfo> playerInfos) { + for (final PlayerInfo playerInfo : playerInfos) { + if (playerInfo.getUuid() == null) { + continue; + } + + put(playerInfo.getPlayerName().toLowerCase(Locale.ENGLISH), playerInfo.getUuid()); + } + } +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7e3d39c..01e30e9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,6 +8,7 @@ spotless = "7.2.1" jetbrainsJavaAnnotations = "26.0.2-1" gson = "2.2.4" # needs to stay on 1.8.9 version log4j = "2.0-beta9" # needs to stay on 1.8.9 version +guava = "17.0" # 1.8.9 (Forge) minecraft189 = "1.8.9" @@ -24,6 +25,7 @@ forge1122 = "1.12.2-14.23.5.2847" jetbrainsJavaAnnotations = { group = "org.jetbrains", name = "annotations", version.ref = "jetbrainsJavaAnnotations" } gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" } log4j = { group = "org.apache.logging.log4j", name = "log4j-core", version.ref = "log4j" } +guava = { group = "com.google.guava", name = "guava", version.ref = "guava" } # 1.8.9 (Forge) minecraft189 = { group = "com.mojang", name = "minecraft", version.ref = "minecraft189" } From 75a1adea9faccf1108b3015c87d134e5cd500243 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Sun, 19 Oct 2025 21:39:23 +0200 Subject: [PATCH 25/29] Fill the cache on client to server connection --- .../communityradargg/forgemod/util/CommonHandler.java | 7 +++++++ .../forgemod/event/ClientConnectionDisconnectListener.java | 1 + .../forgemod/event/ClientConnectionDisconnectListener.java | 1 + 3 files changed, 9 insertions(+) diff --git a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java index 1da5ee2..6f1a556 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/util/CommonHandler.java @@ -256,6 +256,13 @@ public void updatePlayerByUuid(final @NotNull UUID uuid, final @NotNull Set Date: Tue, 21 Oct 2025 00:31:33 +0200 Subject: [PATCH 26/29] Copy jars in main build/libs directory also if remapJar task is up-to-date --- build.gradle.kts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 65543fc..258076f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -80,12 +80,17 @@ subprojects { ) } - matching { it.name == "remapJar" }.configureEach { - doLast { - val jar = outputs.files.singleFile - val targetDir = rootProject.layout.buildDirectory.dir("libs").get().asFile - targetDir.mkdirs() - jar.copyTo(targetDir.resolve(jar.name), overwrite = true) + plugins.withId(rootProject.libs.plugins.ggEssentialLoom.get().pluginId) { + val remapJarTask = named("remapJar") + + register("copyRemappedJars") { + dependsOn(remapJarTask) + from(remapJarTask.map { it.outputs.files }) + into(rootProject.layout.buildDirectory.dir("libs")) + } + + named("build") { + finalizedBy("copyRemappedJars") } } } From 3bceee91b247dd3ba1b17d1e1e077f26539d6a50 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Tue, 21 Oct 2025 00:32:17 +0200 Subject: [PATCH 27/29] Fix common module is not included into the output jars --- versions/1.12.2/build.gradle.kts | 1 + versions/1.8.9/build.gradle.kts | 1 + 2 files changed, 2 insertions(+) diff --git a/versions/1.12.2/build.gradle.kts b/versions/1.12.2/build.gradle.kts index d2a66ee..4ba4edf 100644 --- a/versions/1.12.2/build.gradle.kts +++ b/versions/1.12.2/build.gradle.kts @@ -4,6 +4,7 @@ val versionText: String by extra val modIdText: String by extra dependencies { + include(project(":common")) implementation(project(":common")) minecraft(rootProject.libs.minecraft1122) diff --git a/versions/1.8.9/build.gradle.kts b/versions/1.8.9/build.gradle.kts index 6154f67..050e372 100644 --- a/versions/1.8.9/build.gradle.kts +++ b/versions/1.8.9/build.gradle.kts @@ -4,6 +4,7 @@ val versionText: String by extra val modIdText: String by extra dependencies { + include(project(":common")) implementation(project(":common")) minecraft(rootProject.libs.minecraft189) From 04cf594abc4a6392f1079bf58d16c4ad86391fdc Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Tue, 21 Oct 2025 00:40:15 +0200 Subject: [PATCH 28/29] Fix including common module in legacy forge versions --- versions/1.12.2/build.gradle.kts | 5 ++++- versions/1.8.9/build.gradle.kts | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/versions/1.12.2/build.gradle.kts b/versions/1.12.2/build.gradle.kts index 4ba4edf..3beb05d 100644 --- a/versions/1.12.2/build.gradle.kts +++ b/versions/1.12.2/build.gradle.kts @@ -4,7 +4,6 @@ val versionText: String by extra val modIdText: String by extra dependencies { - include(project(":common")) implementation(project(":common")) minecraft(rootProject.libs.minecraft1122) @@ -19,6 +18,10 @@ loom { } tasks { + named("jar") { + from(project(":common").sourceSets.main.get().output) + } + withType { // https://github.com/gradle/gradle/issues/861 inputs.property("version", versionText) diff --git a/versions/1.8.9/build.gradle.kts b/versions/1.8.9/build.gradle.kts index 050e372..1c9694f 100644 --- a/versions/1.8.9/build.gradle.kts +++ b/versions/1.8.9/build.gradle.kts @@ -4,7 +4,6 @@ val versionText: String by extra val modIdText: String by extra dependencies { - include(project(":common")) implementation(project(":common")) minecraft(rootProject.libs.minecraft189) @@ -19,6 +18,10 @@ loom { } tasks { + named("jar") { + from(project(":common").sourceSets.main.get().output) + } + withType { // https://github.com/gradle/gradle/issues/861 inputs.property("version", versionText) From a47ad3c6c0eb6212c728150cd2ef91e41c1c2dd5 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Tue, 21 Oct 2025 20:14:03 +0200 Subject: [PATCH 29/29] Set CommonHandler instance in RadarList after fromJson calls --- .../communityradargg/forgemod/list/ListManager.java | 3 ++- .../communityradargg/forgemod/list/RadarList.java | 11 ++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java b/common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java index 913051f..c6ae2b0 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/list/ListManager.java @@ -50,7 +50,7 @@ */ public class ListManager { private static final Logger LOGGER = LogManager.getLogger(ListManager.class); - static final Gson GSON = new GsonBuilder() + protected static final Gson GSON = new GsonBuilder() .setPrettyPrinting() .registerTypeAdapter(LocalDateTime.class, new GsonLocalDateTimeAdapter()) .registerTypeAdapter(Map.class, new GsonRadarListPlayerMapAdapter()) @@ -294,6 +294,7 @@ public void loadPrivateLists() { private @NotNull Optional loadRadarListFromFile(final @NotNull String filePath) { try (final FileReader reader = new FileReader(filePath)) { final RadarList list = GSON.fromJson(reader, new TypeToken() {}.getType()); + list.setCommonHandler(commonHandler); list.setUrl(filePath); if (list.validateList()) { return Optional.of(list); diff --git a/common/src/main/java/io/github/communityradargg/forgemod/list/RadarList.java b/common/src/main/java/io/github/communityradargg/forgemod/list/RadarList.java index a4106e7..249627d 100644 --- a/common/src/main/java/io/github/communityradargg/forgemod/list/RadarList.java +++ b/common/src/main/java/io/github/communityradargg/forgemod/list/RadarList.java @@ -38,7 +38,6 @@ */ public class RadarList { private static final Logger LOGGER = LogManager.getLogger(RadarList.class); - private final transient CommonHandler commonHandler; @SerializedName("VERSION") @SuppressWarnings("unused") // needed in future private final int version = 1; @@ -51,6 +50,7 @@ public class RadarList { @SerializedName("prefix") private String prefix; private transient String url; + private transient CommonHandler commonHandler; /** * Constructs a {@link RadarList}. @@ -214,4 +214,13 @@ public void load() { loadPublicList(); } } + + /** + * Sets the common handler. Only use this method in combination with for example {@link com.google.gson.Gson}. + * + * @param commonHandler The common handler. + */ + public void setCommonHandler(final @NotNull CommonHandler commonHandler) { + this.commonHandler = commonHandler; + } }

$>!zA1&vtNUA@u z^Kl&k2h992+MWuzM>VxQL{^&0e)S>})!djRs~U4}5g_Y^{OW=CL*l8ERY_oZBe6AP z{p--r{Sf@?(im4p=WJ>}^2eDpA&05-C{b#cd!eQFdccoW-xA};=$CzTsKbJuPKiV% z58QRddJ>hCAjWMAKo>wEY6Yre|KPnnC2@-x$_!_~pH zAlkozKVHWc#6VTh&dXHTrqXenj#>YSn2@3ydRYJmh7-jNoKZ|8@ECLjVtwt1VXs@2 zg7-TVnbomjSL}C;tU1BS6uC&c_@JT-DCqm0$!T>^Iu`|umx>>U1?Ly7Xg2uV42J@? zAP!ZJE?y~_*@r63R7G>G^zO0dONSkU0Y}V7scP3ZXb@%%5F;q1auPlDQgc-!W|gd2 znVN;Po37&+QFJMLPbS#IQ4RmE!mq#Owp`|te09NMS&ERlw*(a#}nip416YBcX1@@LE z`F+WGyBu?Jz8;d1F>?I6tF_?fl1upS)t(H`?%In~*@-XXEvSz74xJ@QakWbEyJtTp z&1=cuCP-prD_z8yE~PGXK9XRJ7#t!)ZlBRLnLN&>j~*++t%{-X_c%zQpRFdPIvY#f zYutH#dQ5U&k?C#e9Br?kqfXEe_{?BwW1emI&hWGfsPB7SZ*XE70x#-x$mcvrYok#p z#E?F`Xhn;)&yCXQ+Al$uarO z^(?zy!Vl>2Kt?G}jn9ZI_IQ5E5);c`$#QJ@U$pb~j-i9{8+3Oj1`Pm^RxR!R6z9b1*eluX?_5xGn#-%2dh2UoQy6`JkNdj+9ce97Eorw?xzGQa_jovfA&LmQ5Ak~49 zCE?}$+Bd3se~h=c6R2UG+wXk{POQLE9A*b)P>f+d^69ke(wwu$AmN$Vlww`(ODxS8 zKpOpY127bW1yTTF&&-f=;w8`*(Gx);$*QQ{2kvK5UOV&EPJX@jeIAkF2r0nKQm;nN zdD?Wwlz#Zs^1jPf2y?9WrbYSrr3k^4Fc5pqdxVhflnR>ghiI zKPcrBn;BL7a+UJlso!|vsFfXEhL)RK4rZ5{ugxQ(4w*R;k$b>uCMFg zuP9?Q9|_6iw`%KyHg2T$J1A4A!;}8)52-G%C!3ywJ6eN{BDU)Z(-ZH^{^GzbPXfP$ zWHUNgXw{#*p8Bh0ap5p4wec4oPbX<}L~=lT-TE|ij)>Y?RE_)WU#)S_KgKd98w=p+ zwh$>}4NDHSO@*vi!KTK{CmAWh9pg)&(Kz?*B3@h;2|idc6d`-)-!PTL5lOsanC*E z9lcODF?tGa0-NHa+nb=`$Ug<%9+U%1+pg1NvqqY3b)_i?BgJ-Ni`TOwpnZuy6VI*X zh@mmoF@eeul4=3{>PS^rOU>U9{^o)?UeO?NvOK}N99mbQ9y*l&@8g?iMuh(|`Y;3O zn_Sz6tHc4X?I5JDr)4!v179G$fy0$U!Rhfa0V-=|p~rd2ybTuee~Q=2AH5F!8h4RC z)Eo>v1YH>d#TAB>rx!~*-pk&HSE0&#$w;w+)s~T~mL9R};zAV?AUte9rbzUo_TTt9tULshR%XM4a0lc`6=>oJa$bR@hvv+J^hm8gyQ*W`%Kop<{o+^koAyU}G_e;mKVlu%!hyQvCtr16|y4J3pX8y6K46ZLL z*LHk~3;vE`M-&xRd6S+Uq2u0eHUgtRW%BHNbpKAexdn-G?k$IJyA z9%~2u)ja*by?w9Ae6E_GnSuq~2Hkicvn1O7h`N@U$dtCm3t*T2wnT)?`f(ap6u#Fd z_C&omi#@re?MC}xh1eoPcCJpL>;k#0P=eQk&DL668}7Jy9Hv}O7yU1{&Xw-GHy5}t zszVQs=ZL)l%~N}{S*9Sf$dzvMPPvl>jaWDB4y6v#*-&xZ?` z>~JE2nC(i8JqPRfxsD7~kk@sS$1j|!20DJwaPZ%+eG04V_;0kt z3kizo;NBD0f#u+>dYyx#*B*)WVCS=-aEj4q`E>g$oRAJh{lmr>Xc3z9rSQ5#$w{CO zA%F#-MRs&z8-u+g@7bj2g&TH`U!Ro!u<2dI{u!TQcf0)mPV(iu{cElJ3NHJ6)B=zZ zoOs&<>~Q_4dgS+T9pzvg#CD~yV9aIzP4Fv}Ssy2WUmH>Yjh z;8w;B*J4xWNobsj9u+VB>7H6s{buBQ5{n600t?oXFQmg;#>O9W9=U}_M0&l6c^(WU zY|-#%&O6Cf8#3GID9OUD{fe`3Afzn0+`*X8;+rAi7nIA>3wlMKsXuSfq00ESO0SxEiEep|-XA}1kD_F)c>9Cdl zSC?>^^Ol6mrbtZjf)YwM2N{u6C+Bf=?C5oy@xx}!mv`^@^?L(j2Wq$Cn|dd#2@y=_ z>U?RdV??gZ2-(D++$`#u+(T@OWr&3Icui^1x7u|*HTHNhbN|?9IDJ9Dq!X3bH>NXUA>*Jw%Q{EF4qH`h2 z{(8D891J+?32E6>^$*W$${?@Z)Y7#YA3C)KmW={#t=S@k6b3Gx^kMb!cUtTK{$$vZT0y25s}-O>!t;AO9MqrZR2y~nMY=Akqk z$`+HI0-(*`M~gV;Q>_IZ_nmQBq-xc7I6fo;CHd!`D7@R6)HrP_STUeF^&Kw0kxDmn z=zbg3k3D%=Mxj(xzk1x>e=p1#>ZHSt^*{(l*fggt#c|k1Y^4EuC!%ZDQMpo1hm8>1 zQ>-Cy$8^ap=t!B#5*foc5u`*@QtRSx(@E?B5ZgEhH^99CR&5XiY;rD!^$;GE9Pk=L z?LVwdQr;v`ww#|A_Xt}*h!lNbfHpzhVYthTI-aNPNez>_ojNS72cDCkId6Xt9Gk(8 z|36+y+nH6_>}Vi(|K{JKF2lzA65`Dao-@i5-g(tp55$3e+#5tHG#2bqeC?blbXz~~1Sp}t9Nh5F714_VjB=l0 z4Vm7clcag6PU%mRIRR7Nar%Hsx=YvY&OcBEeU#)&XT&A~n}XUT#9qDF^cDUc6`Z`Y zV|KqNZ~NcP@xn?CpY8I;wAPilJ4tkK%0+EvVrRle^K)b;V-ny$R&ZEQW4OI)7Y@t> z2gLAjQahwAsb^2}$no%>&a8Y{ZA~@TujC*1;n3$L1avK*K&t}+JFJFwKO0Alk+}M( z27;M&@y&>X{m~cHzeU4@DlA!Bc6a|4SiS4;>AE9|b7#d7sqVz<(r$$=G#9k7o)!Ew zKkK>M(&rer?YDJ>H1b`V{gZwygIx^1SNoxTUzFS?4*{8+g_@kEk5I z4*^0+kz$Qd{F#3#_r2skm)+$3_J{Xhv08*A-;Z8Hu-9hBQwc0JEBI7C9!<%!2l2i# zWHLiW3_PC29&D@a*p|s>ILHF{bmhLCM(TbegjGPWpObR_4e~>kTPe|>Z(j#zM`B$u z?|td)09Lmho4|WRt>^(DW}S%kHCrnC%H~AN__ZStn`Zc9Yf@@=J`Ik|EvaNV|6ddp zxbbBPMJRcH0ZMK;mYz~6Bet-V^EMTOwU+_ZB>{*-_Nica9INP0-Vb4d^^1-uV4>CvnQZft`b`g-pU6i%!u}o_)C*~ zjjnFQ4E~H(n$aj1f&Q^k>15Zvrz*` zm5wMNC6v&6O#&g;oBN#SIpVcKOPp~^JqA8a5=p4vyN^VI>GsBA;l z%ay9a3DVdNkoL_e%&4U|N-t6n`Q|gMmN+ma5UV8S{(9?S&7ZwQ62Jy`+!ckr_T>Vl zs}us6TOPg3e29p|%|6*V8jafXx!wc&AMpI@;bW$J<YrL;SsX;(4oK4-r&Hu&Kh^sbpqK2Q+;?r$Vq_0dYEL9?28wb^?NMOy|6 z{Ys7r^@F4CIR@4?K!g650p3IDK9vg{pEc>+$?n~4;O2!RiY&4Pr5mY=(!stb z{dM}vJwPYoDXGAM-jNeQ8(iQkA4*h?gC*B9KYahWeyV^kst?$05xW8;fOkiEYS0U1 zVUQ%O^Ys&&-b*y+p?~!=WL5bwZ_?uIvbZ%j2HMJ`sM^%dJ-9%H8s$YEdU+6$V>VP#4JtR*V zUd6(Qn^FFI*vj&WQeS@l)eu5lU(2}_Vd6Nx`#LolA#i{d_ zIyh^++4NovOu!wx>43g%e~5}pp_^S#qH_N3%McQ;5@+c=2Wk82cI$=Z7Z*?cj&D4i zKGjwUIZ@Bk>IP94Llm#xUGhzcn17&;0q6F;kA~KtP+oz@jrve0yJ5%Z4bW0Q5EL0fVvKlh6?u$j+z&c#maG3e6mnA^uyF&Z@sj4>$IIK~E|N5=e! zVq(56i)#!%INPkBbk6%Pbg*vDqp5qx;UV*w8(10tvS&#!v;*@KgsyX+*k45gFF#zL zQh)d#GL$ter_?+)O66{a(*8-XO#6Jlr)4DmY zZ{IXooViVRlT^T2YVDFCgrzbg#yg?(TyGD)TVaH}#j}o-tLQ@NwYBg+<`*93-Zs4g zukdC){Z|ZgmOa3=1-KTncz`MyCq)tbbJY>5sH(mo>}3+JqMrs_Wr8v#gsAc$8~qqV zqY=#Z(Vqqrc>ossJ{H`K&~fm0Akf<5_;ZmuDtnDKI;5O~5wyh6FN5O0?Qv6fI9rcA zgo6ai{v;S#c30{7C5hzul!My5ONCX{c?L0z2VI`#T#@HpKRwuv7%pW{wn%~>e^>!Js#*S2pN_KeYJz+M;w`_q3bZIHQBk} zL_ay+|76a7*nr`U>m*4m?aQ=YsH{GMNBFfwy=vVOJ8CwYIQxOT1cgVyVT=Ex5+~ofT1}7@306^dgQ<>2d;-kL#Sc={TZUT zYVB1*M5^t4(DKjEM*=XhJl*E&8#Wk3vJa+R8jmv##3|QLQbOi{WYfHMGH`_B`nAC#5-t%#2pRk1qaX-QYKgIz_Y5ixe5iF+5 z5gVwu^H`xMzzPH{)Xk}?QY=U2tXZ3X; zR+!&9i*C(`aB|htqC1yn&Ak2cVJu&HB2%ju21ivxR3-4L=lj3jT*8FXVF{qNNR%#x z7i>V_(oH3d*XMsUf~7Z?(_xI))pv? zr13X$hkjT{r&O0999U+=f+R+Pvb zxHOBr@&RWh?2=L9_S>9-IeV^(a<1C|>u3N_mp~UbaX&;?p0u8pr9aVM)vtqPwe~ez z5b&>^TZ*$G>}Dye;+EN&P-Fzdx1q`O$tE`0&};eEMhNQglp(Qo^ref|wJ|p9ScKtD>y%1QBp&;j~w>R*S z&p7lY9_r3()po&Uy&XDRj$^aI!wgQ_`z)CW`C>}2{Nl>#6@;n78IH_U3pe^;65<2K zk7{8W&5JI~El;?XVN?|Gx93Iem09@Ri?lQ7@T~H)ynVWrzM#B9U~{fFfo>SB$vw?|Q?f>4yCKg{VGrX7ojyU$F1K^61sETdUV1#vL4fJ&y)3_7gxY@+ zjD{XjHZC*lM(90!O+O*#ZWV=PeJ3D+qZp)+)Yfb#3&uE|Z83Dog{x_-BXYQB{?0$M z{MfKC+TnApLg+n&yoz6O^HmEN3*O+Ow$^nC8t`&?VUQW^=&_W#0ZP_9`9b8`iwSP5 z+mCYai)x0-twPG=i025&u6TjUVAR{sPeGUQ>3Wy3lR1jlMDQ3G`#ucCU32{2jv~a5 zEMg0&`-LHpFR?SP{@ce&KWZU*Z#rI@xhEn7X^MVzAEtV*e1e&rM*F8_duKx22$}1) zjTeM-K&rDSwF#IX?z?d!ww|s4-`~eTqa5HQ9ZA^W;5mWXn)Su6oBrUG^S@;QpC~}HQ#fn!?m%}M)FC0yOY5XaL`&C1zVIAiWJAM>}^Xd zGG6Mh!kDpg#0ak6m#;{Qxqbjg%Scx8WEG23yfEDdEbBwngH$^lqAvy)`4Vq70{&&b z&~8SsUTQaMRBn=tJ_cO#5eYCmuL2Hog3N%Kpp_IZs2(m{riv}?3oj$W2x{1g5!aD| zb#bNx@TOn3QMR=k7}!m^`?L^q3b;$?+a74|rOWDQv*xLd|9Fi$8t+#7@2t{4gzPh6 z3FzGP{h!t@oS>s7I+d26cZrtsoxJTv>|ZGF__`Q7QfQ_n!X#=Jn#B@ zXAiUMaTt{#t*SYxYRIs{IXtRDl(Jd?2((&JXgZI5d-?X>*p*sB14-7p#fr$oA#+ty%sxw0@Eu{Z^s0G(L*9ZYfR=qZ3)d7t`k8<{ck412^&hmi4D~$a zEO%ti6T}Z&+hc-L9Lq+srmDXZlYxBr+Wzk_=F9hI3x9m@k68%&7I{ZRbIPseiBBiA zczZJhERTJ@v@W}HoH&|PV zu>4GM!<+m5ubDcY0@D(36VK;Ta@VH2;BBb5A9KooyLrCPTkooN5SsfEFH+{n{suov zL-RTl_ofDk7|^SIYY6e9e*(WQ@KpeC0&Ouz?$Z!*vBrcT1w|mk-7KfOb=-uLBNp~C zi-d1gezk0Cozn_?>%=Rb%GLf4kvS6uoCPGbCUvMf>DSmVyjm#xeT}Xr1G%Ns6@Ib9q7Hnv8@-p2?|1yqQwJ6f>3V zAUfa}&R?EdhgOu;H5QHiQHM$DQl+m!e(%ew3>RHLpA7;W1ragzmxR8#{hT2N7ORX> zEq$}=51%+!Y>hcgep&kI687KqLI3Hd8fyte|igNfyZh|KSe* zeB!`C0jXvek)y1O*>{A3q3@-5k7eqkTI#G@ENEk8U~ZK#Gz>~AANtq1oxJ@8+E^1( z&XmC{c*SMTnGF=GK9&pA)GQucc`eP9-M@Y>G=}po_Qr9I|2;PbjU*yS zu8tLQi3v$(vK5~IjeDM*{=E_h=q^IFay^7Z^9}mCTGd!LA`PLrU^0oVHNSf<9(xxC zjHk{-G;YK*7H5xt{JVJlGN^duTw{rFR!E4yiji(D|!n@t226FQ~gd`?#;ct z2?zVyu?Qb0oPPGcT<{^1h8<8Rbl}gtYNAnr7c0ku2J?LoOOH!^lxN_h#)1r$$l9W~ zX5To+JsTOK<+w|tG~sCAMJG9IkIskE8(px3(8rAG;5QB5vfQz|7e^Ql-^N2f*6qO> zs#ep6qkj|rgm;+-;2ZiM5x2WZ4ZMMy*p`4p1)S52bXfo1PZ9mPM88csRKMT7!|4I& zqb`Z=^KMd185iJbfp@qnwLx#x8UX%Ez_4{3tG)q%MsFzPp&0179CzyfQu!mu$9;{2 zFMUjDe|zITvXy?xzdK@XbeU@zYS$eD(ZpnnF4fXpoHR622&Bstza>_odIcvHzz1|E zhQpRN)n^8QF&R!^L2#X5lGMOl&1^8_ke(kRg?~!oYUM#89lgUt?Y>*rucs6#{N3o& zBDDvbQ)%ViX!#%vy)kdl2u*k*aX6)LX!igeE|UQglWR&Plj`mBNJ|gTGMT+A19@!} zU?$IUhi!-PY7+Q)hHVMFx>^|DUv;YImm2k*1_uuh5$W$=J1s7c`ZpH6j-tl5{@PXi z_h$W2w~VF<*Bd~5ZHh$&+{91ZhcYtYZoJhFFzSP4YPn{SYNR$$#=l?(BGmm=cfPZ# z69-7>Cj0n)#1EOTE(X}5L82Il4#U>rHfOB%lIB3fT{_~Z`(*nkD z<_lcA3J%Z$Wz}X+Xa!vQByhK?F`r!vcc;iA^{}`S8BUVk$I&`^nyqQ6J!-xXx!58U zXXBXJ3vnwrV|03FJ*Ag|{Gm(2UyzIu{502y`l(U%;F7KjncZGivUTCsa?!^L;6F$n zc|B@8aPg999a>kcF5YRL#Kr5w(r$y&MCW!m`XLRsanQOOhDKR!rLRRcFWRyX10Iy+ zsb7$pMZ1 zE6QpP5_sFt=lpe=9Axh^Em|%AYXtDX($5Q9McW%Rf8}#GzxpiS{7X5?m(QQ#_WX$- z2!}F>lki0o@d?9)@dcj}h~VMeYFmRMHLu|&_&_VoXE5a^xh*?f8Fz6K_vSpRe?vqh z$%$c;toSY9&Fam1Lct$h3>E$F_C0{{nEYcZY`T-qW9uL!e7P7icOb{>QU0|*DH>`z5Vd|=vF!$%O>7aqJ*SfoDwQL4m2_{9#G;~bXx@ITf$3Z2#t zd^KNzJqY4mf^}FR9|N(f4GVk-Ny@Z}8$4(eIURn&4P?7H=0pkQcJJHsJHYBNk?GK5uQkiwuD@XEjH zb4DS|$HyiiL0*IhO1mPQVJ{Y5x%f|1DG}Og17+Wpt}=pT5=Tts=%huZp>yLfuwFT9 zIdu;gaoY@=$_T=HV0Dg+H8-_4v%JL09ys@Z@RV`knJ2ebpwW7^Tbed7d#=oL8Kp+E z*aXxvin^schZ$MKB*PnrI2h;G$YTZ)DtAY9J$JHPq3k|A>!eZ$iX1>I@H3lM*nnDG zBC9Cn;b<3BGAOQ9V!Cb9Ax7hE?SqT5ci>OprWrmtX<`ZT6yHAfb@H5IY!mu@q!gBw zziI4l=2F?3=sP)fti*bWt`0wGPl&Q1{PCnLhL;BqyBGC}5u~yLD@+#OO=5$~B3!A9 z_ln5ClT`VehfH)Smj>EQP^*v)Mi!e^ZN+u!nJ>K&YrRo`DG(hS*QWl^CV?6>&Hdfy zJ=H+ciZ^}SY+D}Dv5w@A56Z$tI~|4G6OcGUylNZ`8q9tdbQBAQx^E^G5C4z9{($-M zT$X6!XVe$v#~8>%wkG?HaC=ncCOP~DUT|=S9|WXYXtCx{5w>mK2EZsV`)C_-j< zW>5!NX{u%EJ=P-14Po{;dTDJG1JmO79AJ;Z1kNv1H@xgZ3*?aK4K4GaAD|(u5+pgA z)B2?C46s-6WYW@!kvwK20i?&ua)&W^zC{kI?)vDP z`7`e`2bU2VIF6^O$g0AZ@e@0>K|B2Z+k?1GCw$h}e$jar_M(tnGsIGkvC=~0z+~d` z*8YwaXAbt|xqi_^e|PQVJP1$8YWw)$s6x3&BOKxn=rrS!i0Zml5}SGLi5S2=KOv(Q-Hc3eSLH9+~m796-)@f8zUKgGm57Jy_~rZ2q$Dy9icM@q4_`U+?5*O zk3_sYza@l;B>7MzJ@Yyb)bk(~)1VX$jVIEGIPjwI7&F;|-o zD?9LXG0XxQ*E{Q>?4F&Fd(bsa;_*vaix}=Q4k5hLOqt=!1sFrXDDON7GbUtndFgwv zbs@ches)H%_cr<`V7~0~bi>wr{=C8sanIAGs7Gqz0Vatr5gS%M={t`;{e-(^I<)oW zGCdRjlT4S)s-nB;#?jNmEBr+c2=2yO2uUd2bs3b>2kP^7N875ssbP{vMnHCu4bxVz zg1%|S&x(>J0nTI+In2w42*?1G89L+omQ_s8I!x2xG&Cx%k^LH=fk6>3QV+8aBUjf& z`}YO;_T!LN0|MC8gYET01-m^dCOYtQ7?@^sn)>XF;FVn0U=B`wA=))&aA;7HTFKKR z&xhtwt8}bjQR6hiEb^DZDa>GgWikD3p1*kWoQuwenIKJv1b&4M$fPqk>ljLXO*W=* zYVH9XY!{Qdx^J;uz!5a4rp);J^P0-3db?)GvW*Z05@aIOC^}g#<#Icnku+ zaab-9T+{@fsd5D2nLs6Qopdq$DE$%fw3;sJ%I^%3##b=PQW;l7f~^dZ9q#%V#I*xR zjv=kvNKKpZnvRljw2w73eD+F}OBl!qay&q7(b6omUM?+rm3O^Fr(Jc-U}vKxjq;am zzj}aop}T)IVa$yD`B@T!)H!`jMo~H~TTyU*b@1x_-odHz)%pap7>B}Gdpw8b;9)_+yD2l(pM5DKX|(}w$abl889k4Ge>Kw^+9|pp zIB3upMQ3QM|2OR9=EV7}=E;*EfcY%Ps>Ju}Yhv$@xIG#VM%QHC=f#B%EC2l9k$$C~ zzQl#zu0u)mvAg>{B&8inseanuxlGU`Dr2Ok_by7MiA|UoD%J8Ry$Hcq8#|RTLCj9f zvMyRcmDLE>|J7m1dLn(}=j4WzGEYTL92Dlvv*RWVHJ62GGuV@bcWNP1x9xEhg#MP| ztYU2u=~^CYZzL?L6UbmAYN3twbI68wOGUyvg2R_jN}qxn$t4dJjv;fIDWEja%6~#P zT^^IjHQBL@@ZGsV$hN92xTWE1Igek4WS_w10dpZhCF~>265}k7{_#3`enNY(M3%X- z$TB3qZzXlZd%(dx_&oMzIsi2t);^oR1#&vo?s$R1A{+by1p-Cap#Y@B~XR4mvAa9??>;^_XZ#n6M8 zH0KGP-$tj$<(+|j-#y5EMUxEX?}Q4xxy zFlMt6^UT&2##ZbPiUbNa+=3qxbKvF&rQ zF(D;Tl*%I0BXN@JN~LpYID=ja8GqS-XfBo%`O18gyCPfby|gScorl8(_n zwN5%2x`5hW-?~>gv+f`(*Q6id5!o}~-eLHpa+s|waK9UtOq3SZi!|BK+}cZB=YI>V zEWRwNsMVb9KtK7sV|qj$?7jwh2ZsGXOp?P#YOaEYv_K2n;Duxz#$|1^Re*!!26y8y zwDvs+?}|jXf42XZG$jnMPdPc54{c>ZNppLamU6QXo&s@37vE@sIG*>!H`Az!v-Q38 z;DWLF3tC5&Q4&P6#9>WQj*= z>(@!TZi|`rR~kJ*OlnFGgD5wWY31^zG#7b&@=Ev)Kuz!s7f!LKXgwXw-ga*LG45 z_WwTz+>09;RrUR&+bZ~FHpozAe()&dD`jmPQL&PqJU5e^=D9GRahLHkFO|?(q0GWr zlTEUF)XcQ6zY#+5PEsu28yd@iC*9qL?6`;_iFOxZ&+#iUeZm6I6NTLjqzV($EMyC= z9=GWo_#JQe%H=YH<1eAoI4pHl#?_lDSyv&VxJZMQsWaAVeSVbPj9$RCLCOTSbp)9w zL1rYAYno(0O)>h}KeT@$0$;ccZ*a+sEOQNv#UV<95cNJq3l+%e4zt=7Ha;Ak+$BLm zlGoSLgf@;r|J3u8R0oNWUw%Jq*6G!ZI#yZzU3++8SFzK~B14kg!LIoXp3bh_aqXN? zCR+AbOvpZqARvSg&R7)>=Gt_Gt7$jldZhjH7A19+UkE6Prqi}5@>*~}fj;XD-s8yq zgN5Pn!>tW4uS*bWjwY}nUhOT!1AP1l!DgRVDlFA9$pH7QaKkakQfE75#O>6mT&(lND9@AmrkEMP7z#U#4y^6?5^*$>kzs>vCA zpn-VBP|R&3sU5cxB^~<;hMx@0Wm?tVj__)FUaqna4L%%krRm)p>lww+W9e(nkbPSb z>#oe(y=l&hEc|5=Dldi-bJ=BodI^?i4|g+)7o;#q2VwN(b8W?d98o zJuYVJ@tRXNsXOTz2@p3L`Q{X;)C0~wYiK@Zcm?BnS1htaVBO|;%%`BrH^TZS7u$YXZlBWGXrv$qRiKA zGSp#mYrb;ERrjZj7r6#%@?Y_{Y>`4z*ZC?toO4X0vkj}=&$8|-(kAEBs^1iGPPoh= z^Rxnl;j+Y~!f-~XV#Hk%SHjChR5}r|(!YxQ)?D;GLAqs^Q9$z>-hJ7nXjLgO(r3Yo z^b4+edMd8{-V3PSj?yP;{k%WSVR;DQUj88>o#xxJOD+>Zx1=9szmTF{3(|Az@Fq>* z7%ROw(JDrOTBL_-^%ns-b;d?(mPrwx5l#50MiXRnTO1i#?IvbZwsKbu73bdNj< zfQQKk+-5w4C;&skKoV{-MdFy^aG%QW^>w%<5heIAl-v`~k2l_0DF4$g^^W2xUJzPs zVSF)_y`5D44-KlGfw2Sg5@+GAye80!=$RtY%Y}tNjTg>DOi)X0v{I%+L-sel)29JN?kz$`OUQm2xD+QI(Tu*$dz3Q$p9me{{6zlB zC3@!8FlpKzTH=vM7SLw6xc$QUxc2Pyb;7g+Afn9eO`G7E$btJ&|N1DYS+ur1`|(eG z(f8bqmrR*f%7#rgzcQUa|sC zxxYCMK|j0mIo~UUsMbEak(dwVsW_L1dfm2A=o_V|A~X#sOz!mKzE+O=eJ=`HFDfY5 zC{RetfyE~_mAk(wDot+4knN3LVNts?(k3g5!M-z)Qs=19dDX1UAW>N1DjQoIpwde_ zMn}ZMPGl*ZRvSju%}&I*)=o?z_@x7OFGa@-eDwu~wj@dA5nVBXtDo z6Os>HNr``jHpl!wAg8RbW!--c`zDWkwYW>w#!V0wC)+X3Z0E%v&{wl!+Xt=hX{K;U z=aHnZKP{*#Jv)B#A<|aVZ?>fD<1C{U;0c%j1GLqtp5z;-$-~3ur;I0>Y-phG>Ej2# z70#oaFUfh{&6aolJp2ZwBj9wOzkr}K17i`yZDfCE!_K&J_dL%vZP7;qKNi_WvDW5QPOhbqUNmaNt zEU$}`4y;@+k9mDXyqb3ja*=^^gXQHeK|VBUMeS1Y*XqUUe!f2fzfmL8OEUhk8#~B{ z$A&%)%B;15-Mx9ge97cFaY1h*`3RLhC!wWyt?G|amG_Igt$%;v?s_qQk*0O!Ef-$T z3Q|#M&P`{?hrW%G3%5EJ$Tu}oTwJdzw@eqxulzu*>q*uv>G|DE%$1gXn8=-;xi61+ z&4lQL-C)v7bD!T;BZ@BtnB0JH)Atfjp7q79bXg4H^?kwLJD?%;{ZNf3JAEdw3W4_z zoSTnh^Yh5~zp-i+#lhxZr@0`wZ@roG{iAxiJ$#WofBve}g$nF?*7gQw^?Sq3v)xy} zxAalRa;rWQZi$9A3GE#4^5;1~gTr6f>VcO&K6pTT9$0V`H5X)0Xm9q!sQHF@y`IH- zXcV*s*Z%Bz%pXZY!r>1`GS*aLfzX&SRJbv=m+V=*vX!YNY_Lz^!LzWDf zU}wE3lu}^{?uD(s^ZZOEYO2V%t2H_F>A*m(i$Q0p+7Db9g&R$ku^pBW1XmT2{9{fBc`24_>l#4~0G))W$0xm3#_&lS@{kMh4UmKdY z>G?F-z43Q?zv;!ubvIk+LOQ9oTkXyMFI|{~C3>`M3UOlw=-lCHLT);gpWvKoyj!(- zVv*)KJ+Kg5Ndhe4NhG<;8}wUDdYz+7Yrh%kCla%2|1FuPW`~Wp)jV8@)hc<_X^}sfTW!p3tkaX_}duXw-5J1Ulf5O zBM#t{kp7?Re&P~`{{Mp$Yqe4CcVIk}s9PwFZ#`5iQ$#tuw^>g%&gf}{;U!{xVL}_| zX)I^z4`ZL(>_m@_*8bGr?egrH9j@B6J8tbI{sC>y%cheUmtp*>iS1nPxr}}7tsC>F;If`3vYXRhq^Vv--nXFpYVRJ) z!#ZbzQDgDB@4|))e;MV3vgJYCviYG@9fqPS@jR(4-d}MP5RaEH14g$H;>CWzDyhdk z21z#QHv-+K^xm&_Apzx7GsM#=`;vUKl5g){eJ;K}5VS+vG{M%-^?cDwrl{%t)_D&w zU9S1(YcjRpdk)Zh9mZ>KeevsQqica9-h+Dek%i5#@JR*C$H@zH%5{=rFUJZTnqQY- zd_stY;S0Z^3#8IjxcB7Iz-Wlpd$~cDt&&mbgr@d z0sfN9JxD5J_=|)bMkZ$Ax&6W0`tUy(do`nf=^qb#%9_8G$G~r}Mjrjs;w`l?&f(wa zpl6#|S-D3kqMbHjY2ApyHy0our%5&@>y_a0Zr&S>b0Srz1w4p1$bmOTpZna2`X}HM zd}FsCwPdtDi@z&8R;Zn_6DD2_sW?ipvi>8ZU%^vl&pdkkT~ml*Tmo+V_YR8$IWt#8 zgelWty+Anfb7RgUukn%EboTsT&)bAIl2qgaYt_rXTZO+7-ZE~M4@9-KkDxBW_H+)&|`@nQDH)}%beaWR(2(c zH3!>J_v94~Q9ma_h%ty@y8a}&$A{m0!i0)9m3W@P)q~%g`oGY`z8v7H@sd zWGH^3sYFt`aZx4K#w^^K?hbOTr44LQipzXpY+FihYpf)IJ96nck6 z1{laHmb#in&~$uDCSG1rEu9v1}^qS0Eqm$9?kZp%~|=XQqAYnHC|r zey@*G(LDn5RTF2ghA;1vM&=Ry2&|IWWb>!yOX}ELTMtq6AOqrqu%Vu=1>#BmxWSh% zVf}UQ>bepCzuy)GU#&M?~Z{o(jph(Jn#V$&a1 zkx!sRwFG?nDtvO4AuK~PheFYT6Goql8huw<`j@C?SHm!CNzVGO+$eOxe&@v$hC;@! zN)})5G7Q~$kJXP7qKRoxWc{TskrRF=LqMyQ%S`}-jjx~>by`8c(~0m2iA4^QXXW-S zn2OW;|Fr9L3q`WpoIM&yxa<#nDDUjji(YAxeNb!F<(BKoy^(oU*OKDEAD8!|<^a@SpA&v9z(+n02ZoB1$=cB-BD zV6N*KE1Jh}F-UjUx2yhH6r|y!UdclnlbABe#F#Y?&zEF3G$k(tRu%bF0RcM?3iqi} zKh0CN{s|Kz8S-+m5^?^HghG-HnKVinMrY-5p^K~0O| zc8+dIvLN}+bvLw=1z*8(;+ph+_tTYxWyY!Ms97mQW$1zq)^b?Z-)8NmU#$GCeoXSz zxN%k@OPV)Tw{DiDo}aS&=5CEUXt7u+KhAL3ri9$X+ydfKw9 zMI+KvP92Ng<~KM3(i3N;ECMMY`>mRB1ufPcNW)ubR+i_%8yUcY zx;||b+Sdhsn7phinT0jipwX57G`*Ri<{vT{im^p{OaLvpWvWkFacBSSQY|yB(mjppB8?z&;mR$n}lA_oSLYY zeF~(!?3=iB;iM4o1tJ0A!tuiy7oUW84=?hGvFk#s$QxY{A*yZEnfO>ea`=15tWYH2 z%JAX%i>qLwm(%meyMGmxxv!&QrsEIL;#NeP;B9)C6fb_Hb$e8MK}fuR4nxny*?ur> zZMTg4-!iWC{wFNSq;~x(ej2QwZ#1;n&vgNCMpxTqWLfk>8GsKLNM`~k)xy@M7H~h4 zH`h6X7sV*ATK~Oi@FlY9U06Uath)A)9_1v?GrbDwQ?>pRT-bAb#pXD5q4_}Z_sJtG zn|*Sd6P}bKbp?6gG<3vd>&>>7y1BA z_HL$+7NOBt>v=Lfc)*|K%(=s1i5-^1c`)GmYAr%zRH6)j$1i%-yC|H!$gA($xx`48 zJX=<@F%y44C^ngVxk2cE+CAQx->l*6Z|U8j`cn4J zqR7EQJ%XP#>QNUuwC65HXDA)8}5urXV5v~X-FroE-Cb3Mt{d@hc| zkF~MjuAIu`$8Xv@r9M2Ktuhxp3goWT8y)O7CyK}3@@>g&An22ZER7m`*;d9zZ=JaP zfou%po-9c1h(P@#0P8e zd+K@njk8(dio0ruqRyn%0I z^R(5REs}chLLRj7D;(uUo-(9dc| zK{GsYs4SaZerpxBz&!e*W2Z!kCO<+jvH)*OyoZ4ei6oo z7XIjCG~q4l2I`tw4H5r81d_IX^!_#&F9Yb{8o%oY!>VYUF0qYAUo=40Cbjp3z%hNe zr3+M)G8YYsZD_=XpX6hE|5Kn~mwxl8hC5{k<{w0EKNfb4tK)^xf!&F!LY?I1(Ul8d zf1o;wQk0_ujau0k%xG2qZ9So8_|eV5IyfR@OaF%X<%S3As01cn>hO%^f$L!{&8CV5 z>}KhGH4e|iLWBP6lNX&A$*YOUbZ)ltpMKgwM^?JOFgvdL1{5^k35?t7#XRl(EYou# z|CZs48dQY1bywJlHWaC8N3HDo-ZR3-9Dk^L!dcqPpo=YZ6`dQB=^p zU~k+_(?40%p5*QiHJ-L0yg!MvzXuZaN2;&%C2R=y1LzoncEc>L4MU?3*7upLX*Ew= zN~k3UrfT1;T!$Eql|b&pP%rr8E;t1+3gwRoKJgY04a}AKvN-B2CC%U@w$}=BO&6h; z6KOWqNOm#=$dCvxETfMr%|GT6-6!?VC1UAAE{+CkXHgvl!)c?BI=6@D#J6Fw2*mqL zs~@FpuF>3^Ui~a8`t3ss)O8_fvZ*sg0LLYOyQH1{3HQ{QjXtxS3N<+rA%2}jlHR6sGY-%XAB<5!w&%Zn5VKQrBUgvWzh6CcR`-1_ zv^kj*^JYUK)bzd9qZK0^ocv%JDS-Ozo z{IZvpXh2k&lj!ap%`XF#)u>Txna55ZinK>X`}gpEKfb*STV%~b&t>L;p9Pa7(sE5E zakX_J`tzW864qvc;2v}k_m#-y$*mjl4h`K9T3{|-h@>%P&+_3ch3qjB8tBpu)qxTy zI&K_OYbFPDoy$g1J&%$dnjvPmJpV~3V44?9eOGxJM7`$ZK8`T?v`F5hWw+&Tnw;cL z4o?{e5@Oci--BaYHSmwvrTk}kj8V^|GU$b4!#6{n7p~gaKGLXvSGRTf@t=b9f2vwg zGBWix6H`HFE)ewz%D{`cRocT1;VmRRi#q3-(1%VpZ}%S8Gj!Omm4pM z{v_2Rp3l7m+&KH8MD#*oL)=Yvr#w8%yFGPBO+VxQMs>C;y0(%|sZGWjY?{Q(phuac zEY$d)thRk~saEzQ)sguV3ufrA8{l%pid@tu_$OBy*NdP=Z|;7UU)!y= zZ`m9^p}THQ64eeW2d~y572}YX`$?yFskanRUcjYx^aXZc?SRcwV)9`@Kg-OcZc!UK z6*ONeL zDNEwMb$;VKkx$wQHLT87{x;i-J1-tH?UYw?bx$NV53eZsq&d|&FNvcyw9IiVZLPiK z1JQ#NYYQPd(_rQdho_empoYuRYm9YxM)gM3W_d1aj}P>J(UvRS4_)QkaTTvOzBM=H_aUJ-MWy;A%Y7p*qu)ipx9!i+SZDo?YO>xeWhGZ$6UP+j)U^%TeQYY| zy@_QA?!n|X?d{gQnHa~SBoi67g!EB(W{W=Fz?Hnw#FEXRx~fira(nSIDLAg9h;1JK z1pU0qPX6xPkaNHARjO%kL12Vr-OaqP5orKD*o`X9fH9EO_YtZkDIUlQ$tbgxuT5fh zb~A!*cb@#Ng$B_HNr?37PvtJ)|GF%C$Hs=TxA*cVu%y~11K^9XQx@c$^Dt)BZ_Hc6 z+22s54(dGo4hG;Mp47OZ7+B9QG(t?Lr@7viP3&?4aTNX;#)UU}6UuFx^{wWsD?>gr8VIDTS971Cp z&SuIVeLEmIduk^fjTRj5HZ+l(51CpF-wbj^&F#GiD0$2`{W5>=rtIulO=U%VxletH zkEexJj@i>`{hUy}Gm5h=6+gza>rx*62%`~B5frf+3MJD;!2ka-WUJC*&kInGx&7@^D8ety6SzFh50d$m9d z%Kwmt;7`RzO-2m99Mpr|SkS$d)ONg;RLI3p6DH5&%!R2XlhztkfCbUkr*{+4``#g+ z-{SlN+SFX&KsOU7ER9iXAJiPI(1{_Zi7{&z>!ITL{tOLaVs6jGvn}6_$cUR=qSLOS zIX)DjaC*|Qsk}L8U@n4HBg*V~z^7-o?V^2{rFp5qEbcXx*DBr_7q?mB7-zVjYjwk? zrR{z0jga3#$}JvcWG!$#kVow<3>rnDj|!71Pf-&tR-5)8jricbKXw9n-ddGk<;~9h z*@xDorc5%Z>bqs)41MH!&+66^eRMYt~kOY2r57arszsEs)KMj!BnUf(o*cY zAahF#d93L97^QFyE`AVX?Yv}v8*mtIfwN+^?#Lz~Q<`Anw3lSkm)E1sSNLYrmMP=i zOSZ?db~kq8`_6nW3tPv+NQjl1%eY+E|MF`Z%PB^b;yk)xMw@l@y5 zpT?|?5)%)b* zsU1n5;wJH&x(6-a*k(K3g2R{fTjB!W1_^vT+8ME$E_OHNl~$2I-08Xny0>6?=K1{n z>i6L)XMFLMu_4TPC>amCQ{=l7kK~!^v?bOE(x(>9`*k94SMJ+ zIq#A5S`i(!7E|Nqw#q7gmy%4mZCKFqkvTn@RDpxrP|bcI@jG3WGqpP}Hxyr#@u(m( z-{ve@mSp8(o1d%YP{&dNcTMjEGkaM($R>CfVX1y$?=eTWwU@ntge#EFjl(lX6)6*E#Zo-x3KM z*QkjZPcFu*<;k4cRWUl)?uD6XxIdHX-N>hgKYvJF53>DPk1^benMQ~xH}BAe&Y+Oa0csl&{cC^7pbc0>%@ zQ@0Ft9+hjxBv)BNhzb72xN7P_h@|abOXXeCg%#sk@NgUA)!GVHZ9lz1ky+LG;!d;L zMGTPg=HR1&GW#)x%yO1)W-^Ejh1Gc(}n!C}OqJ_5NKM49XYwErW zP-BWiR!6Z3-#RSs$6AO=#(Xd)Yszmf8@|kc%$V1?GZ_8>b=ij!#o3>!HWd2i?Dpw1 z{RJ-c#378VPEi-;hxsoj%#c0CP2gDDL=+}|_~xa)JvX5iW7Idg3DJuoK-cY@1T#V?}T4i075i!dnhh9ji@0{h%aQw>9T;=2-I$9~zVOFToa^Zw_&-hYbm(dG{46(n=5 z*c|Ax?;Z?vlod=uG6kins=}JAMzd2HgC${G-eWpDkj3$P$4vM2CnH@ilovTWJ`1^c zogv3=bj_cbR4~r)psucPm0vdO;d4-vyz?#tY#J%OIllMFk8J9TVD6T&4)kf7|2Ep5 zRXW}_Oled5V`oc7?yYt-*DO5bB++u`V6N-tFj){;bg!~Ll^IcPvlvE@Eu8^Tt7g{Q zWZSDxzjAclQ=-f;E7d1(_d5F!^}Dslt7w0aGm{7WUjOf^@Wl}ol@ad5$BpV$uemS< zzh(Yn55%=0@oZO*HDqW$onTogFHY%V5(ytd0)LV@9C?wh?-u$u^OqP$GaY2~8uBlw zxs1uACwU{~U^`m-Bx7)CZe?l$PS3LMP%Yp4?qKL;g7zx&aJuhJ=UFp1N=Fw)4OLMN zPJPS*Lyl%Tw;&I^FR$LA(B6&Ilg0d%Hd8t*Kg}3TwJ8eT8O-QIRSA^dSwgkKfQ0VD zz#V%?vmeIBFz*Uyby3vi19dHq#~sXk~*q;JYt1ou~56@K|JZe|MSo=lgV^} zHrSF<{wOyVd86G>kQRM7TyxdKxVgnK^=Nh0$To9US_4j-2U(S@%@dYA@XPzngO(cB z!MX8`yVr|Q45=TI>0qRIC!(N@Qo8WdMmh_x8B}TAomM4d&d^`&W|_FwW@te?WsDJ- zP_P%s0PZ|8ax+dn5ZZ>{5#GjP{@QzQjT?rhHOSBubGs+>7)s~uA5OMREQPzwdG`S* z0v@q_YOkNsHlDxB%;A5jBUzOgjnPuqg6J`CQ|p-oH5SmIY-HbRH`i?+8_QF5AT@so zX|)kL8{HWm{>2@W=MBUm5m#i%jXu!vo}3;Me1<;w_&?-k=3Q`^rn<)R<5mH1V!Na$ zV1K-h1BDvoze@`v1Uw+AL4>Jp(DZW_0Wx6VDY>lDNYAZ1m6Pko(?>1+=aj`ApXfDF zvtt>I1QoZ~jvc~4ZDo=m_3|VmlieODG{VN6OFyIn+4b#D?~k~k0D(cOE<1L5N;i4- zMYp$--?WwXtlA#@eK+!br#5V~o)!c%@y)xZ!FkNXK}O3i?`Yu(V;~w3KT$B5uc<#K z!S8O)5#hz%#JyHD6o@BWSU(VA9WIkw1^;Xy+g}EJ5X`Y6$B}c}0}4~8SXatb`j9_m z#a((`1^Es>Grtqr}PuEI+)ih>waIuB#cRvfG1tDa7ruCy#-L#Q>@nz@i_m)g66{RTPc9no6yj z9DIGM&ZMR7D%kdawc2gF=cn{Sev0+c&>N@Wad($@#{*6n$q&9&q%hqk^IBaLvsK7~=Rh9eD5Py_(TWw#!AJJYQ(L4NVSQfU)kGQ<= z6-vLdlCph@y9}N)`>@*=U6k|PTQr_p7_xVY)rGayLBK&mjQwh^mEupXAClzf9bYOQ z;#j4y%iCeX&7W5tcOU(FU;ZfZ#ZHf2-_%H;z*MJIjU^Df_QQ#;B~$i19n>kwN3RYdh^x-zc%5bd!5RpE}vTe7!3P5*pX z0aM*lY0F=lC{vT*pf#)CtMVoMXnqt(l~}zCYRTM_z+POLrQNS!+=Dd;0vh=-q!1f& zfb#abQt0JhH}Ka?dbQ5(EcGnf%i6QYk>k%~e28B`_5e7`id|&n8G&T5jw$(*~w!u(p6pUjg<#1Vuyw za=^IL5<;I5|A&3c>hcWrEt6}q<^1%+*EfoJKhW774O8fIUhvdSyEq>QR!ps#mKs3T zn|F2G$GT*Rj2d@YA``vPUJ0Tk|a}Sox@>)<-W$xatvODt(|5lN7!51 zb%`E`!q1C7zwF@Pz)=KARCIN4RT=Z;>(~z%Ln~qxOylDgh>ydv#MNZpj5aD_H) zPk0t^u(wgHUwtnt(Q8XPpC$_JQ?KM;C`21k4?&eG*~&L0e{vYU@r?NG3%^oh)T?h6 zk@WDbS%e1uYI|#uhAKz(6F!Y4QLLq|$rWA;`M(D8KP=}O+J}7(UEOKE+OJ5^U3nrv z)u%V{eS7U2n6y)0t_dHZo|#LU42$aa)+_EOJ4tk<+7P1_RRU?(T_)uo!2QYTkH?cI z1Nv67MtA?&L%(_b&S55z|qQ#0uR>P{J?2z`5!R5S4tIW&G%-uh3VhB#wX+C>Tm0Y1Qs9DkyoN zU=rOo{`IzKjb zg&&5xjP-kZrK!_f!B6WX4mj>h)K^hIJ;AYmQD#%lX}I2BaVO@(Y=}tNzqKb#U?4jHD7Sc2v$RfBqnr zQTg!r&zYc+-z}68vzgvjpCk35(wDk(U*}Yg>p!)2VGM7>dBNu|W0Yp$R)a(*!EKw* z{JbFLdndAU38}-sjXiVlyv#HcAx?k9j=FtbRl1j9kmAgs6z2>NZ48cS&`?)AurjU= z=4YtwW-X7Hs=F%7iqunrcjHGzI+pIeISr<7ipXIaWpqZhdgeNwBK2tA-G}N~LLdK; zoV+UpGDq4lip*cgGyb<6hc#T94Q#9+jb(r}B@M#o$@Mc489ov`_e6N^rvuL(9a_OT z;mSN%+&%*PB@kTs@()p9AQo~>jvX~RbKx|S11#}S2q{T(4-Rm1-?h^XS`;*|?9Rpn zZgQF5MP8X7&mHQ17o!P#GQbkN_D3$Wfnk#Yxh!fde2(RYkt>bcEZX$4SR+k!;IOJX zEb8wLo)z}|=0?}COC6X4I1>Q=hJAaf!Ttai**J#wO==Y##B4RcB|dI9x)gt4`|^_i z(SeMM$hTzQxqkei0$AknnRP5@=bOmW!Zmp*9p4hwIo}@FD#FCs{PvhjiG)Snbo;&+ zbD{6$Va?u+aD5#<@eBn~37VlD6W+(Ohh-ARYo3^iFtUxz4#$SSbN4=c;L@6FLvyOZ zO4H2$V&hNKm_Z&d4%RRF(kHMDSF>r$AL76!zwO+vt!(Py+3-tqzhZ9cQMf*);gdD| z67};h3h$j-Fs36r-N%4S*LRa1TRL3r1H4g#h1>Q%H?DAO%mzJWv$hFDU)&6%g~12` zYGmbqhHH44(*lfX8Z$QpK=<276;`7)T5%9GlYq|&RJsI*O!u}SeU=pSod_Jdw+|H1 zX}nL3`ieh!G1NZM?|-158mm~@K##`qN7~ydqYzb7g9W)S(EZIO&-m53w7OR(ar323 z29^dp!2 zpUkN|;&bEeAph8=b|Ljo~;9ITT<_dTGk z$z?Wezg55nnmCP1jjsHP(R@M|WD1R#rHo6dt8)L%sQX;W`9|%@k#T*CSCay&8o_(N zAXRclT#PaClL9)T+hQCpfAKFXYY%*K*$3fLRWby1K{*G#Sy5FfxN17vWwk7hOf^(x z9M^yamO>kaAfb+PsZ$dtXbfC4huU*Ar3jawfNY8jt+^- zZS7)zCN+xt?etlU8ar|-peHpvb%Rm0z?Hv+d>6W^#2DVRcLAB)c6-Vu&Lra{7D>>54;#6ASvG{6dWqqi$N$cmB% zB$4l0U8vmxm)GvP(i`PXrTR+C8;`M@NJJ%>9{ax|GRpr3@Toz*g>Jt<2f3{wdP?0; z(&2op{|rTOs7;BxsE&fzMoX>;k`pII8KN)rL!0!fD~Mt zOl$Kp{*lw6>UGLN1E(r~ddofGI6cG=vu-EWrdvhI2B=6?SgGu9ZKB(8|~=x~JRw?N#lFY;G<@5@=b*{SD@Y!!R1R_<<8@sMl`-qSs<(8O7f+EIl5d z{4)7}2RupWd$SOD?!I%%p$-cbo(IL8jPZ8BVZ%$9rV2zZl)Dyb0@L3Vt~hPuFR#ls z7N;O>o~0-cT}|9@{Jh#|rm+kknNG-ES?JGoTVfhF=$ba7NBS#V1U?uV9Ml zo6+(i5_aeRi*jq(=Q&n(e?v-ZB+GT-|{ z0JUYP%GdHbqp<_1J2faV5p=0tkI4X7Jbfk+d11ET%+n>MWVvdiocJTmx~vynU}t5v z><2n=5|~)>(C+Rft7|Pv6??y&4iC3j(*0H4WT|Xme~ly!iisUWw8@d2m(U^w$PLJz zh5jLFMub%#z86Tpt^tY;v*sa}Oqp}YcM)_Uf4k@#wm{E*D)JEdnrAt>>rRAD)r*lp-TK@Eit;k8t zcONa@$=TJc+&9Rs+n4K~q3D_4w=M`<+8@;HmzKa?RFz;spK%%X{^4noF4jmPzEI_1 zq`jO}(mBp_w0+yXpVTB+RD`OylKVJgd-!z9)LD%_^hsYHjJO#F?PG5}r(6nImev?TfFi4sBouZPj-d0KO;v#$YC4)a2tO9GqcxQ*J_(z4mIfN z*>e)G;gwbvI>lP9!>43*+&kt~srL=iP{7z(qOw1XKvHi*hIhh0i6PBt>uvU_jL}Sz z7+Z@iIcsp89oX7*8s?wFYPSxGgV`*MUl6DVTLwRPzbOEL{lQnB19Z_60AKA{X?eQ{qCaR zMY|+4o}%$g`92Y?$%=D#XZ`D(4t!E&^5WaArHX%qHj7oQSYA*Ul4b;cIp?tDoIC-G zz4yyVjKy7(X?S@TL*cig-yD89?Nnjzu!OCu@7bOP|LKE`g)FCzZs-6;)9vMvRgx6`2a(D!u3ar-wP8LI2}OLp(Jz;yb!2Jl7k<)CYamvsW49Fuav;ulEvWg~02B=_g^EL;{tjoON<0e8Q#_XBRO4c+ToGD+HI zUiR>M8hwG2_jSS(mn17^>@D%B21NzT^d>Sd#hYOuOL!+pFmoYRg#A@^=3A+vxmdy5 z&BHtU?fLo_%$xS{?LU}Uh@1fD@1NLnRr#^4?`wpS>TAcCF(`23UF4lDN zhk;Df(cDa=z~2kaL80cwi`e?>vlDVOaAoH5G$mt>ymV!8`n#B)W9+DJj zv&ZizEi&5XlP;1;NeIVn(BSBapeWBRw_@;z+aBc!JEjQb#HYqp{xwmoH6Zc`WMh`C zlDgcprDx8Fym<0)%XZoSKXH}GCKu(u&YjBWxCPc~Bwy5uS+4I(o_e@lsX1jQ znA+U4@KlO%7&?R5$kxj<)@KMs{6MP%(!^g+&MNlODhQ-6$)mNHTx5hN6>lO-><`RDIXSMdTt@wAKCBe>n=% zToh)>^78ZA`+t{39&G5EJ#SYF=2gJV{Szo9s$_fwn0Q94kW2L~hEsIx5|d`F@t4EJ zI$>#y99ET5HxO>`SvuSV%gwmJOX)jrC`;jO1D#cUa@YubaqC~HI}JL&(bQy9mvxzh z4cdjMQp-i8p_f?u4d!pLuoy@i-dme28K7mcS&BvZK^_WaR-br9F=A z!Lm8$IlS)WXP}bv?bD+bHF1{z|5)w_2uT+fI8QJ2G3?7PdDrk9SD>R z?tBevl3}HuM)%xL`Qp;#7syYdfLB2C9rmG_^QXNzMmrFv+ZTp;0r1HVn@RV&>v^Yz z!E71VPUh6TcLr&059Xzmrzx%@q5|v~7!=HUmEsL*EWsbGDf|S+>f3iunHMjlLAwsS zoI{FA6Z^Xkt3srS$VD|Z7h{}r0dpYi4F~j!0%}rpLPahVPsn$S;D4Q@CK$R!z9qb) z-g)RON50DVG1MS09o%Skjlb*KupDsm{b%2k*8W~vzExtG`Mv|c&MtSmxUpZ3H@_mJ z>1!%yb*N*a|Jcj7n!X|g7Okc_YKITzJN?l(T*X16GyMBp2g`n19FG$24DKF-u8;q; z_AR_LbK&)sw*^!=`lBI1yjymqd=Tp3U8vFXr6 z2jaBx&Y#Z3&Lb?>pG99Y`X-$0eYH8s7^QrKP3yhz$qxr!(Nk|)jf2y|Cd;76itC`! zm*3j&m!uaWZ1TMwE-A+KO4NR|V-KIC&1MaG&nTSEEtnr+t?oBGZ`;lkUbcBI{9fSH z?_f9K`_ahRUAWEjq((9ix%M{r^$>Ugz#%TyW?#7pRcaTp6($UR1T7*#pEKV#iqa5k|S&1z#+~6m!1Q^Um+ld+O&B9(|Ex!qx?H%5MorxfvPiiWyT0R8x1**5GsFZ+g?TUpQ~V@>$M_ zX~X26f>$_CN=>BoW0mfrMT|q7Wz}e_-l`@pO$i6~6$ROcf4+h5eRx2B=nG(&{n$Vc z>F_OxwV}yMQ}O>qNuOWAy!`Hf#MTnw+bp`<4GJv?i}Tt^ZqU{sHpF&ET6xmA#t`HZ#`b zR(o!s8s!G_-q(dr4%w^;N}AUcZq^w^lTo*N_hg%~tKR2&CWh$=LK8nPD{$ zE>0N}-uQYpE^)C@^q9ah;IOh(yHfA|wR_iDD~1K}L!B`7U6OO60!CY1>e9#lRwuZQ zJ{6U=V`q3a&W}{#AD@Mldz=+uexTilq1_QipP3Invyb$Xnnw!Wp!&M-^G8_lu-UDB z#+spVt-K%wj0?b@>x-7xBdQCzd)Z>G0D#~<pFG zHlOXkT`fh-%ZcNEkjEfHcBarfwauTzsu!nbYi{J*yR#oZ52Q#wztJm{0QiT&^@GKl zg3o3fN!6YN`hx31B>@{MXpU^Op^NbOwTo;-w+}U8Vg!@vaPr#+ndKwwJTu6f6mU)VpjAy{ z{Sn|;|2*TQ9U7$_9PJQ#?h8XBy)lf(Ckx6@u!eZHA&USblFuag+X~sVhPHy>WC)gt z2TlZ%8hH?NB)tGjP$OTpI6D6JKZ_wgrXRXvf8^aQMPQOkq_w)MUJP3IUfj>?P&)hM zCzo!<+2_DiP}Lz!s|-pmrsalU)7Fft!AI35Q{3;;Rp^K~SnFu7k$tIl^rbIH_Jx2~ zhQRDKZK4mq{@ndQxiCLTl<>y6;g`*0J--#OmkYSROuQzY1&M&s>~Oi${>~u*_Zd4Jw(QRuQ}bsNos$P^ z>`wdSqBdtjbExbz9WUKlMwF6qy{FhuY^oU9V^zCgSCX!+4^D6k4H#UQsShbR8^W=- zj4yn)*g}qf?D~5sh@y6zzCIj#%EI(PTfSb~=Gf|d>?Py+3d1%0`tN8aG@ zwudZcTl~2(k>9%z9ei-O5Ea~$*SSY*@bg>I80x$1))F50sw@9U(&pIznlE!q)o%@5 za~{xs5AE~hVH}12JYAQ4y6%u1t42FGXaG3a$)JpPheIdz7Y>^gpIpH_UHmSqzSCM*jPYl&g0Ov9)9%Od zvUeX`$o(~Bd4Hys1&BsU&A74wb~x;N#qMQ-^dlZd%F?>ju96v+TXMj*jyApPAduLU zj~v;LH`SE?_xi|G2=7n?gN6;axNy;c2<|+^1zOrt5xNXs|KL_q|VNQXqEVH|V zykMOsk_s5LJocsK-ei+L33+o5ykVB)zvAmdU0x+21%fzIuiZhO`EcSti~jBkk*&mi zHKe+bD4H!Dg!7}~e70ka?$ZOfaF$>BCjKa*<|xHd^4)ke-PI@7Dn`k))UW@;FLQ``Xai#k;e+nn@kpFA^`9dv1F2U)6kzTGzGv=4v3 zpIz_ehA;}xMo9xqS)DuJA@?jni7ss34jYKuLH0J4<@Q4`OS4Gr0J0+IKE?9RB6!Y= zyY6@m%x4lUm42~xE8yCFddS%KuyZ&h$M?qp!xMV~drv5LVW7k!Xvd0LkYbDnRarR{ z*cFMiY^dZ)Ls>H**~ouLmw86gYT z5g}HRGmtG-)hlRfluE$cvb@iDZ$|ObaO1iE4fJI;vQV8r(^SWvxjSy(q$R!3M_Al$ z0~k7F;t>Q$5}@^TakgAOa$X%;ei9O>hw2rST{aHD7Yp?js`gzGWdsL?DHF(gD+>)V z)BKjnMhG3VF2TU_a(>qhS)w-LV6S6Vbu$u!JvlSWL=IxohP6T@3awjO31?X7>nfc4 z=!*zz*6F~+tzTs?>Sa+;5HZRvAUOfR#eCiA#pFExFKQMi^bP>@XDlfA-)bXFk#kp25+O?66qjhO+r-Ilr8s=bz^g1-J<|2sqHK6ThN=jtZj- z_sfdfTG$_0aslzU6AewUw0eLEZiAE@(n(Zb4%(w(LK2CVW)1SL>1`$B^NaTQ+=V`Z zFi;k{QbP-4MVT#`Aip;4U|XUq=aEJw$)@yv!S{9$Olb`edjw3V2)iAHuzs+S>+HdT zn#y|5;&XlCooWov7VfZS0KPY}{c4E>g>3)7i1*5Q=F1;G^Q4A+?Wm?TXXfa!y5(EG zF*bDUA>ddmHbbWfLYg9GL4mAy0N*e_#&`)O2Q4nW5YMg||1=UjX~pK?0|?*%huB0Y zqtz;snI9jAfNrvYsPHYoB{qpD+OYMK*O-T2*3SWAKAP)DXf9LhHh|m?>HzH^wA+9Y zDsA&1e59Anfd|4_@0=+WNw5()a@`j`QXm_*DeO~-Sk zY2n^1z6DQmyA;c4#p%6t<6feK-<5bMF*4<3LGg%<{D!ta%Nr9wq64s@gcr%Pe?rACm;l#ZKwCc8^ zmom)X61<~-^@ZIFikOqYzA^xtOQGm#Asl`AfgPsQ1p3p+dt7~N>WMBhb<`!I zzXQ0Zy2Mfd$D0kIEehan{mW!-gEgZ#nsSCUZTmjX#$f`kjiXz?_!Un7tNZ=LQC)pBvqRCz2@4Z0MXO`23|R z`5=-74`dE9>cyom)GoHIDn)Od1?=9PjUu zhA)Sx>aZhy4l}xS%o=8d#3HlTe;JNU<$Aun^6dU5 z7RLIemna(CG$6;q#h8gW>jni)JO%Z7zs=dqz}d*Y^@sp!*&}pJW@5!VX=nb0;cwsIa_IOxx9!C!_OjC+Hu$h1Ux`4jD{ zDI&)nE48MSpFR)qBBUJ>jdhT&-?1!PUs82=nds}|b1~ww>9T6`Kws}0IXv##RDZz# z8EV`E`4~UYHu4ATntLU%!qI(~7Z=^-G2|SBLe8u+;wD*=C!6FkALPOi%Is+#ie^|V z=y_h~-lkvM46k=yu0>^x5V|y9ENGLcI^==L6zuLEN8*WItHn}7A`Hr_Y3hc~54ioV* zYr*#g0aaRxy)_r6l-?f(rQP#r+oanUe4|62!6`uNv~K|qdipzZ)Q%OHG2;bNzhE#6 zIB79}po8fjL5?C#p0i{c@}_y4Xwv3axjLLhtnSq7e*G`5I?-Iuok*ha?2pq6+p{_P zkFclp=}AiIycZ@n8vL%qB&}W{$mz+>I|8Te1$@P!41_ZC}W!YF21{;yMDkhL_}W%>>3;LB#TW6-f!l{D0F9_%cJ z&)a~eoLh=ye%L6UHGrBMGeF%7<7u;F0q(EzEAfzBv-EccnNYrfMY_p|FsQLr%oY0e z9eDJk^)(BE{S4z`Tfns`fB2bu`fEvs_WI4!$Wvs++l-HZ5g!ZlBCu&~uoO(VNAwmf z?#*7G2q2FSv0fe0X9}14_xxT1T{z2|MQ}KmXoajYJ1R8@jo^SZ?clZQ9c8TnSlbb) zbK9?dC#-|M+ugYSpG67h7M21LlEF-=;-&{%1k9p~+frq)SP8bK{yj+L0B$=OyB3^~ zwq{uvxx9E^R}f)Qj)fxYQWC>%k0W*Kt4~67py>iKC`sT$G%&j&N}LdVKkP^*F*QL5 z{Gy?xvnFMsF|Ahz)dH0p|4FxknIM$uK>ootYnwLakcrtx%;r&76!UrhOro>HV2!g| zty6s!+VlQm+FWkZ-h*EtAp-VDDee0< zM`|N{$ls#_!L_pr!6?wG7PrHDy41*39Y2xF#)O|p<7M$H`&fY#&b!bpzA#;0MoM@J zfO&Kp^IDYy7*g39FEY>|pUkH((%bf`gKAPQY>GNfs#JO?* z12$5yP8Qnfc$%JDh<)i?F>a4SjzDIo27Lxgr{Zp_I@p{;iQN^3pcGa412BFk z$G5yD27ie=DEVuFSs91YNu0lfsg#S@KH}I`u)g9 z9j#7QcZ7uRMNDba-Zt%EMmz=xg?n=_ z->7O>m#mKdM*{TJ9B(Z~WIY0*>y|+0c`9VYLY+7k|6Z-P;t9DR3&M06Y{)=K6QAc& z+7LPK^IxuIG%i_b`|%Xw!%x+)!oC%80G9*P{@KhWwNC%IhyQ@fU!s`*xC_d^-9?09 zmc=(pRSGVb)~8%N{^ScafHPI#OD3z2sluubB*y#7m$&P8f8#CBByCT@03Dbrz4!tf zN+poHMF8P?ZX+mw!^Po(h*cA4a8na|{vPeLMfLP~=P6exsc8_D`rNoBNGlU;N(mYN z3gmTh1J4h3PO+fIA443-W%$6@dmptgG6Uy7;OlYor-ccpU{(fob{59JPCw|~{XegC3;v%T z>GD6-IWG=<5`N1sms&hVw|e6qotF35#E`V@cfWCpLKkSARERUs)gZVFX%bTQi)!mE zXqDaPz&`%9kGTUk!6Wxgd9a_xVfC9hX_HjB$GJf-;x?GUU7*~_uu)q9x%sH2bY5&8 zBj#&J1>eW=&4mVj68=38&5?`i8O-7YQS@ugNXJqFwQpMK3}nw))kx{bl!e{1h!vEF zhh>NLJ)=>d%$xqmUZg*HSWLct1@LUeKXJs$!dAz@S z_B-oY`zij~zCl@@nM*}`>cVLI8jca(yi(0Wtgx~scpLpk9J42BSPl6cy^reb*R|&6 zMmtFdF|q7VUBt^@e29;8zBbcts*7}9PC#`l0UN;mIIZsT08!dhM*2QLN1qoXX!M~J z&ciINMo#S~1r<8beXQSORSyXZ&n7vWCeDoseGVIw{_rX`Iqn$RJA6$hWBAcW1T}$* zNoYA0zdVml_XgLjZLml_57M#?RAc^Wu;vTZD}s&bKI*_>s7Vo5?2(0E_*Lb9Z+sW7#i?#}gf3r~qzq_#Ku2xbwa zU@N;rKz>t8&F$I`n?b2f$wg$Di6wT(L_Y?#0jInKn#ee+&+1`<(aQc-z3j$^Psn)} z7mS+Hx~E*9E;8VEui;AbvTlrQbO|9D)O0hj=_h)?zLIQj#}(W4tqv8>EDTwVxsf`p zcaX86%|KZOQ%~q#|BmU{*$N6Qf0sir8@dG8b=6?g%uGd;)RyGf+Ws`xhFl+j&X|5^2W@V*QjGbJ^Q%-Q^K^DxBbNZ3uNQfAq^n zNU$obdi8PpZqILe#z)3iA_^>i@MZhAO+pxIZr%P5fb9&>YS745ySQY+Q6BCA|Z_M&~@dsks@L){m*l3DSt zD*KZYDsa(=t0LB_Bj5`bUGvYL+;H1m(Q`=tC0A6uhR&MWzeJ5FeT~1->PH0FTqY0Y&vMMPdrSip25^I=0~r zctE!${AUXB^@oe>XOr|wCBK*P*Gz@UH)EiKt{=;%~f%`jQ(vAb{$ZB4%gL^ zE!jZ6cEtz;`89;43aK?dXARJ#P_mN8VspBoD(Y zh6E2XT(t{&vFak#KohssY$hne_PM|Ukpv2EZuemNEDUv>(*n))w01m%0!g#KXzu2} zK-J%5(yu~kEHHPiZn8~zEa@)yQ`9jUW(l^FlUb3T1_*MUBbpx?ItW{(oBgTZEL0sX zkryERiZt=TgT44-TOv`KY108}OtIJ}0=W%=`%lPODhuXyY28m8orl<*&(E2Qj!_?-+$Cy7C@OyVIt2Az|cDHD^w^Shl zzU(~@kZZq>k+1J#RFBAiY-j=c3_03^xg1noBtH=@)4K6ku;Q(WTx%lCj5)4lOPf;v}8h|vLK zQbxwElh&$ls+8(@JDf+CVOzcCtuy@r2d*!=iomts`S1d-;f#S;#y+q-Uy%8_uNVcv z2|d?)uN~3oUUq|(TL7B_{{X-nP_?|rLz5u}eFr(5VFU`*Evbp;V0QC7J@ zvp=ajddR&)ZtR@L=Ct=f^Sh^bdj=#BcG7S!fWui^8!}duvw0YjFhJo(1Ni_)ZqyF{E%vb8d$eJw-T&H#%VOE&{eDjk z1uANw`(uFYshdlIt%27cpg3-H>qCOYk~krBPitN+Co>TSVD#5*0neL2*DROd=L&+A z{w!O#9?)zSYjL`^3n68PrI-`?0i!+y^8|b=VjuRl4zF@(#k!_T*9Qqkr(g?0;VVqS|@LPf!4Z zIM+(e_00iXWA+C=Ax>tnlvCKc{LbECNp(<8ok+5v;qj9k;bEV67-5{M)>I)g!U!an z7oqiC;DKoDg#f_+QSO_*d~1k(JY|pLrBz&R%*=yO?(~N9(2*%`Cd|?#dwViHB&HnV{xLfA?=OO)y>_DyA`WBOA3_0QlQtO_vSL&c zuQ<6r;ca%+EaDT|r0AjZlbOxeHPFzd}+dCQrvAzqs(#z+*;mVF)63(NV3o0%KR zruJ@k*~UfwRIB0EJ{cuSD}eQqlXSQMhq@gSxpGYfaVXUdLnJAzyI6FjnU*|%H^TT}`A6rsov(&CjVzC2TW``!2+O1F&N&n@$^kBRPGCYzwv}}W&=RE@t30Z7czzpdIr=y|AU4h z`nCQ$Zg3v+nU_O~T|bN7t}jbLGj`tS3#+PT8xP;?BV||`vc^dXeKf91o?O$&C3G{V zA`fWWc}4I(0^@kgzl@ybIeKtC7lVC1MYR5oYR6oMoE+eML-+(4+Ug$5wG>GF|2A3& zSImj%$5;8eBLIHzX4I=T8(hDo(~_>FHL}tjs2t;mSsX-kB0%^S54$-eq`s^u;sc?S z{i&&|{C`X-(W)a$!!}z^9t>*;QwVXHP)TU+d)BVqG;|f_Nx4+Su15e@xngT8j}7v| z>dqIRIL_@EoMXkI>4NYe!w}w?G@AzD6v4A*uoAuyw|K1@3li#>>dO2_0Mrd+H&h#AO!D9Ch;1Q?PC zM${p`5;XQBN6UFs^RHiz6h1vcTZ8txkcoB(QWpLC}4L**}Y}HV-&3@K1NP6KWLl`1Z#~< z>AHg3V?EdWff}9nr@hURV*Pegh~9jFi8L^i z3Sbuxe-|X+$S`Q`gKWd>#9J%@MAi$o`l`y=b*@gFpxHRKOPU-Zp}2Lzcx_+x%Mh;c z8>+^`(cwFlUhPC?e(pk<8Q_YP^m$dyLIXxr=oO~#X_Jyt_5PV$3-u0x(Fqjh9)(i? zE#@U0yZ9GkAr;#H-8h#;Hg=>e$EJF(Zt4Xp6D~Cj*Q_9xSJ9=RbDBr5RJ7eSu%r;> z=IY1D{7t4y#QSlVNn~T{;)ckK4-%$d3w(05i;oTS6m%fJF-+nkdXaC-JiWXP7q_o< z>fbV&Ym{PAUDd(mWM5%#c1;^9d;XXJFuEH-nMTfJSL7%Z-_|tPFtxN_l@nWRfoBrX ztAXE93FcuFxCDbrW*+3gVAK*YM*+&WX-e_5)CK6)^2bXLZW`!rP&qcs%5;xC|Bm}j z_!AxME}3p_bFoKrgJtuEw*Lrjm@zyqi z5qwEF<+ze?q1e<>0F^EH=>gUtOg7I5`})beFS;&!c^=c&`K!UZOJEvv0|*9Hlu`~T zmQI?1ub~Rv{C_&S?USqXtJ497+fHY&=4Q#QxSm=)oV(S0xAL2Un2cA!=v05uDz~cl|*xUfLkz0(Urr^;R%p*V9_`Sm+K$*vEC66_n5)D_CMK^AZKQV||;5aGD z)M2bX#b@3DdwcF;LiaI0#=5ImxJTQEY)<=w!;{c0a{?M8+3%~KOlo@Fl$@#7Y`y&H zP+ysK`=RB{+3i5&t(`#1W#EehAibsYl9}F*`HTq6%GNUC50nW8bB9nvFVFr#tN88K z3-15)2{YTRwYW)a8sp&qrZu8z5CXq^LWiQ#s3+9=M#dqRBTIn6PHnmd5bSbKu`8B! zv2=j2SWFe;-SuZR-{;}+l&LqncFI`p)^`lV>}cuS8^1OAE)?(=_Pq&kZE&Py@yw9< zff=&EtiOI9@vN5CgJ@@@Ow$A~%qHM|oSPbPuI&>KRw(89iv`pl-sv%ik6XEp# zE-hP=ciCGyLW!H#S6FvoKs#o;TQns9F*V{&QN)VoQ6$^wY4FXN0KMZBh5JbzsAEMa zts>mD9SoU?OhEDR4vQBIZe$Wm77%7`LDmvg3e8dJ^mTdeeVFvLdydXWXhd)Jb7{5- zHT4pvX@wZYHaG@Kv(XAbr;-H+`Q8GJyehR8a#oi)9~-|i=P0ZmnQT72tKBfaP`a+k zG%LU|S|};T9%s)74D+*W+oa*xlQUtft0OwvF{(D4*qm1;!*psf2Qoe3z1ti znAMORM}xtA#vi+^wvylzij0G~0|9idTgA+4=XineM@oBN+rg}=Yv_3I`gAEhnTjBT7y+~^C=2#6xJ&;+MN;*_;Z+CvnQ0qBi`0cOej4`JQl zaWrk+mC+v`XN=a6kS6?|)GsNudt*;LR>4d9$D*;^+@hh}7Dn^`3m%dsDAgB#vHLT* z9M}u>n3ZbUMG<6vM2bEf?5(Eb3r-N7Od@4&c4&SfPZ_p?i2RnIx|kEREuZs`2>3~r zhHFOufd)@~S$`IR`p-Mz>>PIp@#Uz1-zHtc zHXR`(Sjs{$!(69Mfq4#*1zCTA7-rSrDh_>}M-U#{V~;zA+Y^p^Ow|?=s#sC&X6c*) z9zm`y$m~vm%q%9-Y%>H{_&)b$7OgpG`K?FFQ+} zLwY3hj7-M0FCKO-!p!t*4eA z=VeMFOm_ti?pw_MM38*@go6~&4AO}8lkuM%!(0NCU&fKapQQL9LP{`u>A~f{rHKlz+=A!1GL-|e>)bg;YB@Nq_UN3NZQx#cmaiz~Wfwcf2v1&a z`*bngwl-GI)Vw05&B2${DYQ?`8DhBhxHSBxi&-fcQS~pUN6&rc-ui^kgr$c7of&V0 zhuyp!0S#OD%1HpSsy(TNUYV)HBLOk_NSG{ie&-8jBM-F2qON-%n3$F87@ai?#Ey!}!7l#ftrh{$}U3r!(_8)B?dg_$gNq#5X--j?QU^??P zCNhiRF|AO#`bp=jASSCRK^@N41Enmt5wImgesKSB^xShiC%Z6{3v*fsd$NoRaAQ|Q zbRgMUMK89jWCPgN1kAMo$)~AgTNM`|gbeYlJCxbhNZKBl#YQ;?HtE%kH*02AuEZ0v z;uk?lo)6HG{ssx$vE+hGk_&LQ^iP5LsAgl}@GE98b!itn!@|Wqm{u_%Rd)h9*RApxuxi-*NP*NqTdRD7Ht`H>}_7dQ#ftn#_m z^fj#h;bV%lOx}*86gIbMt8#O( zg&56M^x*#GY40RRv*6gx@Zn=rFkS)}O;&|(gO{|7*MILx3Ph_zm}C3vY9?en>dgQigBSgyfaf zxFK)&tud4cKx5!907Z=~kGBen0Rup`^+USXGwj;?A>`c|KrX9~T!~{B8temV?moWR004s2mh5Ef#i73p-E4ft()rIKJTAN~G&Jvenyul^tc5cLUJo4H;Gk%3e|rOr?3A7f`Eu=1yh@S6O-m}EnOgK%0pir1B z?eS>3s{S^`F#cv~%2I*tG*gbhWn1rq3z!l25kW_^u*wmj0kX)2=XFIjUSg?n9nOJZ zC%CkT$k(-bbJhyME1;&8J@ z{`e^6i$pvYBM7_mWd2h4*$iUv1A4wW)_PY=&#mM&&-_aq!4zgtoBp&7bZD@_xVB=A(GGyZ1WE zR*&tIdVw}}L(n|p{SpXylpp00o>x4i1Px46HJRV$Ot@kEV1ssma-b+P_%3!`;%Y0t zpGll7Aw~%1mqs#QzfLfWW~d3uKWk%KWvYE2NX!4} zzzE**3=}1}#m7svVkUOCf=zlbMSWX&OKeu$AR_*AL?nxoVU>=w?)-c?lBotaN#luO^xj-522qoZv-9kCdeQNt@!E2_O944LF&z=36#OE85zHYGSh9;m}F(8z)R zzvSnv?$cVoc<@p@MjZ&>Prz{ig7CcFiqge4(GZU!(6(&0jxP0YS>+N4`8wS2}v_(OAp+c6S!ICT)DkV&;^v}e_0E; zEku}@eWzIv48>wJx2GW{dT9mx0bo@*=`TxzC_K-{5$t7dUzuoI8a|7o17)oi@P2N+ z!ZEcQp=?2L7%0&6Sa#%&G@0UsC8w7u@9zsr^1z7r2g3xX5p71(5YGLgpm*#F9{;gW6;i4`h;|K;st>#I;LSJdnjD!V7G%wK(sn%^6nQ7<0dM5$Va*_NaWtZh&AH(90 zRoC$N2DEko*fFv_jkqr5foM~Dw{m^fx&~=-G}LptcgMm|tqix&y|K>QrD~{i2`l3o zYU_rXe{CuV_YnE=lFSglXqFrP7@;2Xe(;C=Dhhhrj) zT?yLPxyDk~lq#a71w?DLS4M*~Qtq-UNOpjnYUh&u3wGIQ*qKSlfT;DQ7<~$0&Ol%o zibQZk)j+-YUrKcutl3_NQ7b&*O2fB|?Fj z-&BXJ$8N=nHG8C116O>_4XB%r$&rnrx7@ivll|v1Ia&0F_rj)7Tr0ikZ~ON$Tz-2l zIFIEoXxxZ)`|?N77@E3&!HW<(OKJ`jrkn6A-H5+d(axFu0rFmN>CknUIkTaWO;Q~j zC%AxySA9JAI19s!GamA3p<<xzBM{9b1)+ zAwb0Y7}_*F-5Gl+WJl5r1I2+BbVS}y#&N`HyHCf$L|*ZGIzmbXCM3g@SJ{}q+Ee!2 zQ=!jaY;^5o_w0k&R>UN;kD=3fVDO0(aO|ibads;>h*^9KCrDr4|7(G)KnO@(_;tv6 z*3Q4F!o1eOvWDWLr3b5*__9eMO5)6yF~55083kNX3%O9!M*pl0hO@6x6lx!Q>-0+GUYV&KggB|!3!@h)3 zSZoh?NLd(HUevi4!%Rv36}35jOo7%w^-t&cv1E+!k`jR1@UDjSiL(?CNXnQ9O|_Za2UFxwzRLS zD%HX;{)~rtTH3M7;Azc;?{8%uZ*Posjvb5#+YKWZ)UpbmwxvFoIQfk}=KEf8U3SLC z-&qnK5u+V!M^SldP%?}Rgt7B;yznR&uE2H+L1eU%_pbfOsSM>mO^(>T61$&hpwH#F zqy`yoChiqjk25qf+&3k1$}#E1eH>7BW?0N1w>_nhk5`f~(gcfKqyGGWE=6fNNyp3WMtTr|{FrtubUq>#RcZQW;(k zyflm1ll~!AMjhlktzyyE^s{Fh3do-oTZ|E!)Wb{Ch_9xEi~8ch9}awMzi|m>x*(W( zH#*`iIcvTl!i{338>9lXV$Qy&ihMfuf+?c|?=^Z#Ns4x8=(+1lSEZoIS64P-G!Aj9 zvRuDJJ*dh7&7Hzqtg0VT(7$6_6^DOL1YDT#CbueAgQf=fLd)&PR$+XdVa9R@M$=XR zffvvpLrDWo8VsM0Fl@(o-1+;+q|(kF^+Q3+4h#FfXPPyx|0J+kYN$Vw#ybSZ8L7&K z&Oz`~{cBIlsfX;ZDP$GQ*vyWZPf+JSv&6SpU^70baol55XG_z(oh0th>`-SPp@9cKOJV`$ zmdj~mWr2>x-+`}?8AzK6aaZaje{c^$C733}?)fK_@(YnTB&_d;enM@L*~4GRM5Y&I z&Dz`zX?6bKOP|@grmU&WWWz6OCXi}jrIXyH9Qa^dJKprU|4x76pJx`QZ-?L8JeUCP zZ`F}wx&6fL-&CauJj#W1k8ewuMY3bM?dc`B&QQm}~i1Gxq%~ zw>F|OQ@+fS6*?-lnETT>vN?%i^|gj%nG7`1yO zW=1);nyd5HS;8i>dYP1ibixRmdjhf2AIpUUsq{0I)R20frg|oB z12n1O0+^2!jNznT^2HOORww?52%ACYCYi>g>z%%@|D^~~y* zCGk5bOFeudIxiBgTw1b|AR>KeDK5uXs^#W#82)|dMSsS|p%-*lC4d`1?}}~bh1VTa z6kvkzeZbFDz|$n`SD|}&?*AJ(&f7Y(@q21uv^spK2MhH!>)ZPqC)YudEaurQnY_eH z89SsLcMOX%qEv0hQJSmdL~s#~wO>uaKa%?(7AoJg4{Ew%F`=i1e4v0T2jIM=1=$B# z=<4D36!su5(11AukiJ?Gsdd>L{9sidJ<1j@Ubxq}ilTi9f*kjqCf{SfF6>%>GZLy8DX4pB^U3OW%}`x9*M0dAh(7R;IQPX5I$acoUXB z60HH!jYS^gSLTN{Zj>J>;%7q=$whA9auoX?KjE)k;}P0df8+dSpVBbx>t&D8a zhYeh83Zq*m1h>hX`~xH4GK$b8tI5Xkz(D`tv?5FryVs{{6;b61*;YFQR-v14xB#yv zT)<8TvKXDRUv`hn>?iMy*7>KtTL|%&xT_)CWVP*VvSaI=K`|8 zu;HaJcHygD-N>*c!DhW}QJaSuAxp{T0~am;1SqDKbRPK-vYzhS2OJGuXe}Jsc5c`J z1mz7=R+N(ie=fN!x8&dx%(otiii(0hRJ5hr=j|%3JSrT4bYx@00PT5 zs(uia0JQ(YBkIt$*bM|2B?R(bnt0>;0jlSat#&FY8u~aDAOXPkz$~<{hmOA<2>T<0 z#n<5glIcUw+?yDOrb~YZF7Eu1cm3#(ip>(pmm{|e2&{v&&v}$150Ws86uB>R`i2D; z1fz5~fhU)Fx1-Gy+eIcO#fu(YkX&EdYct!DV0bbVIcb+w^z)tbNf$XQ`<|e${VqjS z&+bw1A}?QR`1;LToH!<{vDof=rJ%K{n@5Z~r`(w>N)b~06D5dVlKPbIECQEmvQa!b zP#O|tcwmqA!ONUL+=0m6-OLc2h!PDc)GjS;?Ypsm-*#+rYgo%WMkdu7NeZ6ifwBQ! zl&OK|JQV$Z17yEdb;!f}mn%B<`vW-kk?ZMi@1J9~AKZ9HG_~pYvQzMF3}AOP!=g?o zi-K@Nu&;)d4B>NK*rGK>7<2Drj5AF5zPKD)W3?NU4PC$|c7JemB1drdFXBpHj|ZQ; zF)C5Ye!*gISO=SbZbqHmg3P?(r%;@<6L#B=xnR#AL-Yz!oo(+YM?iiNm`}*DkO2HqIZ7UAK(jl(4u zbOD~AlB{t!0$QDtpYMVoVQJuNp+$_9cwXK->B|pm8aZu!T`=UvTFJ|1$(Prxd>8Lq z+AJFK9yLCn=qjvvSeJX^8qhYpJJ8MWR;BcAnvgw2atNQdQ1js(8@|k#U6zF#mb4?O zu7s*3baB`uk8MS4ddo*5DQc5vtDeV`D-d&{jHB7C%rffUe*pQvD}>R+g2rWScxJ;j z^=wk?6#@4$`BHDTlAu00Q9?TI61{y)A)#HW_B5M^eM5fD=ZpXt{)W7VsdZHbxO$J} znDPV@B~(%JdRBC7?i#8*0>cMO;8|+y49?21b5-XPRmBT$Bp4OHf7j3bobhuMwKP9g(=bc4O73=!rAzJGx6jG_ zMCy-*eP4q&F~>O04Y`s=zsL3VYSQ0Dk@`n(X4M!r{Df9YwxjAfOpKbUe1AXyebouT zixkAU=prYa<3vv@6NY)DibWWu5Rv{0DV2cxl$$VYdJC6pBB=2-n@}kIXIOK#e0))= z45WC@1=BrZujp}q0yYA!{Bpkk1s$M7ER)Fr{Hk{Odja7A;#mPO(xnB8cAClhp1G;x z!=E>5RcX#;rY(?r;E1q^fRN?uiT|qqKbU@Gw&%hrxb>BxRjUrRJHZ`r@AH`ZCat1dmc9@- z75F4>EBic@EaL&X00MPGNmyGXeaq>jaQhN8x&R-55=;RoYTeoLb~YEqpZobaxuVmP zrXqFU>Xp7Nm0NV@X9k6Y)p#q8X0;f)aD*t0nx*tET|W8E-n*maeBx^I81ca#+VpKK zpVv_c!Nui^AXaR7^asajHsP)WsZSJS20{B1>1o~4N9kk}Q)FgBV)F^LYz&so=XjuI zOJECma$Dz5wvV3-78;%50C`+~NMLb>KzPAFUTYK%17RdQ#hn1!eOH$u? zhM90h8k5LFH`#HqbODDF4fE_DQy1T*C5wD|XssAlNWh3(x^U0*;u>d4CIM#vbG(2U zr9pl?oP_>HvHjTX*1*FKv2P zFhEddnVR0oej!S0Gz<3XC;RPB8$zFgQC7}LR8l7g9vqW>IWVRHnDRBGtr<%?37*-+sWlaW9b#X>vSo}M8NH%&RgvP)~+x2|T2 zgyaZZKWK57oBe1~9*_kXtXKpbhDd-}ms*O6O`IR-Ef}l~P!N<=YaeT$Gz?`ToF}!%mll|pP#*PoYcwIk^vH}-A%;5pIgbh#&nXb9%bqt_B#wk55Oft|Fa`DXb z2-tC{cUQMVQ?{tRLh19x6DL>ZFeVjSn7FxDLm|gAwv}nMOzj>CX5VC?-a&=$LOWvB z;MnI3j`Oj{V+=Oj|rxCkVhme&%p3;e8Z4hkR2B3fyU(AvtWMz66-f zOC5s9Si_i;E1*5NypYnsiY&szBfE# zxufsKx*Z##Hsp6~K;^N*({vrJw!7D;tof#qYawm390r{HJB^u$3I8&ObrR2B4zt$g zgj#Mx$`_tdBjjNo4t)+lUgiFb>Ma;E$3XzdcbK*Xg!#Edcy9`4+B!KoVGB}$q8Bgt z?XqNBm&ZGtPo28i&|s{qe|;L`&m73=?R5wV21oBtzGE8WmEH@mbbDw;}y3OQyZfq`2(OPG9 zP*a-0ZyvE+EEm@obRTUOfv;;K^qkE|Gqaj1h%a8&JE=#u?P@tS6Q=@S+w0s+Aa~3b zil}ePKl_MkH*?``N|mFJ=&g#mwTd73mK}$hDYPaXNE;@YvXTTnr(0wO!xp|(Wh(gn zZ;7uyGmagj@@?oH3X>tZ``5|!A|9E%@5c9aSrG5S9KuZ_&v9b!A)=fQc$#TOxb6v% zgrb_s?dRWl9T1a{@EUmKE(5cGC}W3wD2w_MW?`57b^u>imQ2A5aU`_QD9E>xI+3;? zk`5T_r+ogbl##*j9q!9-Wz{DoWtf_DFJfWTAjQ)`;ZS`JVimDlDIP>_a98f(xcY+^ z9)0_KIGlxiXZ!A=j_CzXj@u$LY|HSp4}nE~;z9A{#eQT@S~nkmMQn0Qxfa4=!$UxxdEs@{-V@Q$!{!WTO@q)i+BmFYtU53m`9KTXPOW$=9Fkc{z^NR*`_ZA{QIwk7_ zJ;rCCvij!^T{KFU2;GJo#>gGRgen7_vWPPRbViV70_BHY#Tc%5pcG%7ukz<9Chyy8 zxZ>xF_po4hXhZ&)wdvR3oPYTQnv1o#KLK+EAd!e8;K0lcYH5{^oV^(oe+`#05qj}u z`awdwiB+LQIeT~#jR2bPDCZV1=A}{nM{w^<(=~!woRgvk36!?c3CTFx*tL8-ymEP)OQbNp=TJ_0v8ti)3VHdqsOmd3!5M$;ow) zD7%xAr)H~sK7Wne86^~$40^=_NO?yME zQ#x7wATZr4B0E!;#CULn9~~RV-e@@l-kqLl+>#wZERPK6YjDG6Edq#_N&bDm8}c}h z8vaEnBOayyw{M0u1dpySCYOJT0#9%NpZT!uan;$MBc`NxmMwXAEN>t)py4QM7D5iG zyg+SkBc&{F`djek_9bCOZlKA`!oY{Za~-M8(_@zA`&s%=IZ!;yAUg5f(mMHeplU0| z)OiK}c^PE_10IgyHQ7Ms2t>lPWR}DXQ0P4nDcWmIhL^vQ`QAi}-FI6#7yh5NFZ*TNj~3K+s9fCCivQl_ff}GGM-lB9R5FaRvLS>* z)$mRxVBaU^3K#;NU0s&W&bN`k(PPJgXcS9Xv&gSIVQ1Vkx3(g6_4Kao1*!A%$_#~F z*`A&k#M(ym&!(aIarus!PDE0&kGAP`-h}pP(%|b1vu$pXuEj*uHx6_L z#ay3L*|`3Ezy){`&5&u7<8=j4V3}$tn(m8-p+k=Aa)%^F6;0B|pnx#FFd}2@7y`^~ zu?62s&NQ>(%YHj9Gbs7_%ft#LZhy}|g2uc2Jzxa&5TL*zqS=*3zP=^0 zMc$OK@7uT?JR_?cEG!r-wL~zCTSg2w#p5I(TQlss3S=5uZe@72NQ6o|Me< z!1|938C`-=PgZSR*MP99Ui!^D(}KEPF5i( zLtCqtdFmgzdk@P+ci8UKN70kDF}0&qyz>gqtRKvN*oseT#m@_9hO~UB=X0#w=v2Ay zjsT|)UpfJ^!v7cwxWP}Dk`ikN!&gv39ACG#^yZUUlLzs=7wl65TM2mlp+Xr8++Gtq z_BYSN_cyE0{Hu-6QC+>XDZSm_pb}evZJls}jd-0C;`nswMjQSIHQ?hJk!&6su~6U^ z2UAanKK&d{`T;-?om6bK3owjjG9rI%TF77lVJQ*7cM|ld$R(It2)0XRC`zRXGwnpu zZH2RMb}6mx%vRcIze{YcY(TKMHbB(uMH>3UIiN^^*})zLC>t-h+0ie!x1yUl8Ed^T*5(*#=Z zj38H?O3}riX6Nk4rJ7s$6bziJTyiR2m?h^~CnWODj|E15A+led2H-Pm15dNh$_@)D z+-#Ld@*%1@oE)~cVVND6#osGNp9D;M5CBmJhUKCT2}9#aT;8?_tAJ}G0YNoO2i9d< zkfM&;F5wcEhv@UGKTsYUK0i-k)?)|5eQ|1_Bg-G~JjFE=e9gjb4Tf#qnGiQ5zrY-I z{&Nw>s`#3H{@*6%8472O45S>NH&EH`CHP)%_pG|z--@|pb2Dl@66p#33s0KVf!9!{ zeVUUX4qUu=aj-E=OHjeQNgl{I3g!|Q7l%}R0RVb9cfpNy$lS~=g4AY0_ObDl_dgHs z_ByOmI&t{Jf!(4(*0YeR+S*ENjBqf`;#l@QSkUEuj<;W60F`Ou8W= zMHF%Kyw=b2aUpo@G%S%K(GQr5g>O;zEhT*KxeGKKp2MfCe>RwL-4Y);#?Jx`Ie>aD znrJU<4O)lAq04V4zN&y`k2u@p1IGF>RU|DdYe(gJ+XO%14+6;%vvlpi;KDFi zLERWg26*DZMB`c1$31X#f=1fUW^Y4}2#!XT|QlO=0ovOf0EEBTu~o>0S=8H zL|Nf`4n936JxtH<%1de;5lYZmcP<7UEL%x=0QF*7JUC#UyLfq%+53+;`{4S7;^G zWbGD=nY6QfkgM2|{3p6I9&mrRqC6(E_wp8Kv;})xOm(^*l4#K{l%Nb$s~@H9jK5346OLen zUd*N87hbb9Xw=TZE{a0(XL<2p4t~0PqoBjj@P2_m4My!a+cAAs@od$f6Zj{K(!I5K z#bAs%ZcyiwpDO70R4Gt$p50Ib2aOr4ck!=Sj{`Lx6r@+f~LR&XTnIRES{AfuJbzIpF@qVC6;GTPUb89 zGcWzO?5;ggQRHS|vg+lEii!Y}uq81a=V%4(~ZJ$Zv@mpS(eYVsvXivvrpm7iH%lb{TkaDScl zHmeJG=rj70$=LACE5juWYqNRf`V>fJo65aw!&YNs=eM>;l_}(zl$7%^ytu8QpOr&* zCSDZB8o>ecO@kla2=;+9e8_w5L0hssJFa#(HQ>g;J-vFbe(tX?*;Ipr{RO9 z2M$P)T8CfH`%HybKaZ!O2~yFzbuT4--wt@f2>$g?L=t&I#(<0(|i6<}15 z6tn3Q5^O?{cuMSWEe46=K#DNsMDJ%1cg>76?PvCDJxSB^8ia~4!C!wuh>_{B0^Sp~ z-zI(Q3Y(DyVLlB@gc_8+({YS{fn_{HyVdU`7GJ4%1T%1=t^V|OY9YpXPC+t;Eek!| z;1ti0=QPaoE!UH}=DQjAvFB&=9J{q7nt~xg1*W?BHn1%QPx{gOwQe8_O*gxyvK)%w;Y4e zd|o*qWgqbH$9BL}aU8v+gi79-)OtuCq52~-mcF*$QZ4;2PyUE~X!jxP9pxUhl)EY@ zln|uaio&g|?g2E1rjG*Gp5qU>7}R6^ee^k)Fuz5ZES$C5!`8qo_yGMa zFrpuwLP2GP??2*%JCrtt#{lgK2~yHK+d65Awstf65#iy0Rr_Ur{ztc#vXviX>?)*m z$2l|Lj#Qo4@a~68D`95_!94RGvg@?Hf+-6jYf<`$IoP0Cvfu{M^wu< z4p!(n)EYX#j5Pl;c|98XUZnrMU%~GH8v2b7dt@LpHhXGW?*NT@VMt?eUFCcr!}EF) z(hVA2dmD1Rd7w6l!vp)jfvG#T>Soql9NFG;U3i@|_vA}Ke-J?Be80%UG|+;8d3BK(>B zUV-6AR>I{+TRDdx??|zW(DvL>)v4CdkWB06(K;ITw$1$qXVh)Ute=%q&@D>Hj0;QL zWBX2X#K*su%BR;sHw8W%DoXYHA?RfkP{ zxIbqnY#rzK*A{#eP_{;>sFi1|edCB}`DV2p8p%hSFW}e$cff%{IvTaLWAOxiIv}5d z&!J!f;9OzA(entd^lVRq;}$Z-_*E!fW5tdn6@=meR2>>ol^HO@_8aS=5rbhKF9J9jCjr7mw%ZbV zXys5o1eH#bt-iNN!`QoCbTaqr``{sXOF@sFz^L2}l3?t`w&(g^Va0Qa8xldGJ$>eZ&+zv-6l)e6x_jIK#jl6gJK6u25e#n`J&G6os0WC{(dx#M_0%+ zIc(YIjYgB*KsRw_$_OwbuveSkE`Y@EaN6GaIB4h5plV9{f7p5xZ>Zbp zvH)?xU`VbDGr5O8DVj$OFQR_8W(AV3d;KJ1!H3Mg8IsqmO{Oib$)gLTk zdd0ME4&2aayE_Gk1gm3uGOluEfLTSO*Ca7D$3aG-h4PbYfGv*|Xo5b`1U$jPorVxh zPF!Trd$icT-Qngz)iV{k%!*X?)eh^bX`APYNawulTIe_u*VUzV`fS{cTPWQCCKRLg zDntu;B-YVi;$V&tg?dHmbr{Qy23(D_4G&<1N`pQ0?u2A;(pBsCB8AKUf;;;+Rz7hy zNfim6Ik^^7mL~gUF!rx1V=Zj33F;!Ii54>ktrS_>+OS`E0l}|3@saob^Ia`%y_cS> z{h~Cu-mk%sHg~GP*CojgkFyp|Sd*r?p1l>jAH=D_)ryEZWlbBkqG$uE+V$PcK?r6* zG^R7BBUfeKbQ~QrYn-NuFuC>R@Jo40#bR(AXM;UI%^{%0JVFsro%nXc z9?)?BkROU!Sb5&y%`I$&<4-s+2tw6CEvL@?pOxl3{mjxQTSRNUq-fFyeLf63^nnE? zYTZNHeTz=0w!J4}!}4&2-@sN_N4N>F+Oo*w~kw&qQqqYji5tNb7WhO|am> z>$6&yr40?wb8%kK;UG2NL}bQb6z<&&JFWwL{fW=xPKJx5fI1{tFE447MRcdl{#R`E z7?B=Rf%sUYepH484^tC{(iq1=zxqJXvhme~wGRdYwg(vp>)-uf<}1S|JHf zLtehCPfC2#tu;sjMEX)$@qXYDFJHd$5h0H=I2uI{1v9#y(alOXFX!imQMF-24M=E& zShg|dMe*V>%KFcW%TBBv4Y-kYQvkI?V-a4>eb_2>3^`v0iQnLirRu@1mI)+SlmxA#Ef@{K)83Zt;wT(ggc@oEcMAqMOsye zf~;$*ly)@8PJlDtbqL-V0QI=9FD=N3Z{NN>s;8q9pLw;V zuN7d2&5Fy++ef*n9eJY3juJ6EJDwVRIvM2&L`1}B`PE1^?rOH#4gns%no_si94+9F z6FK-3XDdavsEFtYY0d?XL>>sQwZYijV$7u>B`7eT0-QXmFTUckqIK%g^D#xr9NKjE zCmU_o`6kL?y{Z<9yX$gT!JcCd6L|ojwQL(;D{2AU5A8gC8K2n5J~C~H&-0icykB)I zH;;L6Pf5AAEI)AV%+mZQ_<)_ZYCc9m$CSSfB3ZSVU;cUAs&*1HAR_Dd8xjHQ-r=7* z=46*$=4QL&Gt36u?gPfIX!ytjfr46oSDTeierBY%9odPf#yp!}|7l5&NE4#GsMYP# zZqYy(9*siZ>gGzT^{_;`p0`ms0r_CH-I>Ph?P1&&TG(wW*d^|Uq-_0gsOzV**_9D& z2dU7DQ$D5y=IH$W{L06~X~CGDUN7zg#KkaCb)fFGVdLF007fe4Kzv!w27>hgobuCg zVSGAY3^`L1Xbj=kP;VZ2rSEfu;&7pD%rA7#_264vjrwxo<$u7qip$m2)4CL@V-~(i z_;z7VX*t_3k*K(Uevc;(3%-h$$L{leGKkQiarMu)Mve3acp>q%N}@@{FfIRuC&kcD z`gAeyl4fE-vk0RUKt3i$LI(#2Vf3nu>};W2ELLo8LJDem@uJ&<2bUhQ(#{-iZx@%4 z!W$ssfl1CMMn`l3oR7E%VY?t$o*nQ;J*RLi9Ig!h%Rl)MfR}>;B8=6mHKA1G@s+qs zL&gWZooBQ#^wa{&cN216j-}@&|=wh|^;`&Cw zl;FKvFlGv1=$n>z2D;TST#cUVT|%(kjLoxu|Do23=0Tbl33}7pfJoAbVsTZO>5a8} z`OZmXkWoL1`>?8Wr6w{yvBm>RR_x(sif}Uz*3TdsKcbVWfjqkQyZWPfvq$fKZxMUV z1UuYJIuBAC&#)C{ItXm$;UK;fH&a^IkYJxgtsjtQ)W}Jh#9-jqh?e5e6S7em?_6y{kw(y+2 z_-Z7Sevgt0r+6sxuKI_&)2EO5?KLU##0bW9_Pl1QWh^!@7ocASC=Q!hxUPK|J=JzN z--=psh~k0t7#lSLYNQ!n4X(`lfQ{jLw;X__In?Ny2P|`)CO3)1FjE}Dxje=b#M?YR znwTP5#y>x!EP7lPMAfkk0kZ02sDq4c2>#6=Ga0}yEs3S`u?abx<4$C@7-Gtxps)|jz_6DJb@e9np z@mla*TPFNY1VP@_$Yko;nSou`ZWiW3D7hEx0^y0n6kAmalxC-CMf@-^fg=y2=A&Y7 zdpS>zzG0Tk9RTiZH!S+z45)yZronmhFXy6kg5B)E5#vJprB zQR6WL-Zq5p(ejPKQ_YGBQEzQv6|K7dl96-);Dyz_KwsWN#OUqrZjEYLB+@y{UeV@%?c~ z^|70aP=>V83GL`$f2o0mlc5oV#l`25-9PNL5|@Z1f4pt494NQ(gcvxVnW_;1gKXtw z71-bp`18K=m2|UPJQ8CI(n(A?<}2sV$Ee2=ooKN{7o};B1?CkXPi1e^iH`YzR17NX?bB_0IbS+jK52d zMq=G^_Zem6RPS5#kJBBi5N$AfKm>Y7;g1Y}L>O^kC0SxX06wpxg71-u5e$flX=3=? z1P>Ft<`KhuZSexNw|T3yv@}6++CxS8dIzoT#+#!^HucLw882->wN|_~T-^AC+GCS@ z(2cRvO%d+J#hf>$8OQ1@vWR5=XCVL*o>Fk`7;rA3Bzet=OB)QEQrT#|`pu$Zqit?2 zs`*KIXR}RW7!nnP_dD`vD?e-@>qtU&IM;foYkxgWCMy~f&+Z)L*! z{|D+-f@>&|puvK!=@iA>5n)UOYvB7OPakoevDrTLxLi7elU6AVTUdA3EVZhhbY*4U z`()SZT1p;7VjY-^s|f zIXuj-_ow&<1_>;HNOYjLGX6~qnho7|Vn}^*>o~53?CKK%N3Bh2t8uG_0ePZ-NXKy! zfr$S7IXz%2VrR2c@es_>(eV;H>(@Ty?JQ%AfB=;H)xMg>DXUT2hcPU0*7%uaNwWYu zmB97itKgIq+=L1Z&*VoIa^kNF#usXFCpEsX>|bBZpKqKwx!KlN2IT5fzw0Y>HiJP{ z2NUwnqQs&)5&2#WbAP3~s#q3=Sg-~D|Fw%!NA-;R3Aqu4XRFpKLYDNd$xj!$|78D2 zu9z|S4dsr7WK79H-DMyj_%!0sUY-%3T+0FE;2oSagQGI!J1&RFBxNRPIiSt!3VcOG zF7DcnZ^F;4PCvz#?J`C`3Y7*G)Az$e2}c>+G+l7LbUv83cNt=ECJOwb=Izkon?76I zf+X_=4@;w&56n_dU_%`=-b;y*eEPUaUlu{H$GhaY42eUImnucL+ne13FYR-u{ZGYD z<-5=r7|&&oaY zF8AeUcXjX!BzPP({;3u3VQEPdtua1VSA;~Cpu#vvqtq7*t$hQcB49g4_u0Y!+bs~q z<-_{{;r=)=eXQR}EDYI90dB}at$1Sg2`?byUaHK*{E>HQo zo0R!7NZFuI4Y+;${fzy=59Y7_jUQ0JIm*Y^ZRw1}90yhGNB;dy5efO}Joh>Ck32Zj z%PU8Ba&iw*_*#hzhmm~v8+-!X@r&zn6_m?Gv}K3=TN9qig6I4y(9YaL>SN&9g$AU( zBK^)3kwTyk&S$}CPSOea;E523t`i&4203*4*^eG9dRQ`g=@+gbwmoLuc4F_E+C`BF=tyM!7)TX9{7G9twD2b4D_b&d`|bO zYkFV@V|7-l{HUd3gc;A|=(S7*Z;6ff0*|?Q+&z)v^tXl`g?AoCA19N!^FC-q>9IH1 z5bwxQ)}u@6`0Q(~dtoSH^HW=p=o^PI##cBzED5@G_$F67iLd!ZQICl(wah<;}KY@!xKfP+`NX> zt86s14$vPDPyx(!(|*_CO=ko2_0jC@-8(DSjJ?0?-X$QwsEgg3zp(93?ZcR(?6eII zh6h*!V?_g9OJ=~httvDrJ(68C_i&y)kNCx&)MFM1I>U_V?KbmRWh+Wvo^J8KlMK1= znWI9KD?p?V8<>uqfM|3Je2NNE~&uk|b6da3g z-k$)EExM{ss9X^I;Gdyu^nr!L6o-Zl0t(G3EodCbYZl^p~2S~r_ zc9zR-91+d4dfA7Afj01_aO}LyjeZ(N7pYL#(|q&*Ey7T`k#H~`*iaf7VZ1G3kk88R zQq93gXH{)?)xWOm#GyzXoL@%}1|eI7u%H;n%K=G zeYEnfPlR&0?gmz-Z$Jl6(Hp992PE7(#Fl9_bk5DnKusdIk zwr6KS&}pK)FfG-EqUizEh%WM=$MC{*=;!B7r)2yD8UH+Hr^gSvGS#1L0QAD~ZCh4m zuRWkl*Hi@~eM(47r*`ItK755C*jW(n)Ofc-J8Y*^9R3Lee8^wc_6c!JNzMDjY@e2^ zyW7j}_Cg|8e}4fL1Rzuc$FBn5`i^|?Kx$SB`uH)@6Uk418+qg>9UjZpKRlTF`5mxx z&=cesMOcsO!A>}{@;mYY_d3I!xF9stfVY>S%!;X@R=qc-oHHJBl$`ZV_GD)>DpH_z zyvA!GCpaG8rg8{aI6?udlTo-Mqd?^6Pz7+(U)%%v;W4zvFJ?-1&&6jI17@UYJvv0} zkagu2%b+$%>s7J`zNmQnh0JI80Q8vr&IT7$$_EG zXW%h=X04m_q@QyEe6AR z1Or}wirLsl8W^*6ohyPg8A_jI1 z!Q8NDN50xsKZ*=W8CXwspdUp@YXysl*s0j7%lQ2JyvQG}S>tR@x(*=nrer!lBc9o^ z)4D8W@%+qv7NGhWx=aG33QvlbE8Dm_T)leS{?FGX1y!Ya716nAnm#`|%A9IP=zW^C zsM)TI0^G%N0D*_dkI{smyy51?>*uGQk(=A`tD`RCjH<5g<9vqUt7msi3e{jS9OU4^ z;<8kCW~(wNu7mAQp`NqBX$Kf~C2k;jV(1p;3)g5kVJgM@koaofDzf|&pZR+}QO)M= zT>h^guN$rpg;AcP&G=f;yT7pmA1J&BwXNuyO(K;4eqMi=C$#=Zd*mM?u_iQ7@ehwd z@@RaNhfAMSqx0qnt=kAif;}=#&)8-SB2IT7vXZ^6=19t(>EO|W5 z|LNI8y+77^6J+YVd5RZ59fX!Tz;99+d)KDvY&<`LKxZkht5hR*=S5UGiH#+o6MOYh z(lhjSB<_1j1q*|x2ozLB;;}WHYI31Wo;c4prbtYrCO302l^rynF6q-=G&eIh&aYNo z{2z#R;Y9qs&u>Ly+%&n(c!3WVjNwecEGDVf8mO)m;I?u5;pSdA?lQn6xqb5oa~O19F8{MD8lj&>}FL1Zh+3@fp5mMUQW-x7FpcV=^ z)Lyy#b6LKsQ5f@MdeZmqh!E?c7zdUt(0=VW59HZA1lVE@+!X<0!fX6?X-T`YhS6r~ zrS{9u=f8aU!urY&o|jGsB|_Zv>B#-nhV{w%!@adWQ!TNQwOX*c6vfdBx8L9GoLfFb z|F#fQ!_{F9@Iu}cb=E+555&cN6JJP`(|cl|m1R(YlbMPTD)yFW%{7j&nOueKG#4<@ z>a_TdMcgIfhv|9KE)r4cC7?7zIHavjIY{OntBY0;40&QP?iN4|I8)c%G=n_89vq(1MXg)Gr7z~85^NcOhF-CRqL!< z<s@fYlFwO4t-%)dIf zW>OoqMw>45qxsUy_&!Mix~AH#;db3#GfOoN#dm)%v(ZLL9~lUKz%z!a?BCQ@-_Si~ zO{&PHZJp>#Q=r%K(-iOhxM|=ZJ?T+%#O;*4{s92Bhp2#`{zka}3Y+6CxI4aK8D?^+ z7osZubF3N7G5^kmmh}ETbD%sj>pbPfKRd(q?SM(L#>nHhsINpHwSGhs4>|P#G*|#i z3N_%;>wZlOcT%4wSkmSzzKkg_j+R&RIhw%peB_7~+J1A~w>>;qNnUgY_g+a!NnO}( zIVQ5@cD77oX9aGrFVq6h=^%(Yir?I%#zAt`LFLTjKT7?W7~^xVo+We%!Mmw5+pld$ zh1*|rH_V*88=W)(NvtDdYoV$uCAXLwe0 z%kT*i0V_P3m%9XZh?m)_k*#0epE%TJCP@GiIFU712P+eEceRAgxiuV|m6)|u+nr8W zi*A4b2(pMMGCHzw&*O`QjhVRxAGUQi{Tk>{JJ`-$CesT-f9L8Ap#=m9E(8s3O{v(9 ze_h|;uD%XqT(7X1x==geQjovJb7C2bTz_Gq>S4qMS(*I$L~jN?sEVLtaAmjqHT&1Q zi5J?4EAg$lajl^wJl{5qx^@O2uo3wUoLGy&0=PIj zJD+rdszH?~kZ=J|lQiJr(THQYJpxl!x@Cm9YH8Jryyq{`-adQo^ zJ7%_Fa-iik#1zCK)}-q!4xvQj^Myg=9xkOzvcAUx$DhZq-yo?xexx`(e-Wy|7Z2!F zriZvGuSU7M@^?!r7lf@SHGRS5-I^)mq=SmciJxH~H=f|VG3XlUKeY1yNjM_(|CVyF zfD0rTCAH29^j#*?FSZ!ZpR9;{wePMnaHh&EGDf|5)FxQ=Jh~==9F!+{Tb({$8SC}| zwzz&788J0|mIn4>wfRrqU5@V&7t&kjb+~o~5a(_#*v0v;i>Kr?Myre6FD%&0C)Llf z-&k<9)3M%1ziC6%C$a!)fa>nsNad|Jn8dI1#cK?ghrpQ}DOp`}9z7R}TFHhVd9=2} zD|$^wMg+3biqBSIzA#Mp81|J+=cH$mRJ!;{HxWh-Ipn5HTuLt{LO|4wi^N1Ybci1b zQCHu}c$v{o89NQSrk+}M30QaVC&}|CzM5H;H1Uprvh(fc<<;dF;MmJAMbp8bZwfCv z4c`mkdy1H*-1PU4!NDNj`Dgs_AP-27q=mSls@obA6DqP*^6!w3Hi@C5LGFok7hh9f zyWn^P|Mep~DZPw+znpcL+Fi@VxCM|VMn2OdJ!%^=r9nrGM(FkKlk}IfKK(s|4EgDT z$z7fm*El%Y$?bH25P2V-5~HeU*dW9Ij8VPF$cAE8WDQ_|v$BlP@2xstoLz`$SXd4PJ+^WuID>!7 zykI!ov|?NYOKq1#b@-I7uL1t2$HVfb+SIbU1 zYp5b@Emr#4Uuij}evHf5mydT?CC{6dKE~Ux)*N>qx}KYaD9n*#ep6WnRVy%l5{?uU z6aKe&>L0zE|CingYaMoQw9o*g7e-Z|t)6jvKj$--lR=(7y(#GJ?zJFw7~EMnmi432 zUW)bENDUzSFtj8mFV|v}<9P@XYic`#2mOrMU9ez)V12_RW$%yR%Vomr#Nf#V*)N*Ad>emrTci@NN6K!V5e5 z|LpPJ@!zeT^&BHTiMRA)l}UL7)bdrnnTFFy0_Rm;a#H$0KBo|_VnOeCHvDdC&VNi6jPd)wT$qcyo(Aq>;tig^b{&uLIz=5W@AjT!H(77byw89Xf|CD=6d!Z+104R$-z~V%rVwwma5s=hwZ|yGfnpooMuCf6jQXdD=tt z|K7H@-hWZL16F4k*X0A*8Cz2|oQ~WhsmGLO3DIaj-g$1|<2yjj0=dNv^wFdUEW`s(>_KKCB?jxM`_3~)0ZSed@dZsP$x>F(<$y;bFxk$n~4`%AaW?2T$a;<5ibnVu_x zPaTCBC~gw%`Ux%QY7ubLE6w*^JCpS(`B_E3#(5Hg!CN$ei}DuREemtI zLhX2RmJO}HJ)et?Q3IZ7Lt|yHzP}T*QFk-aeOk}Dc3Rc&%q~qaGUK4Y$|T}Z1;M3z z{Cgve3BuPD{xeF``S13QzvEzd=}@jPkG3{|-Yb1N;g%lRhZ9(c(7Iw1#&9jDp&$JU zc3?G|KOa_Nwf|wlAKz+*sM4;QBRq{u?zIE3IwX}B+JH^kt1)SOjNo37XH6U!B|L=F z3!oXE+}}F?&o+2>{|MvhRH$dKUuo&OYudP?$x)2`8sSNWA@1mMjVP4l^-$d#a%|9S z554mU4f=;L5j!ha)r3I#+XoMTW)H`w1LGj>0t4ZfGC)!B1#0n7EwuMWU}$brLeIw4 z$K1(o!JhmvF&rJw3?CLk9?qU8v&NzFl^?~#Hz}N4I?}%$+x~0{RMA1)HZlr7nXkn* zSH`=HS`e*)g|*o6VfLV_++PJ{?se))=846Fn&7lhu;kc!A&UtCHT$B(=`0Q)*gFqw z#2`&8v0!kTK3A8Es>FBXn-*xpC0$mYNsL%;-f+^q;x z0DNy;W_KwY?vOoajwjx$WLGYZ4-*iL+fe8B;Syb8n+fj9hxM69do7hgc$3rpaJ#tl zg*>$E!<%Ol&gnixDscF$^DixZ(+WNPu;4G{Xu5QruD%u*9ZH=#swNzKsIs1Z^9Mg@ ziorT^Ec{B3GKDyDEmX%EYH>CxObR@FT`9@7`C=Zlo-(DHw-ALMdtx626oM*f9NtL? zxaz7)LAMy%hz}CXXGnE@0ObA6p#MQTiPJaBfsD}9kxUslW%^Mr^ZC{Ll8(j`LlP44 z*x8biB-Ir-9=Rq9UptKFYrUO_ce6^+4?H?JU%^YaXe(8fEh(A}7cs=>Wsdt14Ep-N z$TJNgEjlgYhbg$I#ICS{6;S>2xy$_L5biHU;M$NKdKh$keT!hDj25qk8as$=Zp$;r zMF3qcOc^UH&Cy$|0v`T|`gPQE;aYoU);>9+7Z1LB&s86ffJz!_?p|0es`BXp;FCO4 zv>Zj$h_}v|hoNln4w20R!hMtT>1c8z>XqArXV-1(c2nrqN6p2oH|C!hw&DJpgP)c* zguU4HL2tO?Wv)AHJ_S76n0CPTyN}vCJK&u*fXt8wdA*)IkZAPK*(W3RH7el0E?~gh zvy{MsB!Xd81BK>o*ZA`)U}G5^ctxnn%;qg=&R`BMKQT4U_83T!nwoy}%nXbzzHLE< zTTXQMuvE$+DT(M>5Q@IL?@LMGTl*FWrHTr`>MY|AT10cgtu|Qk7ux} zf%`W283S9DljQBsYqBlHxn|clkB5Sene}ffH%>%ILNsex6Bx`+>?fK2^RlIXZqPsa z#s7-C|5m=NOsp#PV}H+$?|Np_F>xECKTo`&TbJfX{8W-)%boT7ax|LBALXkV<;xd^ z64$VRCCYI(Dg!q0^tTb4<3&?uTq`vD6v*8ACmGz{z^&jF&M`U2$t+6pwq8V@-FRF`BS=sfU(n zt5LBPQpYh0v$c*+ndbWMd~A<>}B#4-a$>Pzr#;(VfVKLzXQv3(Zn$?Sow#i z=;qm9+fz&3ssDcc5RIIHBc<1-x;egbAyp^bY)fG)bETPJP!RCT7J{t4HtM4z#rsmr z*XSNQ@d3!#>i?cMFyLa<;_tr(8@mR_+X1!r-=zbi_nlimr;GgI0bl>NaCCO;np`<~ z`%Sl+zCLDP;E0)-;JMdr37rMM3?CXFURabiQ>tZ=`pt$i)>?|Q%h^lcIPBUY3^qwZ`olz*`wJ!VA7wqqzF0lF^EpQ}MtH6}OO(16*8N8QD2) zCoxL)-yu9|zhOU2{Xju3G`QR4yATlx=Ry!yWhr7Xff z1i@OTLnIXi@}mi>R2k7AP0L*AvE8`$`@Qg`S!;er3M(TCZKPueDi3pDqpMupOqm*k zuz&V#&;RO@9&al&XTE74wQxsPRmZ+u?ikGFBwY>=}Sdc z)Y=TAN`X&j;b~+H8tYi-xBoGwoU!=ag$?KzeJ$&x&` zwTLbUWU>4PTu@5GaT8ez!mcXuTl3)0eT|H0RgeSExw9Q+AABw!93Z)XV5BUTyycx; z<;ufisjDKV+y-%I9m5IAoc{M}cHsL~z-(>#b@?kO2TRr4akK+GW~bNz=PoPMcUQTfA7?O9(8)utxBy9q`;++BUW#?W zw+?)HAy!#;I(09k9GcNZ{>A-9{fhCmDOx`6s~`5^@;O5rUP*1CbEAy+y_wRZCk3Zs%+wA|uet7g0Ied9V;`$6v;ykFjFO4@uL-!`8mlmB7$_)q})E`c%E5*YxN)7S3Mz3g#2 zouT81>G=se^5p1nkZl8+^O*0ciff8fVn_Egh4v?j%n;C7EiSrVG&R48&Sgh_JfeRh zg*=_WC;qaW!v}6%Lq(O7K{`gySj22-O}d=e7p!5m&1e6 zFyMvN!prW()Ys~6H99E&wNfUajcINcu}D|^YgcS+Tsv)&@VrLN6s}}jDaJc7R@1Udfibc44vw{Fu$^Cr zT=wDTW&$TFkXx75V#_jeCl=%1zLI?1y>BZSfx&;PShz~V zXz0^%v}dTWln-do$g)53g0|euO07}^Zjbcq(m8YdygVhssqrJbNa}%w=1w^L{jQaJbfHyfU#$ ztfliRDDbqM+7LdIW6c5jpiI9EN)egeP@s&4Ewh7x8VJ7F{Wn8yXk7w6mtW&rL4mWY zPX4r`E5&J*nM>v7M^9N0;|p$bZXZsxg6uvN0s4v_3hK%W?Qe^|eFOGO!%Fa-0|wU7;Bo+>Sp z4sh>tGbefT_@E|=2FHN9s!*BQHNB2xogm-UodD;?kOK}r&K;kJlj{5zPbn+Ac7B^Y zV`*KA48I3)FT5;%;6NMR2G+yS@3^c_F^*VR~FH$vi3h^p@O*7{s@RJW?R#?Ye)NaH=qIZ)Joj*ys@uzMouL^aYB428TP45;pENE z-XiefrL%Ri7f$gN9yY1OzJ>Cq1K|Dsnz7V_XdV%KSf-k+lA`?6zt8*1(6mVTJ!jKf zUsyn@)#TQ``<0+@^T@b&JD?mS)B}%oDf(e=y;s|kQg)vmWG=%PdwRHc4KW4uK~=3_ zqU)8kJ#~`T96xfFj4gpget}VF)O${QdKy1c!Ma;ngGiOg$)$5MlpaaX^}RdZbRn~U zJw_@Q4#7ORUwc{CP#GhBPuN)`^d&CxMjw*AdXW2*s3H)niE+Kceskhe4ah|N{G6&r z%3kobwKGV~?9*tlCP<#tilCNeaFEEyYr%?Dz^M!fK37|R5i<|d#h=*Y-P@T8tJ_=k z4)@zby|6q?zS^0W9ZRM8bMdcee!X^I1#z0_vsWqsinAKQMfnHjnPtfm5WoP`CPc)K>3#(ZzXs^7COWHTYnTn*xr&e-kTRIg zi=Zk=2wJ0xL!TQo$K=(qbVbWX`P%4JYnmc|=LbBm%h>U$dB7L;1T)Gf)QTJbI=C9b zVh~;WmBnVo*Y`VNf0gH0IrNeH^Z@HieWub0iS^l&t<3s3yP=QzMs~}87!LJS*EHRt$BBLHyE*(DDz-*89U1dW2?X)1fE#M+2ISyeD?GYy-qP_u-861o*LF zu&I{Zi_|Z3c5SR^Ym%mg^toMvv9pznR}L)0S9o+aF)d#`^LMY*ot5QzmKiC3AuCeG zm>i_Nvz};Sj;*ah*A+&VlC%W=eF2+1LYIzis~kj3N$mMp@Z}1~VTMm{~z5 z*c^MoX=|Lf(nT&WGk^MmP1-GJ#9_T|7S@a8rp{j=M-EkyK3jaBLu+T4!_v}HXa&*v zOy1g5oJ83;ECA?+l1+3O#8!6!VDfr%YGY7{C-KDn>6VymO`qAWZ6DO?cb-z`mUrds z!r2f}H9ftH*z`n$2>U{)?&Z3uf>!kl(0mT8)T)9x;ZWcn1$XW^au>augR%a zu}%Nf`KZ!jzQ4&=Ad#28R;$!(-u;aY6u0$jW5H$dk7O4_*8cg2sgHNvW&C-tWIuS(EJDibun9ah(}^%I(xaPZBtU`np%H|;?_b5KFeMM66I zdjlen$C&1k0dAIG=M{X=iHSSwHm0>+XI+XRMssJxv;c5Ox*ExznK&!g7 zyEpIgLm2c~zm;Vbn$}=ljFb}XmZiH;7k4uS1M9jL*HMD5*t#v|{qUFP{!JoUyr7te z8He6kuYcZ;em_qFi+fR$nBjX5?PjDS%Qy}6==1X*l)(7BJwgo}5C$_`Ai^2Ryklub z5T;p7j%=H<5$3RKFx1d1{Q#E)wymgy*(urOV2k0jN>BVZ0^tDWVy`u-= zTK@|du#{X}SA3!LhV`B}U7P$3+kRiXkId|lj_&zYmNm(NV+73}GsxF$`!CzQ?3&=YNEbi86d1`%$XfemgCCz&LG z7`|&U6xb}B4omN|?mQOtePmuMa!oYx^TPaT81i&1GT?|Q0VlzBFLs}x<^VWK9TzV< zPo=;0W--g>T-{Siq`UKW{gMYQicBgW&1zkmwk`I5gh~er-K7! zVta1HbbkI#Wy|;o80h`{Qpz>dtIl%D4&qF$(7t>S+!sO2EgjRja)=a!zv+*^dpx@H zifqf;rx_t}$(&Ytm^F#K$OUDX2k$&)f!yb)QzmOlx07uQnNkIRoxA`&b zEO+Jbzkb2Y;>}fcwH`Spg_j1C3`{6arM~P+zjRr zx9qv!KwiY6`OHYC3`lF&>*)ZW{!Y08KjD16zrpbwy$xK*j#8HYT({0b(9l^^ob`iU zGW(FpdLijZ>$}(Klg7j)dE_k;U*d-d7DL@#YPJce!|eKU3elwqDZ9&xS<)&ERL0G%x2 zG^ML^`)qE{z8{ml#tI&D8B8^MuLFBuh^BZ!;QG`rXlP0abOo$XI$~x%Pg)q@niRXm z-1TM7=;?-AM*8#Zu2+SDfbXp*+#F!eG+Q)JjQSndo) zt^)6>^CKnunQX~^@Ad+}oSu?K$IiV6?_fzmg3aa`!}s5mk1-_6B5o|mU>77$Lc~RK zR|ta)4*&Y@h=Yms{*hjAumaq9hu}&GOefD0-WEs(KTEhX;h4LEQ5#E##P56;_FtGs@IG%t&1sj9!C z8%XKD!_9kfW?&Y)V#&wX^qf1}yGw#e2{hu5hV`k&q~T#7Q#fh0R?~NRglDqO7o5#} z;V9FG0I1)|z|Qj{d7lZnXNb$RQN}8ZVGGtghXhv5k8~(OILPFO{lh}W5q>ap>%i8k zLg|rcv*-vFXX$bvfkP+uaOQKsMdXtkCe>wG#34*A9?%u8taT-?nQ{ue0b^K0%!jj`k?nW+ zA_5gLwj9NFEdBv6c!*z~y+Ex&t*N;9#JGKhA}`QXex*iN;MP7j15Dlmp{HIJmc0lQ zMSvh6yHK$nnf!f6Oe=Kmth0{RFQQ?Dtr~@J#9n;!bfol75ifNxhCUC5eV52Z87=dd zcEK#W;H6(-^y_P}Z}F*gc`?Q=ecwTfO5pnUZTmn3TTC5j*oSkA)^hH|O+qmC9J1eG zmYMtpVu1K!P3KR35m4FXqmkZre}b#ZSKiRA@l+WUbAd_pJmPsJvr|>KsF(R?a2;<+oZQ8sOOLS z3GE_0Ztqk2&yjp8Q98y_iF(!g8_ZPjbc(cj8s&~dLFSo5h$+oQAB%V}=d+C!_!kJo z)H*T;6^^*NF?6jf9oVrH!Pxc!mES<;t8k$NkWpuZDFMKDgB1uA05VP~0k^A?R`MsL zL$NuP*LDU*R}ZZ}yg06S0=BcZFGy!OT*o8{gvv8CTjqm{a7)g*0AmY0zi=T#PI^1%x=`*YR`Nu`I@OItR5`U_wT-;9eK zjvOf>NiLv}W4}&EAIvG)1o<;<>P~5z$JvEtC%~i@y>`HW@S+OGUXZqU17WEr(x`m5j zCUDKawc|B4(PfyFZG=I5JcwDVx=LMa%#0rHY8GCg`^VV?yZyp_W$+pOYn%45I0XBo z<3#TdB@Qt?KAd$seHD2sGe1jM?O6ZaQ-;N6>WT0KP z=K%vX>0>ha6Y&cSI?QJu{4ZG<(ZZIH~ zzh?}_zVCao6e6-OGYDD0^gQ2BEB#ge+sJh-{a#Gh->K?Afx7oopk^FlPC^ zulsZSzV~(iS7R6lY`W(eE}q`QXIuL@Uvy+ z4B!-Qp&3V;xElJ!sVEOW7n~qDx+HaU(Dmak6-IkqEA|?2&<6&I#ErMR&aWHjRS1DR zZI9P@Bo8SS=NsAg@eb=gFUQVhjCX%SJ=$}J?)A7ma?)a>Y(5|oTlyJD-g|ZkgFnGB z4+i!I{2B~+@B@9+auJC|hh9DJW8?j{!hvVnOrO6jlGYA9ogqhap6o2`!h(YlZYx_{ zZdagf0{hzi+G=EpDC%77zxt@T@{4e*(4x)e=A8*zmp+6ynQj`NPNdlL-EH8KWCU8I zkl`X|alnoU1K1z3Ls0Xj01jslVdo)BB$#MlT;aqeQBEuiTRfhjX+pvE7}vlIGwAOU zNJG6wEya^(V?&2r?W4HmOFx(k?O*JOODtx_ALa}F_+jDt@BwsjQBT}ov}@e#{8tJ< z3Ll)zL`InL?%siSTzZygq%xiOZpHWIE4gP4)lXe8Tk#btMlKR@pZOD3l1_OzUzcE# z$0MGx1EEt$Xj&exHdC$|>*#!9n+n4t3H{(=y0`6NurG5`swc$a41Gq(>?DWhVmrV( zkWsyM^jeZOBQQvdU;=*KGbjwpn`Mke1&^dk%!{B{c2dX7o>Up@UmGkCi8o~7X6-5B z{s`_e&VL;7cp_=@Va)@Iz6P(+gs*X$?{$|q%bWwpRjk==@>)8N)$WE^-Nwcyy#q0W z-i3b$u-uwn$HwEZIh6eY7C?|-zrJc;z@&Dx=d(>`HAT{Y@EY57{DR(YkMw!RbKySh zjuXY>Nb~8pc;$I&dXBShI`Jg@2990urHZ2V`}8Z(uzsE>>>Ub9^8c-}WezmYaY41x z99hpE_s}vs@~#p(9LY+s?Qh$caG=NRwK(u(1qJ>T1R=X}JEa)JY5bg<4s*slr{fLy zXr$olaJxBn|0BI-ooaWVM~s%@G<2zDdr$u%4>-Jl=jMv6w*$H12=u4BwR~tfIz=TV z*XU>nhxm{AZAwIA6j8%>%L3F>;$=;%oO=dc5aHpvgEJY!4bbjWaI*z?Pcxn)xcKcS zI)QU1wLAXOo7#{3`Hr61bB@>^_V&lVF<_HamX~FG;_ho#&F=pe?=LeSWa1ha@A`J* zM-v2OVTqQuSpUvX^jlKz9Kqsr4PA5%2d@s!YV290FnKo}+@_Mn}Q(~%%|8N>k)h+z< zjq1S%L>L1JPQki{sOuk&a(!A)iNEbxkk`_B9QZcG`g%i3(!E$3SXB-0!s2xqs+ zVkRmUrBm&O7J%SDa1Zs0JJx%T8S8muh8U2hQ*);a+d<_M>B~h579583HpAln6FK&I zwvrJj9zk?8n~`kP?uu<{*y+e-_Zq5n*1zd44PPVs=#(J1r4A z83{}397LhF5tkY`l9eEOXYgx9$!nX9X?+JCq11gD4NY-(FE7Siy|d30AoUG3wN0|+ zko{gT&B2BKYBJb2J9oz=?llJPK3~cA=xHUCC1;@~c~O;gS`kKbn*)K0v+WSxtbw8r!9rOZSysa}SDcLRFESX? z++!o0Dnadm_;C+`=Ab;aI!bn=?VbT9rJ+J(wf0|R-qLf^iKCNp__>QXzj=1rboU_H zYf4Cq^Q+cLEodzs9aHERBB@7UR2Z2Vy#ACFsjzm<Gz93tf_x@G@Y;UeJ7{b@WhoBko9J?#y~|A-Vlw{}5M>qRYhX)& ziW-DM-gisdyb@n*@u((*t~O0@7bXHC6Wk?`15THyC^j!IFFPlv&kGC8D=V)8cBoL_ zxu$gcx(1afFDOq&iJKlib>5Ygjn%!zPmrQ-ytch*91)@W;=N!olSHhwL}Zb?u)TYu zgK#%BPN_zFrbY*Tc?^fBy3-opI7`qPz&n{25d3`9y8jZ0Cyw>h><~DUzKIu>2eU1+ zQp^?Py>6R@?eU+rmniwxr$8O({!J@=0XA&7h-1u_j>r*q1^hP~?ZK227{iq1r4djc z#Lf^K7>}I$5d4G-HI1{P&D32zB)%s8A-+kUOpj7Erp=b1QBD-i!HAW@#g0&NonPC( zKT(I1>dfCDAn0zMSTFXDxlVStYjlar_44e&z7s@lP2N;OQy~~#^ z)1^;7zQ8+jh7=a9$ic`wa7su5_v;&vUeur1LKLH}ZhEgMEK&&gP*vp`cAqVoWg}Fj zAt8de`q>7ZGkN*ioG`e#HBU)Rn_oG&oU(7}0{;1vniB_SW>WjB1h0!3bWgRxA5RVP zr6OV#IqkrjE=ivRUH7-Xu>AkS$0kaE>Nx(5pbO6UQPG# zi67XuBqcFC++YYx#-Yp-X+Z!ujl+DSU?0=wxB->@9sO06!nNPR?0HS}_J)YiWlV?j z^7%;q*@8m9yI&KI2RaaobKqL;EO2ohL5Z-Lk}S{Fm^W`z_(7`wuLSloWp;V1;Akg3 zPl+y_$YV}rZQTLQP1l0@HA;=qZOgPA0OxsD5;s>09??sf9^j7#x+Ew%R$P}YW1aU{ z>*lgxN&=nySKY+WNHm_xRA3Mlvt>5Tfu=*VaRF;iJzq#VW47b9e}7DPyUeDjST#RC zeQI03F;O?fLnR`Dc_bqvTTpr~uOoG11hhS_3tzOg)zr}mQ$=&^zF~ac$Pr@&Z%4{a z7Z|>LMa1JfI32X3mpH%b4x0l)RBad@z+I{FTRw{>^FCw_6GpO@tHVnb5~f>Ee>kjx z(}!L~pYLJZx+I!)+qX;Y5A^vI76-Cu3<(kspc5LEQ@RHhS|Vf=3z;@bhra9^e3W@o z+PFbe2>s&RsY~KH7bcFY!4%H^WRBC8wAoNvIqm&Q-1D6U$vens@kO*R-Yoq*Irjqw zhiVYORjFk{r;n5qC_TP~jSnHq<2F{|cbRS-Y?M8iIR})*{?=3QrPXw_OOjFDf<6)0KIs@{a^!gtehs`9N+QUtk8|e5YS}& zm{SS!xL3xI0f%(ECnZZ-B%*wwUkQF1e@+A9kgtQ5&-`=@aRXC;MdvjezAC5|TgF3% zd*A;OWHoaMDKI;&fzG@o&T#~tngZ`Y9{XIciOE?U>6fa;xD8={NMnpYtESuOc1LF? zRNNr)3FsifZ_l)3=eMP1^Ipu_|aZrzLE>+-3Uu&Y@f(*0)fs5K;yA6L5RmV#4`^+DMuf)VhW$ZjA zCIFMqXscQxzphsT@AgRPp>LyJJHLl{)xU*P$^y zeKuFcusqAaeR>xI%<;xp4}rSJV-K|@d-%P~l)f`0MXt58`TL=X6J~x3C+eh@3BfXH zmG@ktdg@76Z?&$X*xr8Hkgv3t8=M=`rD*DN-95&<-Vd0h60vSk&REZto(j^eWfAh; z25^#O?|0ZUKHBVzzp|*7rxhV!I{Vrs#rV@Y8;N=|P#I<|GrtD4WLEKNTWC|sS*ss5 znH%E$5!^gh@Fq|~k#V7HUzuVYxUjpsxzq69gZSl7k3WZ<i2A_`=S!Tip}K6j8$h>WF0sfdI!Q=soo1P?ip>9-!HrJ*01hrqmVLvs;9*o{SFYfQ^Djpcf zu}hd2-JXd+Pc`f;j8#s8&&|u=B$BSHt4mOH(~O2}$Yuv$Iu|1%u3unCdF&2Pci!{YUKw9&PY2mV5(MkgkJ`mtc$Uq`^pjr-FZbkr@iY0y~ zTOc+kdaQMTW7!J6`nwe0LWQ1(M$XdumkB;FnkW#;^kTC8J<(J8iSKu2Ah<(+%e#t>+;+TzFiSw|Gzj#$@UE9x;) zu{$NfVi{6Ywmge1V^!K2pgR5Q)W3Z9>IH@m%m>t&r!PRDwje9)#Np6S#aQi^OL0lZ zMPkmr50Dh#2l#W!F1j|;&7)=(6s#|Bh>2z${-{IW^H)*>xp7+KpEjb#Z zv3mJpahsjf?3eySHSa3F`JplXdQHum%XsXkdZX11yVAu!f57G5YHbaHGcYi4{VX~H zJRYQt(C^>d3yO&JtgXqLnkJkN$~Q)f?;k!YYSWLuqxv*d@2TBKv3Y;FNS}O9?*~1Z z6=y`Xrr{n=bl%#1HLHv+%1?~Gr}Iq6nW&?cG$qUFM75LNLSP!>oQE$gT6{MzKy{>lE}st)Abo^8_)j4>La4XnK( zzDu4hVc*SbWy2M75pws}A=Bi+vfXbeg8O!D@XcdeT5kPQ?Dsw}I`RKuD=uHANP+Zq zSyjT?;Bk2n;391m!nrxMe;J6pFbO{tgMk++wJB)YGF^i62Eh7_OEsqL7;Y|;|gsGH7&`e78g{x?5$Jf@@T1x$gBTO0^9gPR`ygoLBoO-^7JUyJ|QbQN* zEHGW*bn~W+|C*h`1rISul!7R|p=X$@UE?A`lktaFT&lN#A!yClleKDiy_hJIp0|_u zVka)lnKQuw!Ac*HSJ}cs9JGWdUq_uwM#bZQFdq4~nepUDcrfLy=h>2oo!E%%F{?oC9K$xHG^k0mkCByL-l9o{JHl9C3a`IH20;ViZ0f;bo$+ZdCw(CVxinK;Kq z3Mt$JWfHXSv9`*I&**FY=I1K+HPT+0qFK?3GB{Juo?RIrs-vA${7oBND;2gzvt_2* z!$`VIaxki;wIRW|iII$Dqdv0TvjLoTyG|^a82bw83=)x)~nYbcuC~>2{>7-Mo<-kl;RzUZa(BRq*)6J{#KHUr(aX>DC8nn z+{t)Yu&rzMtlJeQ^yhxrFQHhWZ7Kg0bgM`*%T#FV9$mqvo*d!}Lkw-@3$unsR&8_r zljR_I&ByLhAQ?nl_QWv;HU_SW-@E6Vd=~xmY3~dtx`B?BEx;0Ouzz@%Bq^Esz)bP= zMfq%`~)jh&8|L~CDG5XW99{JKn-yEdro#pviP1)6~osH zjO4&_=-;k1`yUEqrTvzAi@`nrIz%jrf%M7)36xnYg4fJH&PlVt4bdka<_U(^P=2li4SH{w(&5)Z!OHHam zWyE7Txpzf`Z`kKfSu!#@)a2dASFWc}Pq=@hD%Qh(v{}7$%2o=x5b|{OLcoY|Rk2DV zLR>+(v+4B|?L(v2)jlfszl$D~Vc~qx!)#&8*}eM&xlP_Vb=1IfH1(Ce418~;1Jht5 z_e63H&iXq5RK1omx%GDz=f&S@0_xTkXAHoKM*$Wifd#SPp^omdr_+LI!E+BTK&j{S zB5PtQ`%0I5z&$T_15Tm$C5_a>#td?Mp^d#Lv2#>%(*@$NuLY!gK3jjkYgV*uvL=X5 zRiJwqW##Ck!!fL#9>X$no?R_p<^>#0nhw!$Ut{Gd@elw%eIG>lL13qsu`Jn%`d+Yt5i)=I|^Jx zgiCxN3F<-mWoMy-XAXN=P%;3%5^9<$#{hE;{>mD`K^2K7G-6dtibG;3V6_|0vyyjoSMQ+F2K* zq)DgvZdKvk$+;2r&nmgeg%9J9UDjo9!L z4F22%e3`QynQ$P(l8!Y!#chpbr33qVjq#G?q`0vnm$3?OymGdYu)$5|>`mK`Ek#nc>TkDLN8<#mS?R`5&*_Um}2YY02@ z1yuS2P3Pi(1(_Jy)eGsUSla6}CDC(Y2_1aA6*N=Ou5+HD?m2QcPiP~H_kId`I zQ4S=UG(=DL2819p?U8qXvw;}AVqkq}S+z$-C)5kbx73>u5KJX)SDkkSAn4ibovTl1 zk3{$=`ZYQv*Rf`%?c=ch6E@jk9TUaUS4 zd^C(zea#HFga2XEhRFq0i6smL0k1O)F}Yy$qGULb2YTybqxFHti#^Hf;=nYFz2 z8X6kI5M0*`fIflv%OKw|qodq|Si3Y$FCx$}F$VhwAw{JPV)^+@Z+^Ky=?T+Caz~?> zot!l(Q*C9fFS>Vc_-g&hWjczh5#X#@=4zbe8GNYYI%miDAmG#os^z4f_C4`Fx96 zZ!DdX*58}qXCiGpx8(JBE%=ceU*cI)7e)N@ASX!qy*hRp|BZX6XJ`MWUIPlN$s*TU zdoZihA=_yTH@8|}_uqm-?A9pyMg-@ZZD>^}N}Sl!Q~t%Q%r`oPnH@x~?bDvZ0oZ;6 z^@+kZ#{csksFn`_JwXFO2dnO1#`We(n%CdkQL23?>@v1vwX`GNYxU=97pe)?I4t}2 z+=D9q8oPs)Xom1=L2_S^{ig$F1yN@Ix3D%j27BJ$RMVf#zlygJ zCs>iKM5e(eZIJbyT~d649SQ~bQ_W~%(k}C7fYRP@z~vNPlZT+dN_mx%9CXz1^2PV{ z+J|MgwLjbzx|vx4=?6KsCF`e!UuT4BVdE;z5S#===NFQOxX;$$F~h5@u&cOoI9(&R zBoB1DEkdBdZ|=*FA1UA@Clt4PIVEkT`|DSDm9s=Q-l|$08dUm!Z)xtQ7j=y~8sQLV zkwGXWs;pi3^X?6UiLkrQDRe13({fDvx~>Bo39m*VeVK(P3m~F86$0LG<2?Ji4u)C} zI|uWm>>e7aJd{CyPb|q?^xQsSk9o@BnH$c*kt0I)=Ns08#CBWOiQ60dZps--X&|xG z&=?vlu*M@3ULQf?%G7>DsN8H)Z9+$FL)p$mM@(__ZaC`|7Dz=RwVo>~MWO?HZ~LeV zg8Wt7l%EYCSNWX|EO8%(9^HoWdtCoO7I1d#&U|H7=4oekc}w-1u%^|_pKK(?j8cnv zqW}nQHf>^Xb6rw64(I!u#NM1;wC%c1@Cxw|Jt8ihJ6_`R-y5 z&AV)1qVRWrJ3<$5*|ULfCrZ|H3{oO}3s*e|wxav(jc!&%85hJb-vHJ0e?H^fTeI(J z9WJ`ebl}dR1|vy<8=hR&L0nYnA)v0qfaxvp>Gmp_6NjkMzFK=FHLKi9zuaq9K6Vw18}`8T`yr5YhM&ej%T*3YUX%5NgR7^utKGVXxdn7( z8c4G>FMQfSca6$A(5LCyyjx;-OzdkPH%9l`!U%rt0O=q3MuSeo{+yGhIX5|D#_jRE z7fg0mN{`C^>8X-v;{_yPXWW*WsR2FW{PEy=%AXs&;`2Ry1n$2q-u8)6n*t3w{+42m zd){*raE!_;)Pk8gX{KQ?+yv*_4X5zfJcpsy%Y_3o)CTLJZZq+do(fv)YntdSx6j~H zR~gh5M9gEl(BIy9EQHGFYt(d{@FZ1?S^M7+l@;kY-gZLGE>`=w9z}|D`EdZMH3Md| zP+S|`MQ7Ml`qn@Y{(P_huhu5+=&1O@i7n*K-?DlFeaF zsefL-?Y$wMt;ex=npi6_+O+HE_nBS*RbCfEYd8TdET~wI6~15ZoQobUMcgzS^Cv7w zvdU_vywixCm!z~cZ6Zu9IDdROh}t--*}M3H22H%mU=Ks6BLb~(Rvgh z{MJ^$>Mv~4-wEmtRVD6=vN2TlZ@J<{A7ch27L!(QjI=A$0ox0-DbN>S)1W8dip-~F zveRyD_=^b+eW#`doc}%WgNOBK8dn{U&o9JK&H#AT=xr`S4;@fT!c+nHOjPn1+vu1X zX78t2-K*F||8d$&=btxTQ0xDVID0|bI1_Y|8r*cw1owhwU7MHC>(5%ge&H_;pb?6E zNvi;7DR^fj>fR{U0ZnuAs=pF&;fyHk=J3{8sKPdj6*Oc0G)3eDoLqIb>3V^Wltf^| z3j;-GW|}A}4Y<1QLRMBK7UsK7Lj4h9&}SYy(_eUPp&Qdy2#sP$^FZ2-hg^og>S#CyG)#qM93CGU$VjA2PIe zDmhNoMphr**wTckOlxeyJ6j%h7Ek=~dw`@=IsG+$=!3wUFR6i(v|g4Q@)ds>-J%O2 zIU8Q4=zPnSD9W41e5ZnY;$Ox!2#G#A0Pxwoe9`dcPBdxq8%QChy<$eUL4Yi3auRw> z!oMn#UOUm0X(1zA#yETmN<5=dH-h&&J_Wd}jn89zZtBK|bYQB_Z%9Efdu2#9A_Tw1 zJ?0yp_R}o+6>_^hhV~oZJ2|pm{rX>SchCr0RW2v1Xx=+jm-Rc0qhYbcdU=?ZVRfza ztB1>{hov+Yl|Q^d<;%jvYl8ze6Rp3iZ*d>p>@c#qkU+ZS1XP)YYjMvs5@+K#HO+>fG_4TPMoQ8g~$5$ok?WA_5#=rlqm_vSuUoxC}4wa~dKg zd6Buw3Ad|YS|iMfb*~C%Sv-6>Z9D`Ir(qw$^u$#dl$6hT2gi5AAgK*>PtHKVsPIBi zWjp-IW?ST$KwJkGa=yvH!Q5Laa%1NreDK=fRzZ{;y7dg(3Y6qA+ZA}V!Sjdaf$umd z&EXOyz##3;+0oJCdiU|_x8FHE&7{7v_p?Im@=!#ohjc2^PkW1=FwMUw!r8G#k6eUK zl=rzg8=kePOu6q9*+%B{&Rzlinqf;4SqFjeXSKZ-cM^vonH_)4d%du#oZcN!)fq+4mVK)iB3W>DX zBUJF(^cH2kI_H1>a!`8ZspgLaG#|q8WX~GzLXmXt8ce*K4x71BZ0h`6(B+pT5v4mi zuR}92fU^`q)4rnDw#d^K&QJlbn#jBp?yx9{ZeV?BWPL6qVEb%Ti;I{pF1_SG` z+1U&(0j93=oRSE3_4NL|SgSw^tSNd(1Z_sA)BOsaT_ddwsgq_ck$y~PGHxwqFOUgH zK_emSpdBBKs}efGP=KAv3rCjGv8cn@=P}@^Xm%7f99-HlXO7=l*`gnrc1P#3wZB_M zrON8~y}pNihgzhAO8W)$)x~y7>s8E}p&BGR&Qq#jG*cFcUi$Wwdpz-kWupUK{xL%+ znkhDwlt|J&&4R$3O~t zC|n<%@AoGi>$U^XSx+fvQzyUj{w7z3+_2(91`-(OK5 z{O^s?Q(7@}+3#{7N6fLSVCAaog@RM~qLO*Vn^(Cu#~wECoHEq6g}i*H0Gx$y9{@PF zwkxZ)!&PHD0;52rIlZE{IG^X38ND#8$3;u@>t8B{l(RNA5>HLhUS3P1cRy4quJNiUMMY9v(EWphqS8{v{QUe&Zx=3g z$2~ELgEJVxk1~QpkvH5W!0?4ra#*1%2jxv|1G~=;P_TP{$2TzWo-SJ11EYuV>wuw_ z7K}3u`DynRptHio+0yEtzh!jGjW6b@CczxbXEmUr{O!+(6dDc{JZ#dXePpLb%%jF5 zpa6Kmf|29K@%Lv~sgXegt?^lL3ALEP3smOzNzA+uDsH&mWJ&zgGj(tv%~-BxiZUkY zvqh71hnr;RXyNV%F)HG({lh>kq5#%=CeCB5Ky4(3T@I-D`AY8oo^fKnrOz0*F8}TOYp|PB)zA=kzk4?ohhobW*#ISCoKt{J z=mk937#uz8q5BQa(4hXD|Hyaj|8Jn?4==QZzPacO%<^-lcFz+(bHRg3`ZUqa&FAv4 zf=1MKeh{EC0mnCKOJ*HZoC6th%xINK<#OP|9eeh4#(f_0MtyT+%`!tFAK?zb!Fuew zZ)aQrbZdry8pw>@q#v8Zb2TrJAKbKy1Z=UAtx$w%j5RbxnB#}+qt{#DMGKM}Vxo6M98+J^T~BB9v!hg`4g zxL<$D!&hgc9hH{_W@w+wqh)4n*)q}2bxzXbgJEnlmhYxc@zywTP0<~BUT?hYq8^%r z?g)yhQjWFOhGeV@CS4T{I5}h<8^^ds`H1WV?zx=;zz4YFUxj8&QufZYE~o zn|8UW;2qsZj;%ivHR=pde?(Xd;o2aF;1v5GiQENJgftZWr8mp7Xw_>`iGItDeMgJwcBp!s6^7e;+-N1;FE$ep0+bvdAahRVXujt?4A zJloXkymj`STJ-rx+XYhpG#63FYB0y?b%jolPL-G69& zev^1vnrwFO?E(S*zlSETm`UWxU2hcr%lP{s$CDrAd~huH3SbBWwbAx^O8A*7H6FU7 z*E3(x#bnxEVc~re8%5C;@JFB<2t$hbRASG2R)Q_FFdUhx6r` zW>2bZpCfeyPg6glxw})#Ut^x$i&3AI@E`3W?v`P9;*ZHcmcu6gFm@+lFK=+x_*%W# z7usA%BRj{C=6rp5zm`xgW=qa8{>?vP%sXm{ngjYBbB`v556Fh33TYzwUmHit$jJK& z=|py?E9CSCPJEDCLuTT1WnGB$lM&*6#qCTLMj&`g_yg=jxTF0+B~Sf?YSnmUz%3kK znMM`7jC&CpW`zEH9d@e?9yiaKq}%{1s39>l;>7fH$M4_FV`Boft*VJ{-_k28DuNzj z1&9_L#A1M)TN`w>4@k(slMXfn1sl_-1yVsF2Ss&tBH(EI(whaiSr;L(ix9s+IGVDa zdf9z^)q!bHzMf7iknF!=!gN%kk}*1cNe6)AzD)rSe}TlPkWb9^j^cldysj{JC>d5a zO=Jx7Xt7#~Lf6k{!Of%49;$6GFzkSElNZ90 zX}w5iN0eKqc*k2GJU3Q(*o(;83LHT=9SndYU;mJkYrr!f(3{ci{J0=agn^rE@BS4r zm|mB)Q%L@GCHw#-#&?ig<~!YyxguBQ`OEMxiZmGX&R^p^+L=##WZUpt3Reo?$K%jf z*je=k0!B~t&)yDA!rkCvxH%k%Ior$;(ILsopAap6`Rf#q7VJ_|G<{?N+rgZh_-^Tg zbyL&>-KcwEc`k57e_^mRwlIY&%U$ZmpNyg^!r3%pqs+gxLV~b)~ijij}b{;xx(J)LtS% zWsql0(*kQKt+{iR5rF;{qK4^7R+BCLc{+%m%eApLg0_}6W&&cBL{F!*CHO7SwHjAj z|5D}HFifEF3tkhCosbOuiFvL|@|teKNWJ<_654Dka@NgP+YIc|6Avl1g~~rj5?}Ok zce@Q(a^QO*^kxhJ?fd7hR4bJf`+_?uum9|%#1DFwshcZ3I-8}oCx|$dD?6~y>C*5X zv&K}I4lE7R&Wh7|7Ab4Nw@4n1yAtWp51tbp?-wF!mWf;`a%*)L2mLM&Z4BB{KT{)b z#2PrW?qbpbvPK9OIb=P8R+%4Ohp3~KXe+0*)=_AGF0EfurQCY{FX*Gpfu-|Fa!X#A zM=Y)VZ4DUQw^{NOH+Sd#PvT+VI<_(ay-{v=+%PEuU+`MbORG11$aB+Ptpmk#tv(@0 z23c7%dD|F)V!KEBEBUt4S(cjzsuaa^xZdOB&uoGcSW7%MZaGuk+u&CxxSM*Fl~w!k z<7rt2fB3UWX3&3~vkriXUy+dx-i%;ja|MN4pTOPmK5lbs~P@t>mA*4SbMBSAlU2Muf*6@-a{40t0zka`Vm*=QHt;n$JOKPSJk& z=AA?}hFk?`U=;^LsYw0e<(DTb^CD64xE}-lJZox$d)c_LNe+-mfgS+GV5jk?H4h`` zLYmLI5YLM%Yvni{%N>Pqv|kMPZY&sBvQG_LYhyFEj-vhAP6u5w-O-@i|4MZwH`%Y~?*cqFhDhFldoThR z9O8S#SxDpU!t&!@unWtg*gh$bl`GqA=QIZ_otjzdD$K|QtkmL*2p{oVUv2s@+dQ|} zQD5D1(Nt0A=Hw54kV}3j$)j|souD~d6E^h284BP37FP4k!nx6~PGa(1XF6W9KC_HA zeujA6lfZGB7mP3tKiq)NHbK$pVD|DoDBz{WtD`w3;__}|B594q>guyzu(zeZ+2MUA zrtdG)fsj{{hmz-u!A3OAtQuGu*m?F z35cxiNFbe^HN(TFhDODVBRpWW7lEQn&qNcIC)leSSW;8-<2zv16`S znxrCo6*K(l)S-hfzhJ`5+v=k_&_`0=R1EvzGssM*veH;2o?84Tdd3^fGfcX$9G)#yW`T{JP8XI=mwnuu`0jG-XVIAQ zZWn9#8Wv5ngrIY5zlAO3cg|3nRM8ze=jxdS)qPK`nRV1c9LmGds@s2@Ta0>cy&U&> z)&Tx@O=84>J9ye2AI*7BZAhfB)zFXs>nK2?QiEdcGxoL81alA_4_sN6zeg>CP4?wbTD|r79(9tu^kvZ>nKR zYTGVZ@P2IA##~YH9B43vL2SIlnw&U*&D5opAdpYutD6WMSZM)xNl7v26Vn(6bC>D_ z>oc+M9EZ(d!t4vzt?3dHcHHl7X^&}Y!3Gt8qpvHRpjb!p2HP_xi0@3Zj1juG_i{?Q zC747mD&3{2a^b?0m=33Xj-a>3XxMeJ^Fut6!i(#G^-<(y7+ssEk8jVin=&(TZ^N4} zg8DfLrNhc;PnT!td9I522{O>sRc30qUiU~t-xT5Ae_+(Ri^D(c3OE(xMvMwIi#GBn z(dohV`WCAPuN3a&hj9>7oVEv~koV>gUD&Ly*r%GFA`z+ZYBG_E-utAcGC?Wcbgngl zuQV~EsrrE_vpsJFS4$azNjB;*A8_Z~+tma#=??m|A?opVa>wSSBEp1Z|Es>@55C%4 zw{B|sBvYuTfJ@b6+8GG)o&xfnFcKGS(?Am*AeMPgbky$E)o3+$e?!pH!ab;M=B(HS z&h#KC@J?c8syKu@tpHN&RoRe7;8(`pmwZV$GK{X_F9fUIj6bgzU_m5Pnq7d$zokg{-F&23~r>)KTou?pZh{0y`EqO5lc9I$V5aOdUF>&IRZ&YOjOaDNdIS# zfB2}RrG?IMCVy>n^P-*wULu8?+{49Gx|WR$yaD?x1KHGFis|bZf!uy}Ll7;ExKusE z!D0&oB_s~k0lbE2h11?|djzRIVGu#F${K!{%alZHhv`n=^CxhKUK~PF?-=6KI*uZ< zwYJhw2}E)r0vsEb5a*f8(OekO$s9_P0)P<^^U?&rj)MY8~Pz18a!cj zS6GwI$Qq$jno20M01lZh68aJI1p*k>#QWwN!KSw4wNzt^6$0g}{=zN)y6aH2cpjAt zx+G)~{P|QhJSO1Q_cZ@U8;knXt{5DjX2>z^=OjW+RfPwB^QV4iZ*oY{%Hi-1-)M*P z2+HsC8%^?*$i2<~vpQ0V)Rdtsw1j+WWvj}jTsXDmMy37O{y6eqB;1!jcZ^@rbzGKd zplA5RV4B5#;4nO3PWy1k042&om+#q$DJ|KQ1#2oE+GOYVEipj9>r0{aM|kkUhMq#+ z7PH(|%yGM?Hq%t?6a`#w_Al(O--Z$|Lr$iqrv90CuS)x|;C=qN+#HzviQA>S=o~PV z@2T~)s7S}xuaCeSOt#%1v=k_X1WPC&w&mz{5wwmQsXj+u5H?X+OPrH1x_VV0=_>a` zNTE<#UbxoY+Nb4k_#dY2y)Yf119eW5X(>>gPw-6-((T zAWN<~f_JvU5?}RT`eT*j%e_Dzy`jOK3J5a%AkTK>^G$Rk92)w0%G+`Qx0~B&MMZuf zIak>m-R}}Ezb(PFS2V#x?>`^>aR;j#$T&NM+={hWJf(ksBgsbuOF zo32*CJo}F{i`qYa^^ey0n7_#X;1AE|j~bx){o0`^^s}?^ik~SPidbgFg*6kgKd9`N z{w-hjeIpKM%VwDZx$z60AXxAo_{&PM7p);;NMTYG~l(dRQeC2o4* zSAta;TMSZ8`1Og^P42FkE~T2)L9f0N_h?{@4DUdsGo?H&k`>gg2PN?&@VRP&-c*v>}vIE{wQoeVKN#)B)0?Ri`CuP*jJOp76|hDPx}k$)W=?8 zQ(A$KxJ_FUXR}P9V;WFbM2x@H=1Bt~8=l$r0x)#EABi4tDcMXE8wuMIi zI`{0p;L$Z0gd8cOo~sp2)%YnIwT$2ao~*;Z$ltu0L_PqJ%5yaCeeAtjdZT>=-iKcF z$r=RxVubx`At~Hu8FS?zr5Ovf~2lE;o;frvb`QBzfzo#g) zaT=Cc3B%s8m4$o$%!U3s*rIb|iODy9>{a7Ax^%@3q*&I!wR-7h=VJnkVzj;)L?1`D zXm>mM@xdpb^HS&@x~dO~%*x83cv$;K--bQ}v>&DGhHQhw$FU!$-+^%B^XIG5;jQNr z<~KCYYlYHLqQ-lT*EWPWAxKp&8M9}X9&xE0on;{c8(zF+|{N1r>04;JlTUUf@N!5 zVlKs;a%~kWsYQbHInFKm_X@T#Izdk~9wLL*G|wO9N_Qs7TtN=Vmf1d1+uS=1sM*5a z7z6R*n$J^3`Ry9#oduKP@U(6=hq6%g@GqH{qsk?%u55SNa+j1q^E9&Adz_;Wwg2rNB;{Yl4dr~ReH+We zB>0k)E()D!x?qr%25aq~*2q>ehX!lIYWyvMQu}HK|Fsp<81GCo#@icTKh@Y(57+*G zRK0mTlg(6}5zx6ukj`T#Pby2m zQj>W-uU_Sb!C(jBAYmqS3K^+SgWr|kyM93Ax11Q_`Nw>usUw$K*84!}8A;}fjlHzr zF=AmntV2qi$y@K^uR8OrDRoO-7diEDIG=o;$r@ql?Yo*StDh7O<3|31$?QrVC{ z^>ntO9<({I+W>G@>`VFgZP}ZXvJMVScjQaF3q~8~L#^1jM_b2xky z0;s=NaE~E7I)BkSeVo%YW^7=x|NnONJ$AY{^1Q$I{^BaLj`68h_{`g=pI5Mmw&rJ6 zWNDe(6u~993%-NULF|>^YA0-DU!w^k*DWJdVl}hg=)N$;NjPv|YMo7oHw2M`${%Lz zhY#K!oz{z}+55~;mxnIv5g5#;Lg+p3hHhV2IQVR_2s%5vUqiPCty*(4@W^3%qbiLJ{V%8Rvu8yiO>+}t)!&eI$pqLIwH6CCpX@t?!?AT7s1$=VIn z{B84jk*T|9XKL8o%$y1~CLrAJh4I(_JK*%ii<(2oG9T*9)XlfA*#@*jRgK4^ht@Vf z(VQ(L+l;vY-gic&@DJmB`4uO?G3TG9{Jy9L)FDXDc9rt$&bWm)gm-t5MKhYJ7kS#o z!=bg{_{e4{>4~EAu9KZV4kiNEpNmrl1`d98cA2lo#qXTxd$dX>s!PB?Aw#GxoU#l= z68_W>ppk05B=lBjXi-s-qc!(cyWsoBVq-DfzK|e|RQgvjOG5i7_5~;|dE(C1GMTHi zqz3iNK|8_f5$$vl-1zZhI=DK{0KN2MWbc}~_J_0an@GWgT<6ln+j?l@JDOxoev!1# z*EhMTx}zo$^TfS^1X?rQUo(#93eU>mufteSXrtHX6^|UbdT3N}ROeEII*`Z(wpoNo z>1!QuW~nTM^|K|^(3ecaSDF6b%--hovg+V}iZ~oMWSp0=q&QzRxs=w1PNrWEPpEln zBW0vxPW0F3Jx!NJsePPHz<#r5S6rcvOp$M_jPe0}^Yh&M^3*Uqr#|c{?9-dqN zUrOQ}+7fUKT+CdzUf#gE2BgY;`o8NB_&d89DBluXO1-NTKH}QEw=(VBG(dUOu$S}< zWP;2v7X?0c7I9P|ZgOL49uK}Ui31LA?uAe}#H_mlcfEA}`LGy94S?n3^mFfmCux6m z`zg{7gI}{No-wT0Y~BK0&T)Nd4CmnB;6XSg4``MKUB~p`bE~Ts{_6f5bEm!W`=vh^ zz1aKgu6Yr+Ig{ILmkMvcy7A88oM>BYksrNfbD94{eBdh%Tpct(9+}a*YmNqD1jKgb zeG<*hao^f9gg_EQDO@HyhmMu(Y7vG^Gvn; z;W6)W;v}+&7MqI=Qj>jziJ0@!(t6Pz`?9K3pErkyif&$q?tT;HTZHfCDEWVvqp;yD z^d0unLw3s*O4T81)zxrS*AKL&{5|L?2W$nou-R`9BQ<4k(JCncd)j?R_hurSUwVj$ zqx);=GJ0`f`_<+$WE^&Y`=$rc_s2m{sOW^yz*3| zn}2u_b>yM4`|GQY$1fZ-&-hv675`9m?2W5=7Gdt8P498SPdUqCD^yt232R3N9lHJ(0eI};++(Q!wtuT!XZ zqtN(ET5A|$xuv6#CxCiYw_V{GcNTxaRrKD%hwwg3K0muy3U*!urQpJR)Hr?^Db@C{ zeo{v6wGgx>;<+j!jVLVh+H?X>SIzdtd^972$~Kn-&JDZeKex=# zhI;8BJyejsV~R@tqn%UJp&NUnPb~C5o~HGAv~VB=mR?(+^=nsst=icu;D1P)r>@!& zEZe{5x0Th-7!xE}8xt+;&u0HV8~Y|JS~pxeR!cliJ5l+1&TT{V-Yf4~a>sbW3i_Y% z$X$XW2!NM9P8<5u3y0L|vwwtW8`kjBN7l<^5>Ll}(^3}9cREFbPa3+W+;Dyh^j9~q z-~zG+@3!vn8H~HW|JAAN>@wp7(87>DP!VUy(jj7N zb27q8DhHcG66p~>yxoFCzs*4F)!{68mO*PAq9*7iIzGbxGzYuz87EH7^XiB)?o=4x zw^>$DKT%q|?bRci{kH-W?4aocPHBa9KKQJ#8$tdQFYA@PilVNhzHs8g-0o7W!qwSwbG=~TQF4z+A9-&bd=~j&xxB{ zG-h>D{WBE;pI@H0Yii8frm@(2h5kHW_EY`dFWJSV;R{~2w;ph*vqDkGx&bpRF1>6YLqFjyAv<5CtdDe{^N6(|*U-U!i0znN@Uq?oQg^|vX?rVS#=NaLG>b*!#*gj`y zpL_26r9NIYYtRzyhLoqgyqL@`2D@yadgxN9!Sg1LZYw)ZpLLb&6-g+L0|=$lhZFV zBg%-9yL?rM9c8oLigKXZI`lh{m-Pq*-MiaznpXxb(pD2F%37t|aN`$E$vL_0lAqOv zO>-Eeo4Eut97VVC%L3R2=&D54#AY$)sX~bTc@~QAKt=fp6%N~+L#yx@M~Z+$Z+mA9lW(9 z?&FJ`I6pZ2DTbbd(M!>I7I8jARI14}AM`W};7dqU^SsFvm+>|3`t=Kjx}>~awR!`R zjsoI`fu=f`h%;0q0otRCv&y;>7#PC2|H@$vofEMz*MU+>xgT>Yo1ZO{w)ER>ZuY{b0wd+mi-&|Jjbr6y$?ateqK^qwbp{KJ2WhSH ze7Kf0D;TnJYlIdfj#A!UoMD4mX#<^0k2=XG7Aq8{`sDL!0(Jt>Sm(nW z(6XU7h@G_R7N+>un|{KW>({OF_sS7~7hk`Aog9Uy7vkclAyuvo$yQn30l$A7y7GcY z<5=v6-#*DHHh-|CJKwZ5zrp{RkKsM!rG`XIfWtk@K>a@L&}d!9k%gc-!^gZN^wZB) z4A}b`KBP0O`wNaqheIx~)M+pe@qv;_0Uu!04~E=YTlEF%BUz}k80T0Q8QRWT|072r z`30hdCr-fn$DKi%{bY4)&u$DGpP9H)Z7j;#!-xBRTz41yg_AVd6{1W;AoGC&BO^y* ze6&SXM^TJj!$I{aa>*TbI)Zi14_08m*0{yL$vCK>f{3bZl$A(OOi#EOCc^c}oskpC zcDVQN-klpO$pKgbueCbCK|DIW&jWgXsOLr>(|Z{x76f-clK|`V*f07Na0t~wmX7#B zyBBcwiH*LfV3{j&=$*qj1sk9RQ6Q1(Sh(=Uok#G9;l1-w2o;rnY5>EreCF$BCP2$Z z*73+qVS`b>VC5?}IMNRzr@U~BBmNZnTS9$M@V+cHJI|0139UiL?7ZBzpQGBREjo|o zemwXnRbJ~c^5i3=_Jemw?fWZ}$A*Ru2X42h!7YbY-G|D0CRXH3*)MXRLpCo?e6F%P z^O=U)?w1w4%J9@!s`mrLiY1qV>$6n8H;xm28SxC|y=eSMTJ!e!ekX!Rv}OpbN_It- ztWaD#=qis`m-C5}i|Q_{F@ypi@QtS4h6bm~#xd%YeE6N-8k$Crc%R(Ol5Sno+`SZZ zvhDMy>qoS8c;%ZMjlzBN9V20ELPq?^nYKkQO5i!Ftaz9HY$f~0B-Z}mzYqP>7aL%G z!b^MGkIvTaP=;sqSc1v*52fA9%DkLhYp}I{c8b=##N3H~&^biY7$g@%P>VLfJxn8)ytwaDXQbFFvNCf6AoIIUDbquOtI1>A0!x z&%`(cU0o7biDO4y(414RaIfNJIC^|{jvWymw%|CuWkczBO$)5`u!(2cIB8c+yH1}} z&Z)b#UFD07TR0y2jabR=12l)9W$WS_bq%)GZsr%B8ZKK1*4^zDGzymvnnA~eqB~pG zswBlV>opkPHCg_y`D7qHe`-@;VNiI^1-dKv#GmLDmI+z-aJ73}18W zVD-}Lh4mU~iecRSeh;~m2{SWNwRN&9H(=>w?fU>9MEyD>GxRACWI*X{!_@`M(1TrD zBgFTse*|57z(9OV=S1p^X^}>@oEFEOAFp$?ePysOQT%K>_hHI9q2>jToXf|-#^#!4^ljqfCxNDK zC+(_M7(W&a?-p&44jCEgCiWEbIlZ~@BR3A~mZOw~0xE*ukv&oBSQxv7DVVIi{`!Un1Zoirpaj;UEVw_d6zTAiCtUaeC*E0c9D(h$L6rT1a;Y z&ZcFrT-K$I1w1dOYx}^!bA4e7D|)<1Q46v%y|v7!4_xQ3bSEbC#xDb!!kCL!pw=E& zmY|2b)I7cBpq!52kaNxlpAHGxZ9dmm)=BB12TDcw1BCI!_+ zJeuwWuY<^S2nkc^sCg>7)C5NIg@RKxAh8Lm!7gp+%H1rPr=1^?!kvCqZRKB|Bwavd z_zE}-|K^^l01fBYsC-lGOa8!;A9Sb;>Ta9M-eC(E=Szs-ifMsT>X{3c@m}KTCGCOtczGTlg{)Wt-}o`{Cp|dyZwZ6Q zVW~G%8;?&EEsdXdDnq&!;$4R?h$a~$U;H%P;PZM_y)8HK3ohA zki7F{>WEk3X%L`zp&aj}oO-ocAo_Q_Tz1*GeE{Z8}s&}3uCl$?+^lVG1 z=s{%$Q`cc~7Z5!jx{Ja|{PGRA-#}Hk!nf>~uX?wJz zR)lWX)R3m7ab0IS!oA_K^1>e@S?vEZySd0V0}-Y?;~5;v^|1P2GvP>;hobsZHO(QAWBN%rS}(I zjl$bZdC}c`%+2ePAcbY-=PSP0pio|^hQHW;TO0Vbzq8N*QwUXVbe+A=OYT+ymHNI&i^XAlMnawQ@=fVUDT@Za z&>cXU-~&`B#{pjKTeUi#fPL=MdIou+LPt)-SLO+g=a04DshAxd5BpiK*RNNuf&NxUlGD;WZ{2dz zg>Z6lJ+M`LVA-W1xNO13ThtWt<_wA6});cJ*m#4#C~gq*GMhj)O`A6kK|3giRz@auScC~4ZrdMJZ$nc z7zOkea(ZiI;o0xT=kXN)~pAM{6QWRpYx`-yrBP zrOAAUDVNG58gT$n(uRx=Lfn0!*|8_x8X*Oe5K(2-US(VwCzHPzC)@Ct`7=4)9Z;xAiq-2666e3`{wZKV^NAk^au zjGa)Isox8>b=Ss>&E3WnuP*J@w63k19iE{23$&#(xBa=d&@Y;sRwO$$tUV8*7mkq& z=uK%o4p?=AkiE9w=Gf<)w4G~d*yR6~u$8u9jl&O3qxD>M_!vl$Pq8AZ-)OR_WpcS@ z8X~5FXA!KsuHvg?ANbs1WW5!Nt2|vB@RA{gyEzveA&M5nln7zA2~HUuv$=8obbFA~ zG1kD}W)>ruX|Ea@QZ~m=es#XAPeL3YaoPBa8~)SG2o6DNR|Xf2(wQPzr40%3=Sn|} zyTR3c#X{q;`1{Wky>s_eIXNHB-7o&Em2U2K6WV1LB7c574)bD8(E@Vz+0Q zt^OU@Zhn{n%tm5)b&mG`{@sA0^$>M=s_d96sffib>h)OG{o!f^vq*W#>g-$=Cvsmg zYrG%=`?Hj|u_w)#A07BBKaxK=p2oWK-+}%@6PSRPN=MM^mo}6P6kyyk61UYy)6V#C z7TQD2BkbLISqJMNl;e;!708+mpie}Qj`~2gXSra<@qn8^l^d+evEufIxY*X&V8#K1 zypFkLY3H^W5T>>JO>Gk{ubQc@ZH(I-*9-zPfpB*L&c}lggbi*&1rnkQ@e(Bwv>=_J zhCE@ajmJxCTFf#{?wN#%Y97*M6*w93@al5Uj|ti(`)0K5@$?Zn8(=e{!)G%Pk%?dr z0Mu?4_K1Gj>e!Sjzf{BB!3?X?Yvb+T8l~`0!J*%^DLv~eKiS_a6_sCDQQ4hS*wu&Z zx{5}Vx6w(CVEb%R@et#Pis-lsJE$+;nuawTB1T`R`AL>S)tv(qv4xvkat1LcSQ>~l zf8<0OtFmiwhRjGa|1ZlTV{Zvlm|q(%U7o$-A$_Jp+2Me$i22#G`w9cbeSvNtAm~P( zAN*$>EUszF%u5Cbmb>!Mi44H`Pxc~i`v~!IQv;f!oa;;o2;Wy6jgVOljJt1J*rb0y zr_Q;$;eaB{fb<>TB#QC$6}qmn-guz8rsnqh_X-nm&<$+t0w1;bFs=_C)*y}9>-p_$ zGHK`2J>*^_hl>oG_ zU1bX05@V;a)9$%3-9c}L669w# z>3QiGTxr3@gJ{9Qb{Bm*6Qj6Pt=uA7Anj~lSzL#|R40U?_Y*)*v4lpQTu#v!*PTj@ zO7bH4W%{|e&5ca1MGj0#mHqaEEUA=*7`Mfnxk~6*Y4OlBx=I{27~OMj ziamA>I1`>ISgnZ3k&h@Sh{O8Zqx33Re$UR?Nj}PVy_Un;8E9c!|1AKRHo6ed4B~oJ z-I_#l&7r=3L}NO@qHvnJ|Gl8{efb(=Fx3gtE&#V=(fX2oogei4xxx^=AOlPRDr??9 z)-FREur4{P3$ZTQm*B=fXvCLhcLmy<__bDKWzr4w9u~gwv$pz4ugCRhK1sO)Lk}Pa{3_ak;#5;2GBfdqlwc>R8gfS02e;;E*!ygtopvgL4i&x^vf3 zxPT~Y2;oA?QMJqtpDrD*p5DnS%Ay9oKiDIA+@b6?)_gs) zbwM3f(N1*TsagnoEWoaTQZ@-J^b3fb3v)4|_08)DO4O=L@V0SCkWB0VIL!Fv)LYI2 zk!zc+Q4L_Ozs1Q=KUb?$EXk9KHS~zPGTEe-{z<%c*PO z_vgfE_M|~}Le(Kot4h}53E&vq@(2ETBLov4xp@PZRRX&;TL-&E;eAZ3SgkTAoeg<`W(jqcaBGj+qKpmZ1;JEDc)Ys$3b&rF-V8wM1Z~+&< zh#v0?#6JOoG)a?fxYw_>vY&{*-x$(3+}U~TxaPeFOCkxJis`lj@(--#C00$fMa{7W zDVeF-wt30VUzAHi*nrdpy8nBM!&`PY@29Vo&o6FmkIV+t2Es%u1cFiE&EYJ*U2+@C z5JuUdFj@313E)h>+rM(;4wxE_=yLap$NCgw z;F{Ega|^3ODW<5Afal)RYmXGE%S_^df9v??vdEXRsiItVwk%1z3nH=6D_?N7hYSenZH0~oUtGj+osl{L-K{cS?PlZS_gsjE4XnGe`&V{*R+TQ6SLA;hHVovC+p}eE9IOW5-i| zKiDJo(H4w>B2TO(=B=f^m>JWHm~$&ug)bHEJC^)VIy!%jXqOmqlt(Ipz4z0QYSSYY zDkI-zcnx%B*W9k!e4wnm-86;HWLZVWz$iHxt!rdD@5c%Bspv69y|piHn=xrkcR;~z zv&=T_>tY+rx3@ZBYW?L@@Qc0F>}b7!70uLV`TZ+Q^#9f*%r2_)Rh#iKnu6f>{L?Q~ zU*-VkH22HdYZkabL~7yPLb36uaX0t^Bq6@lcRp6bQmUCBtGBcvW&ev z>!!#@8=mp{)}+mG$7nN3XJ_XpF!7K_*220i|G-8)&VN=V1PB!+sa{dH@w^hU*U`~2 zTP(lr-5hUcLW#yhY15DZ?kCouKu3zngv~A66cGL4zRU7@zXN5HEcJh{Fb4H5wcNfa zx~(EP;xL)*=t1UVH$pyFwqwCbx*_#bZ2fOQX_g0eIe+0YTQ=7nr=C7M$g;ui%X~EP zc8GlRf>3qSRsvo999Dc{$fqB%weF+gLk7uP_p}=g!Jj_R?r#L1*fl*rs2yH$`Vf0EK%U-rP3SW zxF8?kjc*Zt`W0Rg@3cLF0x!R2NOfofTg8fv+V)@CwoYUh$&&9V^s*|F-RY~p4-Yf+ zb|&9VB3O-?nphU9Nnuj@7RJny>)rOD!>66Lvj!pOinCK822Edu$?$G$w}(%`Dt9ILXnim zpPpL(u*_{8`HqiSLq@lj&?ntRSuO9+#--UXLm75ty(jE-tzF@N()3PggG!c`THM=3N@|v6V@B|HW_1!Bld;vowv}pqZaZ3NE6Td8g6o5&U;8G`t29L( zuz>Zb;;xC=zVw4{gW!Uc@Z5>Joxha)#(O+2FCTGsuC0FcTTrqg7;MGI1c%F9$2(`v zhCBsmD<7vmJv%Yp7%e;EKi>KFx^9RqXMI@UzWr)_n23nIj~)q&$>xx{=frAE<-5HS z9@t))I7}kRos77GqN0boKnSDi+BfGZ_AA7!ox|7`ug=~f1yWs;LR(8E^PBB3p=)96 z(B~%9Rj5;FBkJ1$6;2}%l7F&6E?vh<5Hdz`Bnrgvc?rH>0Il ziC__#Tt+g+UxOFx;AspiD(%UUu;kG_O@~q_3{R}Fz0r<4tN#<#?%&rk2v$CGBI4$2k;-IP{0W?X16q zB)Ic{(1wHuU2>=*5_FhG$jvw{{5h>p0HL9;d=&aeo${Hyf1;x$8*)LI)Z8!FVfeNm zr>goI3ffjxJe!8h+yZ>yuJszv{GrzWL`8w%k>`I!rTIw( z8=S|jO}7w9ps8|qp$)(#%cIPUUJ^GoW!a_zuVPp<<32ID2xG|s|7qxNEe)+ zNZV*vUP*Kt+M_>SkppBZ>yJV#oYAW-}2RclH`MdFGx?yV@w3hWziU;6>w_iO*!CCD#O?;kzh8XYAafcD+17$s7|5 z=wRna0Q49Fqea4LyXxv_XOrysZSjYO?0X|7%>8A$A7L6`3{wN|(_!|p?1jKI-hFR` z)%zauwkMXvY|edoiDcP*{C^v#@*m2nuBnCV)XeunqxlJr5{crO2XHX%eO4+Tvl-zz>6c`+sR*iQsjS2d)6fXP6aeL)6f% z+5S-1&o-bb^pWHgTa4G}GoJLbX+`Q0d^$&aPl9`;j7r|plU*TKLhQ#_I~@Sw(#x~d zdkA)Zp{6V=I#rT2lTB7^$e?EvH*M%#?CL+bK)C~5T;Fp$=Au6Ok3 z2=IoA{DRcm0HG@29&p+rY#s;F!uQ(FsYYd%!<9N3*3?{E8{E!jr)wl>R5F4>_pXV zuU7~L;}Q2hMF*#cr)0Y8|+crgk!kzp0Ur{hnhapFlCY8kz>uqI) zu8x)r-~4$C7Yf1%3mKr-iQy@~!oIw@R_p4@*DMHfhL%32gua z{1J$HzROiH?KjvYEwJMtVB@JIEBb8r3v92{ZBR~i72qWVmF$AtzUXfB9gU$`uZ&o? z$FXb@w}JVq#7K7KfA_Rm)rrYB0aVP#4ED!S*~GW%WwTItd!X6DvvETeH}(XyN2|L) z%_1lw!A+N-UP_d_!=z8v0Ja6u8BEOn+!-`kH z!HkgKeZE6)s-ELbQ<-BEKzaaCcb7N`q*KwuJ5JFpWAIT>1|7sJ-9T?h!b$}K=KLnl1260-AJBHLnaY%G^haq?7MjLtvrZT$n z2|nrrU3$tx@waay`$D&KB~Tgoo?u~;cRrZbb1T}`dTh0WQk^^xUsM9r&qKa0cDzPk z0CU+#+{#J?eE;3u-O9rxoAJgOe$HDie;7NhtYd~c_wW6_e}-?u)NS^p@>s1yAs)|s z6^zYz*PCt$yKU7b~Ao7qK>`k+OvevOi{0#a3s=K<->Y(EyJ7H_95?p(! zqUPvrtG(6trfTKQdQ`}MlTqmV|PbYq#%A9Nugtx_WadO!Y=lkv7F z6j;Weuj9dtDo*{DYAft`TOZ{EX?R=mufs&A=}%|pS8wWZGc%$Sz8J$F^@ULu}YL$cyYa1XA1lp*8H@hh2Hg zPNs=w zt$uK4yu)xzJc8_+w^W-1okUv1C>2B+V5aUOpYX_yL9BhCdcn#YBMb7-Xj_h`tqWqA z+K|bv2efN}Q|-|=ZWy?$>u3?T))iOdhf*cK>qYvEEy<4@LNENj^cYv(VKpv9Z^ z(ocTj>zvCfiXj_r`QzCRabJh=U$kzqv$NF?ZY0IL(60~9=YXm2DjbQk(rVg0>At946_n=C%#}TX?2@seUPmrNY%v;mnWJ{-U9C=tZGB&A?VsH!~jr~&~dGwn6A zw}<~D-agNX=xsgG^N_7=-SCksBn{Mgz(C@siUX|9Bh1_6tcmoPJR`HzWXjK-4D95| zEyvYWrv85)Rw#Nb$>{0R`%*Fvr?e9SE^wMN66IjfJ1+yb?{i_|z4S2oM&ig+u3Ik9 zH-u|puxjDf@E^4!j%_6GxxENds>(P15Rb6_C38>OTpT zUU%vDkG|`uyqhJJ>pW#t*d8ra%sc%^o*i{WtTn5PxeW3-k~rpa9yI+68C@$TwN25q z)d6(@!SiU|Uu@N8`hVHJ89AIWnO`qvRBGZ=Eo*xZL~OM&XQ44qIMVZBl(buI4@7|} z+ig=f;K6TrRV- zG1}egn!Oz}Yo2YSvZq7Fj7n0PtjcEJX~7Er7p|VKrk?Ts>M|g}cy>xm;q0iwk!^ue z28ijzBLlg19~_69NOLDL1bN!VlI zD#@*PRCHH8f0*zeZMhU7i}fAzG#stMFE=1q`Ok~j9i2jrEGm}PS0nH;H|uz`Zy61D zuq3|cPycMVEV9~Ekj02>J}bJRu+(dW4W*J7U6#=;xBZ{qiz;KBb{^)oCTG)QRu+IX zU4%-h(X3rPVNdyi&C$D!#*j2aPR3_3kVjx$ie!uY&0EN*D;N54b@hz?j}MiW1~&E- zDe*UX0nQGJyYGWG(Hu;SzDZ$>S^L>ID32&Ba@bQ^dADx92D$^zMg}VvpU78z2lp^Zy@`JyA@1mh-a0_q4-o{-}b3-uq+cAH={d$Jh36 zk{+G_9?0lDFoGuyc~1H1wS9Va7ztK~pwd-JScwl8fqJXV>(Wtjn>Z4b1JcN(Mg1gG zu6~aI>RxA;{C|RHAes9wi;_+{XJ%D5YlG6n^*y1%!j#GJ=pZ$F(m_mNCv1;?n1=jrln?C}G z4Rt_XTANNttYsUZdnPz30?8z&LNY%;VMP4Syj{n23y0lL-2Bh#H$0ojp?~*2@yyBO zuR6AF#xW)w9)xxC(nAPrph)b)dc0Wq4K0 zUx*z5#LP*?FLQVj?4BZ`^#YYsQYz59`D^}K|1asVo5wu;pel94FOSX?Ry@a@z~#Pe zdTewGo;z@8DcT|X@-w{C=aJWt2ufVzu&+yuKCTH=JOB|I1;hhncsfUwZnpj;bSz{de#?)&NB z5^W&wIsT(BFk}g%>^ctB8la}wLaF(UFzlD=ye59Gk3lw|?8=9eJYr$Hg_QN~&Z0U7|S%&KlHhH>aR!~iHuxmFw1#WG{ z5e*(ut3?eoD9In?ms7Y20l%nvui+N)7M@J!=`$@AY^D6AFH1Fz$ z&0g%*+bU*}WjGo_UHD%rNmhz;nl4Hkz;1pn6oa<8!#f<}k_MHjU0~nGf%AKNbpiS< z7}8~QVsAkXaNrw4t_yaYaBchv*u=As0>3o%`zuMs28R(f=u8BAcIK{f(5E}jUz}(k z2;%SUy?*|}1=JMy5me4!7$v>UN&9S29shL2qVyWJl#8WvD<-Kigom9!M*umE=0v2| zc@8>6bi+~O<74`TK+#W^IdGD{E~k?xap?2X)Rdmwl2h9OEl_Tar!j@LTqFDnP|fE|>=fay~dC z!9u!n?3VKXfvKD!^(v6v#zuEPj`VOK_LmDM>}iNRZcy zTLfj37PvcPVDes=jwg2QM;XiW_4dqB{hyddfanOQSeikRyF3q1tXas+!K%5?{Kl(*!0aRc7JTk>XE+y2<;_#mu?*X<_Y738I(y4j}YWhuy@stv)3zY zXCqtbp*m17vfSXB3p*ibUj@DDe1Pav!b@HUnMyvZtEw^sn)lk)iD(kmE8E%8$>aaJQaTlDoOOKGtvmF z&u|_k8@xc(183u#?MG<-mMuyr|#`r@PylJYW3$yz8fD$vx-_) z<^T5vEoeptw*F1??qC@0jMJ)b)-qtLfxsRrwgme$Bp@{hNzeAkS-@9h5LZ9gliX5( z3qo?2N8c(NxReIC7v{NC;GssdFN~z+#8`qY(VpjBM?2TnVCAa*7(<$%?uvnl%i4i! z`nC4MHK~oY7N!1?2?BQNrS?Yn)-1%FaQJU4b}F=LvYwVzhpCrz?w01Bi*xsf){j9JJh&F71a$CYoZIEs!jcg!5~ON7f_*d; z)TVzPHcW2Vu@Pm}fkk-g7%jg*zBcuHh$w4J_IYEtRXm%)eY$gKb)O@|m}Be{>CK>W zf#T+GY|zXkA&qr2k<}uzL~d;!fTu5W+dT5egD{k!A>$)H|p z$Bt#up;ed9Ld&9FI&J%6g_LaN>>oQ#8NYfhL6V(!8Rk+PcqWTDfA!Cg9&f`1Y2tD@ z?F;ST0k<`!s!zo)NQhQ0I+a$s9AHYRvM+4jOf7h^1g96tXEzbS2@$^I&mt4HSURA1 zy`cEAFnA3)Oc_<=Nse^wiWe{K*by*ljE!k9b3&|yI8X3*7}l(UlD!ZGwElB0Zi!57 z(~A!7hH-t}-_=*5$^UV7cVnm^^l}M1KhkJXX-s$NA|yC%FN17EiBc-=u{NaLPndMC z`&cYkG}Lv-DuadJ_%wuhpn;CAkOYF1aXz~9Pk@BM7d^g$VFrpr(~78csDwJ|Fr}7{;D5L;SmqGBQ?yEo^3pMX0eFHi#{g+*|=~dG$8*$P}=q*PTXe2 zClKH=e$h&+mN_){`_}VXkA1I(cBfnX_y2F1HR^aYXfs6jjNEVA(`h{l@VZu|?^(B{ zlL!}G=n{g0T-FMG{JjOck?FC_PNI-v~C|y&2QyYk+b^E*l5KLI!}%F)m!X{ zuS{Z1i`l(v*v(fXidJkeJ4|l^d;2pS&|2JSx{xvB=dGR6Yu+cO7a~*fU5~1z8`jWi zPoFxNIri#qwOakn+Ku5L*!giYKLQ(eWtwR0cEoCROi0KeD;Y?BWpB-Xx#U#o$@BS#M9 z%{6wJSZ9+lX* z>{RElsZ%3Mc6+|6<3z$Lb2eM4tjbEM!N2_FojES<4Fs5j&8N&h(4i4RW)e6CiEXJmRAo^f1X^iQ3-M_r!K4AuTPVRD< z)GQGpil2D#RAc7UBn|iX_gR>@u-}pmw;a@=%1c~H&lirDwa1*}V2drCFD7af)=|~-Hy4BSdLzJ1u>jQLt9mu zy2}pH3_eMqH3~+`23KxQ91@5Ec>zJ|&G3Bhy^zR#G2T+Clj~UiqtcF7#j~TmSFbDn z#r;4>U8D8IE~6z2je(cfFm}QPTpy1Te$!O^G%vBqZj0o&!a z+e=1a$ws2zA4PB%+<;Ld_MBo%>HuDxr0PnSd|mFrZoEWne@?t7-~ZR%m3B3iWziRA z147Zk4njd_vBd!eg=#@Wkij4*PO#8IAZQCkBL*#|0!f&HvneeQ5F`p|fuMvIC`2TI zM1jH~D9{W+k{}3#At4M2!^^A7GSuo{&>wpB{qo+YJH7kPJ?HGb@3j=Rrf{!guXP43 z_Ys%V$y$xIa!-|~3U3AhVXQmnpl5-MS(*aMY;6eI_z&767w zZHr$~2R-u^zFbVqTYGf8LL-_H>Hw(7`wdW8>!9Fb@`w@CTTd(%UU0Oe@xjsNY7FL` zRC2JuLhnb7d*A7EcR%4E7T?arlJLI9r3pJ7>oRG|I%GCp&QdA1ig2;O1AI}0+-sR> zLZTeD>#UQPS>W91_T^XRHLrI>10>wNfssg{ydY@S6U0xU<4+fUf)uKK{F@;vJ z84X=K)E*E?=uEJb9CkY_Yxt^?8oczMJ+g&m_a`K(UnPQ8}lX9DbOdy1 z22w7$Ym&AV9BpzzZ8J_cn+W*lKI}hIF{PpDHr- zd*q_dw9@Lx$vkVoC5DG44%+BvH%GIk+HlPPa&1Mt6My)NYRM;GIUJOzJmooQ;dXBF zYF2D{yWm=MUV;8M6f^VobCe~&xzVT4VnQQ9`w+P{=_bwcjk0*^Sjvl`&l~l&sq@=7 zwp#vWOMv9hGP3r`gku{L5HFLOVJtF}nOT2D#zwE^9zMjMAP;_NsLD>)@z~fOzv1+^ zC-$=qeCc4*)Q-D@Rst7q-};Av&L!BehuSPx*2)RPF;rycps+hhd1A4RU1nZ&%h2K9 zS6|@LdEM~f=m(Tvz~SW<_n;%*GPc?u&4grpx!o(O8s19hN9j<2{zr^=rI6WZ#FuUs zcg*QYbS=0Kr>T^&Poefex&ZDjcVQBZf+ZPfMR6tFQ0P>LtJjBVDJt`?#G^E@zhN$G0J#RwFFo>V)0{N+MaT? zhOU&ObhD-+eGN`fGzaiNKSH*gV~VtfDKzAWZa>sG{)S-^Zwd{7R4YDo@r;hvlBlOa zn&2Cnw8RwdCVi&$_bl11uB;^CW!`Jc?NOMm)!k$M(4D)R)jZXuSkF-WqHt|2=jJR& zzntp+teWkEn;xn4SI7@H%DmTdcMXbvtdTB?r==p^U^f|-yqknisqEIQvuutHAGv|_ zb(16^HPyc5kN`;WG~ALa-2i$!&)qSVVbeKjj*N__V!S!k7;)XDPJ!)t!SeyRWV%{7 zdS}P^^GXfUZ~zIB4ba?G)e6qKz#Z)Iyz<)pMi>F2ZE!T_8LQR6!eZyW_ z2FAB(d_28-G&2+*YJAa{wb9zLn7Zin)0uA~BVDG6?D-mjX|`m|6ujzvD2vtVC03-t zTBSu^U5Q%q>l=6BPnDeQI$3cXz1Swb(n{PRF8WpI!dcs!`*Oo*iBk($fB)iK8uAlVba)BfnP_Q#q?UPW_p&QJmyEAn#rmTkR6bo1X zTF5Ub;OWou7{ZVe#`=-ADldZy_+10FZJ9Mo9Y|w-TA{ literal 0 HcmV?d00001 diff --git a/src/main/resources/mcmod.info b/versions/1.8.9/src/main/resources/mcmod.info similarity index 100% rename from src/main/resources/mcmod.info rename to versions/1.8.9/src/main/resources/mcmod.info From 5408510c4d61f03b8ef6d62d0baa7af505b6d168 Mon Sep 17 00:00:00 2001 From: BlockyTheDev <86119630+BlockyTheDev@users.noreply.github.com> Date: Thu, 16 Oct 2025 18:32:06 +0200 Subject: [PATCH 02/29] Move assets and RadarListVisibility, RadarListEntry, GsonLocalDateTimeAdapter and GsonRadarListPlayerMapAdapter to common module --- common/build.gradle.kts | 6 +- .../github/communityradargg/forgemod/.gitkeep | 0 .../radarlistmanager/RadarListEntry.java | 0 .../radarlistmanager/RadarListVisibility.java | 0 .../adapters/GsonLocalDateTimeAdapter.java | 0 .../GsonRadarListPlayerMapAdapter.java | 0 common/src/main/resources/.gitkeep | 0 .../resources/assets/communityradar/icon.png | Bin gradle/libs.versions.toml | 8 ++ .../radarlistmanager/RadarListEntry.java | 112 ------------------ .../radarlistmanager/RadarListVisibility.java | 26 ---- .../adapters/GsonLocalDateTimeAdapter.java | 43 ------- .../GsonRadarListPlayerMapAdapter.java | 52 -------- .../resources/assets/communityradar/icon.png | Bin 618237 -> 0 bytes 14 files changed, 13 insertions(+), 234 deletions(-) delete mode 100644 common/src/main/java/io/github/communityradargg/forgemod/.gitkeep rename {versions/1.8.9 => common}/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java (100%) rename {versions/1.8.9 => common}/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java (100%) rename {versions/1.12.2 => common}/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java (100%) rename {versions/1.12.2 => common}/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java (100%) delete mode 100644 common/src/main/resources/.gitkeep rename {versions/1.12.2 => common}/src/main/resources/assets/communityradar/icon.png (100%) delete mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java delete mode 100644 versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java delete mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java delete mode 100644 versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java delete mode 100644 versions/1.8.9/src/main/resources/assets/communityradar/icon.png diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 92e34f3..dd86f33 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -1,7 +1,11 @@ +import org.gradle.kotlin.dsl.libs + base { archivesName.set("common") } +@Suppress("VulnerableLibrariesLocal") // some libs need to stay at the game versions dependencies { - // empty + compileOnly(rootProject.libs.jetbrainsJavaAnnotations) + compileOnly(rootProject.libs.gson) } diff --git a/common/src/main/java/io/github/communityradargg/forgemod/.gitkeep b/common/src/main/java/io/github/communityradargg/forgemod/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java b/common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java similarity index 100% rename from versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java rename to common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java b/common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java similarity index 100% rename from versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java rename to common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java b/common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java similarity index 100% rename from versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java rename to common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java b/common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java similarity index 100% rename from versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java rename to common/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java diff --git a/common/src/main/resources/.gitkeep b/common/src/main/resources/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/versions/1.12.2/src/main/resources/assets/communityradar/icon.png b/common/src/main/resources/assets/communityradar/icon.png similarity index 100% rename from versions/1.12.2/src/main/resources/assets/communityradar/icon.png rename to common/src/main/resources/assets/communityradar/icon.png diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bb268ea..770697e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,6 +4,10 @@ ggEssentialLoom = "1.11.37" spotless = "7.2.1" # libraries +# general libs +jetbrainsJavaAnnotations = "26.0.2-1" +gson = "2.2.4" # needs to stay on 1.8.9 version + # 1.8.9 (Forge) minecraft189 = "1.8.9" mcpMappings189 = "22-1.8.9" @@ -15,6 +19,10 @@ mcpMappings1122 = "39-1.12" forge1122 = "1.12.2-14.23.5.2847" [libraries] +# general libraries +jetbrainsJavaAnnotations = { group = "org.jetbrains", name = "annotations", version.ref = "jetbrainsJavaAnnotations" } +gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" } + # 1.8.9 (Forge) minecraft189 = { group = "com.mojang", name = "minecraft", version.ref = "minecraft189" } mcpMappings189 = { group = "de.oceanlabs.mcp", name = "mcp_stable", version.ref = "mcpMappings189" } diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java deleted file mode 100644 index 1ae3549..0000000 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListEntry.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright 2024 - present CommunityRadarGG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.github.communityradargg.forgemod.radarlistmanager; - -import com.google.gson.annotations.SerializedName; -import org.jetbrains.annotations.NotNull; - -import java.time.LocalDateTime; -import java.util.UUID; - -/** - * A class representing an entry in a radar list. - */ -public class RadarListEntry { - @SerializedName("uuid") - private final UUID uuid; - @SerializedName("name") - private final String name; - @SerializedName("cause") - private final String cause; - @SerializedName("entryCreatedAt") - private final LocalDateTime entryCreationDate; - @SerializedName("entryUpdatedAt") - private final LocalDateTime entryUpdateDate; - @SerializedName("expiryDays") - private final int expiryDays; - - /** - * Constructs a {@link RadarListEntry}. - * - * @param uuid The player uuid of the entry. - * @param name The player name of the entry - * @param cause The cause of the entry. - * @param entryCreationDate The date when the entry was created the first time. - */ - public RadarListEntry(final @NotNull UUID uuid, final @NotNull String name, final @NotNull String cause, final @NotNull LocalDateTime entryCreationDate) { - this.uuid = uuid; - this.name = name; - this.cause = cause; - this.entryCreationDate = entryCreationDate; - this.entryUpdateDate = entryCreationDate; - this.expiryDays = -1; - } - - /** - * Gets the player uuid of the entry. - * - * @return Returns the player uuid of the entry. - */ - public @NotNull UUID uuid() { - return uuid; - } - - /** - * Gets the player name of the entry. - * - * @return Returns the player name of the entry. - */ - public @NotNull String name() { - return name; - } - - /** - * Gets the cause of the entry. - * - * @return Returns the cause of the entry. - */ - public @NotNull String cause() { - return cause; - } - - /** - * Gets the creation datetime of the entry. - * - * @return Returns the creation datetime of the entry. - */ - public LocalDateTime entryCreationDate() { - return entryCreationDate; - } - - /** - * Gets the update datetime of the entry. - * - * @return Returns the update datetime of the entry. - */ - public LocalDateTime entryUpdateDate() { - return entryUpdateDate; - } - - /** - * Gets the expiry days of the entry. - * - * @return Returns the expiry days of the entry. - */ - @SuppressWarnings("unused") // included - json has this field - public int expiryDays() { - return expiryDays; - } -} \ No newline at end of file diff --git a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java b/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java deleted file mode 100644 index 95737d8..0000000 --- a/versions/1.12.2/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/RadarListVisibility.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2024 - present CommunityRadarGG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.github.communityradargg.forgemod.radarlistmanager; - -/** - * An enum representing the visibility state of a radar list. - */ -public enum RadarListVisibility { - /** The state when the list is a public one. */ - PUBLIC, - /** The state when the list is a private one. */ - PRIVATE -} \ No newline at end of file diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java deleted file mode 100644 index 3e671ad..0000000 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonLocalDateTimeAdapter.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright 2024 - present CommunityRadarGG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.github.communityradargg.forgemod.radarlistmanager.adapters; - -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import com.google.gson.JsonPrimitive; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; - -import java.lang.reflect.Type; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; - -/** - * A class with an adapter for serialization and deserialization of the class {@link LocalDateTime} for the GSON library. - */ -public class GsonLocalDateTimeAdapter implements JsonSerializer, JsonDeserializer { - @Override - public LocalDateTime deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) throws JsonParseException { - return LocalDateTime.parse(json.getAsString(), DateTimeFormatter.ISO_DATE_TIME); - } - - @Override - public JsonElement serialize(final LocalDateTime localDateTime, final Type typeOfSrc, final JsonSerializationContext context) { - return new JsonPrimitive(localDateTime.format(DateTimeFormatter.ISO_DATE_TIME)); - } -} diff --git a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java b/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java deleted file mode 100644 index 877d1f4..0000000 --- a/versions/1.8.9/src/main/java/io/github/communityradargg/forgemod/radarlistmanager/adapters/GsonRadarListPlayerMapAdapter.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2024 - present CommunityRadarGG - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.github.communityradargg.forgemod.radarlistmanager.adapters; - -import com.google.gson.JsonArray; -import com.google.gson.JsonDeserializationContext; -import com.google.gson.JsonDeserializer; -import com.google.gson.JsonElement; -import com.google.gson.JsonParseException; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; -import io.github.communityradargg.forgemod.radarlistmanager.RadarListEntry; - -import java.lang.reflect.Type; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -/** - * A class with an adapter for serialization and deserialization of following structure {@code Map} for the GSON library. - */ -public class GsonRadarListPlayerMapAdapter implements JsonSerializer>, JsonDeserializer> { - @Override - public Map deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context) throws JsonParseException { - final JsonArray playerMapJsonArray = json.getAsJsonArray(); - final Map playerMap = new HashMap<>(); - - playerMapJsonArray.forEach(jsonElement -> { - final RadarListEntry entry = context.deserialize(jsonElement, RadarListEntry.class); - playerMap.put(entry.uuid(), entry); - }); - return playerMap; - } - - @Override - public JsonElement serialize(final Map playerMap, final Type typeOfSrc, final JsonSerializationContext context) { - return context.serialize(playerMap.values()); - } -} diff --git a/versions/1.8.9/src/main/resources/assets/communityradar/icon.png b/versions/1.8.9/src/main/resources/assets/communityradar/icon.png deleted file mode 100644 index fdc7ec94d651b6ec0a6129060e923710c253f211..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 618237 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�=kbmdIo-}SexxFAo=o1f-2WKDV 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 z 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%0Du{l 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