diff --git a/license.txt b/license.txt index f610cb6..36dc559 100644 --- a/license.txt +++ b/license.txt @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021-2023 HypherionSA and Contributors +Copyright (c) 2021-2024 HypherionSA and Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/readme.md b/readme.md index 7e975fc..2198901 100644 --- a/readme.md +++ b/readme.md @@ -3,7 +3,7 @@ Minecraft independent code used by Simple Discord Link. This library contains all the core discord code, and code that is not dependent on Minecraft. -Requires JAVA 16 and Above! +Requires JAVA 17 and Above! *** diff --git a/src/main/java/com/hypherionmc/sdlink/core/accounts/DiscordUser.java b/src/main/java/com/hypherionmc/sdlink/core/accounts/DiscordUser.java index a17241e..2740b4b 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/accounts/DiscordUser.java +++ b/src/main/java/com/hypherionmc/sdlink/core/accounts/DiscordUser.java @@ -8,23 +8,14 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; +@Setter +@Getter @AllArgsConstructor(staticName = "of") public class DiscordUser { - @Getter - @Setter private String effectiveName; - - @Getter - @Setter private String avatarUrl; - - @Getter - @Setter private long userId; - - @Getter - @Setter private String asMention; } diff --git a/src/main/java/com/hypherionmc/sdlink/core/accounts/MinecraftAccount.java b/src/main/java/com/hypherionmc/sdlink/core/accounts/MinecraftAccount.java index 540c9d8..2450e7a 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/accounts/MinecraftAccount.java +++ b/src/main/java/com/hypherionmc/sdlink/core/accounts/MinecraftAccount.java @@ -14,6 +14,7 @@ import com.hypherionmc.sdlink.core.services.SDLinkPlatform; import com.hypherionmc.sdlink.core.util.Profiler; import com.hypherionmc.sdlink.core.util.SDLinkUtils; import com.mojang.authlib.GameProfile; +import lombok.Getter; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Role; @@ -47,7 +48,9 @@ import static com.hypherionmc.sdlink.core.managers.DatabaseManager.sdlinkDatabas */ public class MinecraftAccount { + @Getter private final String username; + @Getter private final UUID uuid; private final boolean isOffline; private final boolean isValid; @@ -122,52 +125,6 @@ public class MinecraftAccount { } // - private static Pair fetchPlayer(String name) { - OkHttpClient client = new OkHttpClient.Builder() - .callTimeout(20, TimeUnit.SECONDS) - .readTimeout(20, TimeUnit.SECONDS) - .connectTimeout(20, TimeUnit.SECONDS) - .build(); - - try { - Request request = new Request.Builder() - .url("https://api.mojang.com/users/profiles/minecraft/" + name) - .cacheControl(new CacheControl.Builder().noCache().build()) - .build(); - Response response = client.newCall(request).execute(); - - if (response.isSuccessful() && response.body() != null) { - JSONObject obj = new JSONObject(new JSONTokener(response.body().string())); - String uuid = ""; - String returnname = name; - - if (obj.has("name") && !obj.getString("name").isEmpty()) { - returnname = obj.getString("name"); - } - if (obj.has("id") && !obj.getString("id").isEmpty()) { - uuid = obj.getString("id"); - } - - response.close(); - return Pair.of(returnname, uuid.isEmpty() ? null : mojangIdToUUID(uuid)); - } - } catch (IOException | JSONException e) { - e.printStackTrace(); - } - return Pair.of("", null); - } - - private static UUID mojangIdToUUID(String id) { - final List strings = new ArrayList<>(); - strings.add(id.substring(0, 8)); - strings.add(id.substring(8, 12)); - strings.add(id.substring(12, 16)); - strings.add(id.substring(16, 20)); - strings.add(id.substring(20, 32)); - - return UUID.fromString(String.join("-", strings)); - } - private static Pair offlinePlayer(String offlineName) { return Pair.of(offlineName, UUID.nameUUIDFromBytes(("OfflinePlayer:" + offlineName).getBytes(StandardCharsets.UTF_8))); } @@ -417,14 +374,6 @@ public class MinecraftAccount { } } - public String getUsername() { - return username; - } - - public UUID getUuid() { - return uuid; - } - public boolean isValid() { return isValid; } @@ -432,5 +381,51 @@ public class MinecraftAccount { public boolean isOffline() { return isOffline; } + + private static Pair fetchPlayer(String name) { + OkHttpClient client = new OkHttpClient.Builder() + .callTimeout(20, TimeUnit.SECONDS) + .readTimeout(20, TimeUnit.SECONDS) + .connectTimeout(20, TimeUnit.SECONDS) + .build(); + + try { + Request request = new Request.Builder() + .url("https://api.mojang.com/users/profiles/minecraft/" + name) + .cacheControl(new CacheControl.Builder().noCache().build()) + .build(); + Response response = client.newCall(request).execute(); + + if (response.isSuccessful() && response.body() != null) { + JSONObject obj = new JSONObject(new JSONTokener(response.body().string())); + String uuid = ""; + String returnname = name; + + if (obj.has("name") && !obj.getString("name").isEmpty()) { + returnname = obj.getString("name"); + } + if (obj.has("id") && !obj.getString("id").isEmpty()) { + uuid = obj.getString("id"); + } + + response.close(); + return Pair.of(returnname, uuid.isEmpty() ? null : mojangIdToUUID(uuid)); + } + } catch (IOException | JSONException e) { + e.printStackTrace(); + } + return Pair.of("", null); + } + + private static UUID mojangIdToUUID(String id) { + final List strings = new ArrayList<>(); + strings.add(id.substring(0, 8)); + strings.add(id.substring(8, 12)); + strings.add(id.substring(12, 16)); + strings.add(id.substring(16, 20)); + strings.add(id.substring(20, 32)); + + return UUID.fromString(String.join("-", strings)); + } // } diff --git a/src/main/java/com/hypherionmc/sdlink/core/database/SDLinkAccount.java b/src/main/java/com/hypherionmc/sdlink/core/database/SDLinkAccount.java index 88a667a..f4cee46 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/database/SDLinkAccount.java +++ b/src/main/java/com/hypherionmc/sdlink/core/database/SDLinkAccount.java @@ -9,28 +9,16 @@ import io.jsondb.annotation.Id; import lombok.Getter; import lombok.Setter; +@Setter +@Getter @Document(collection = "verifiedaccounts", schemaVersion = "1.0") public class SDLinkAccount { @Id - @Getter - @Setter private String uuid; - - @Getter - @Setter private String username; - - @Getter - @Setter private String discordID; - - @Getter - @Setter private String verifyCode; - - @Getter - @Setter private boolean isOffline; } diff --git a/src/main/java/com/hypherionmc/sdlink/core/discord/BotController.java b/src/main/java/com/hypherionmc/sdlink/core/discord/BotController.java index ee71067..44f7777 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/discord/BotController.java +++ b/src/main/java/com/hypherionmc/sdlink/core/discord/BotController.java @@ -16,6 +16,7 @@ import com.hypherionmc.sdlink.core.util.ThreadedEventManager; import com.jagrosh.jdautilities.command.CommandClient; import com.jagrosh.jdautilities.command.CommandClientBuilder; import com.jagrosh.jdautilities.commons.waiter.EventWaiter; +import lombok.Getter; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; import net.dv8tion.jda.api.requests.GatewayIntent; @@ -37,10 +38,15 @@ public class BotController { // Thread Execution Manager public static final ScheduledExecutorService taskManager = Executors.newScheduledThreadPool(Runtime.getRuntime().availableProcessors()); + // Public instance of this class that can be called anywhere public static BotController INSTANCE; + + @Getter private final EventWaiter eventWaiter = new EventWaiter(); + @Getter private final Logger logger; + // Required Variables private JDA _jda; @@ -199,15 +205,8 @@ public class BotController { } } - public Logger getLogger() { - return logger; - } - public JDA getJDA() { return this._jda; } - public EventWaiter getEventWaiter() { - return eventWaiter; - } } diff --git a/src/main/java/com/hypherionmc/sdlink/core/managers/CacheManager.java b/src/main/java/com/hypherionmc/sdlink/core/managers/CacheManager.java index a96310b..5d44c7c 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/managers/CacheManager.java +++ b/src/main/java/com/hypherionmc/sdlink/core/managers/CacheManager.java @@ -5,6 +5,7 @@ package com.hypherionmc.sdlink.core.managers; import com.hypherionmc.sdlink.core.discord.BotController; +import lombok.Getter; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.channel.ChannelType; @@ -15,10 +16,14 @@ import java.util.Set; public class CacheManager { + @Getter private static final HashMap serverChannels = new HashMap<>(); + @Getter private static final HashMap serverRoles = new HashMap<>(); + @Getter private static final HashMap userCache = new HashMap<>(); - private static Set discordMembers = new HashSet<>(); + @Getter + private static final Set discordMembers = new HashSet<>(); public static void loadCache() { loadChannelCache(); @@ -71,19 +76,4 @@ public class CacheManager { }); } - public static HashMap getServerChannels() { - return serverChannels; - } - - public static HashMap getServerRoles() { - return serverRoles; - } - - public static HashMap getUserCache() { - return userCache; - } - - public static Set getDiscordMembers() { - return discordMembers; - } } diff --git a/src/main/java/com/hypherionmc/sdlink/core/managers/ChannelManager.java b/src/main/java/com/hypherionmc/sdlink/core/managers/ChannelManager.java index 5791b43..b902aa4 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/managers/ChannelManager.java +++ b/src/main/java/com/hypherionmc/sdlink/core/managers/ChannelManager.java @@ -7,6 +7,7 @@ package com.hypherionmc.sdlink.core.managers; import com.hypherionmc.sdlink.core.config.SDLinkConfig; import com.hypherionmc.sdlink.core.discord.BotController; import com.hypherionmc.sdlink.core.messaging.MessageDestination; +import lombok.Getter; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.channel.middleman.StandardGuildMessageChannel; import org.apache.commons.lang3.tuple.Pair; @@ -20,6 +21,7 @@ import java.util.HashMap; public class ChannelManager { private static final HashMap> channelMap = new HashMap<>(); + @Getter private static StandardGuildMessageChannel consoleChannel; /** @@ -42,10 +44,6 @@ public class ChannelManager { channelMap.put(MessageDestination.CONSOLE, consoleChannel != null ? Pair.of(consoleChannel, true) : Pair.of(chatChannel, false)); } - public static StandardGuildMessageChannel getConsoleChannel() { - return consoleChannel; - } - public static StandardGuildMessageChannel getDestinationChannel(MessageDestination destination) { return channelMap.get(destination).getLeft(); } diff --git a/src/main/java/com/hypherionmc/sdlink/core/managers/RoleManager.java b/src/main/java/com/hypherionmc/sdlink/core/managers/RoleManager.java index ba8f476..974bd1b 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/managers/RoleManager.java +++ b/src/main/java/com/hypherionmc/sdlink/core/managers/RoleManager.java @@ -8,6 +8,7 @@ import com.hypherionmc.sdlink.core.config.SDLinkConfig; import com.hypherionmc.sdlink.core.discord.BotController; import com.hypherionmc.sdlink.core.util.SDLinkUtils; import com.hypherionmc.sdlink.core.util.SystemUtils; +import lombok.Getter; import net.dv8tion.jda.api.entities.Role; import java.util.HashSet; @@ -21,9 +22,12 @@ import java.util.concurrent.atomic.AtomicInteger; */ public class RoleManager { + @Getter private static final Set verificationRoles = new HashSet<>(); + @Getter private static final Set deniedRoles = new HashSet<>(); + @Getter private static Role verifiedRole = null; /** @@ -91,15 +95,4 @@ public class RoleManager { return null; } - public static Set getVerificationRoles() { - return verificationRoles; - } - - public static Role getVerifiedRole() { - return verifiedRole; - } - - public static Set getDeniedRoles() { - return deniedRoles; - } } diff --git a/src/main/java/com/hypherionmc/sdlink/core/messaging/Result.java b/src/main/java/com/hypherionmc/sdlink/core/messaging/Result.java index 7391150..38f12d4 100644 --- a/src/main/java/com/hypherionmc/sdlink/core/messaging/Result.java +++ b/src/main/java/com/hypherionmc/sdlink/core/messaging/Result.java @@ -4,6 +4,8 @@ */ package com.hypherionmc.sdlink.core.messaging; +import lombok.Getter; + /** * @author HypherionSA * Helper Class to return the result of interactions between Discord and Minecraft @@ -11,6 +13,7 @@ package com.hypherionmc.sdlink.core.messaging; public class Result { private final Type type; + @Getter private final String message; private Result(Type type, String message) { this.type = type; @@ -29,10 +32,6 @@ public class Result { return this.type == Type.ERROR; } - public String getMessage() { - return message; - } - enum Type { ERROR, SUCCESS