From 9720cb2b5b20f2ef4c3037e7bec688411bd20680 Mon Sep 17 00:00:00 2001 From: KoutaChan <76502083+KoutaChan@users.noreply.github.com> Date: Fri, 7 Oct 2022 00:53:29 +0900 Subject: [PATCH 1/9] UpdateAlert --- .../api/PlayerRoleCheckerAPI.java | 11 +++++++++++ .../api/data/APIHookCustom.java | 15 +++++++++++++++ .../api/data/connector/ConnectorAPIHook.java | 7 +++++++ .../api/utils/updater/UpdateAlert.java | 16 ++++++---------- 4 files changed, 39 insertions(+), 10 deletions(-) diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java index 997908e..f3737e4 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java @@ -18,6 +18,8 @@ public static boolean isHookedConnector() { } /** + * @return {@link ConnectorAPIHook} + * * @implNote *
注意: *
※1 このメソッドは他のプラグインが返される可能性があります @@ -31,6 +33,15 @@ public static ConnectorAPIHook getConnectorAPI() { return (ConnectorAPIHook) pairs.get(HookedAPIType.CONNECTOR); } + /** + * @return {@link ConnectorAPIHook} + * + * @implNote + *
コネクターのAPIを返します + * + * @see ConnectorAPIHook + * @see org.bukkit.plugin.PluginManager#getPlugin(String) + */ public static ConnectorAPIHook getConnector() { return (ConnectorAPIHook) Bukkit.getPluginManager().getPlugin("PlayerRoleCheckerConnector"); } diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/APIHookCustom.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/APIHookCustom.java index e87be05..9c5b211 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/APIHookCustom.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/APIHookCustom.java @@ -4,8 +4,23 @@ import net.klnetwork.playerrolechecker.api.discord.CommandManager; public interface APIHookCustom extends APIHook { + /** + * @return Discordのコマンドのインスタンスを返します + * + * @implNote + *
Discordのコマンドのインスタンスを返します + *
自分のコマンドを登録することやコマンドを削除することが可能 + * + * @see CommandManager + */ CommandManager getCommandManager(); + /** + * @return Java Discord API のインスタンスを返します + * + * @see Java Discord API + * @see JDA + */ JDA getJDA(); PlayerDataTable getPlayerData(); diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorAPIHook.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorAPIHook.java index ec045fe..044c213 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorAPIHook.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorAPIHook.java @@ -1,12 +1,19 @@ package net.klnetwork.playerrolechecker.api.data.connector; import net.klnetwork.playerrolechecker.api.data.APIHookCustom; +import net.klnetwork.playerrolechecker.api.data.PlayerDataTable; public interface ConnectorAPIHook extends APIHookCustom { ConnectorBypassTable getBypass(); void setBypass(ConnectorBypassTable table); + /** + * @implNote + *
特に何もわからない場合は使用しないでください + * + * @deprecated {@link #setPlayerData(PlayerDataTable)} などを使用してください + */ @Deprecated ConnectorCustomDataBase getCustomDataBase(); diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/utils/updater/UpdateAlert.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/utils/updater/UpdateAlert.java index f48e444..e730456 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/utils/updater/UpdateAlert.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/utils/updater/UpdateAlert.java @@ -15,7 +15,7 @@ public class UpdateAlert implements Listener { private final UpdateBuilder builder; private boolean releasedNewVersion; - private int id = -1; + private BukkitTask task; private String version; private String current; @@ -32,7 +32,7 @@ public void registerTask() { if (isEnabled()) { stop(); - BukkitTask task = Bukkit.getScheduler().runTaskTimerAsynchronously(builder.plugin(), () -> { + task = Bukkit.getScheduler().runTaskTimerAsynchronously(builder.plugin(), () -> { final boolean hasNewVersion = !isNewerVersion(); if (isConsoleAlert() && !releasedNewVersion && hasNewVersion) { @@ -42,8 +42,6 @@ public void registerTask() { this.releasedNewVersion = hasNewVersion; }, 0, builder.checkTicks()); - id = task.getTaskId(); - Bukkit.getPluginManager().registerEvents(this, getPlugin()); } } @@ -68,8 +66,7 @@ public boolean isNewerVersion() { current = replaceRegex(isDefaultCheck() ? getVersion() : getPlugin().getDescription().getVersion()); - return isSmartVersionCheck() ? Double.parseDouble(current) >= Double.parseDouble(version) - : version.equalsIgnoreCase(current); + return version.equalsIgnoreCase(current); } private String replaceRegex(String string) { @@ -81,10 +78,9 @@ private String replaceRegex(String string) { } public void stop() { - if (id != -1) { - Bukkit.getScheduler().cancelTask(id); - - id = -1; + if (task == null && !task.isCancelled()) { + task.cancel(); + task = null; } } From 3cca988e90ea88b3619ef4774d5973eac543b895 Mon Sep 17 00:00:00 2001 From: KoutaChan <76502083+KoutaChan@users.noreply.github.com> Date: Fri, 7 Oct 2022 01:04:43 +0900 Subject: [PATCH 2/9] public #canRegisterUnlimitedAccount() --- .../net/klnetwork/playerrolechecker/api/ConfigValue.java | 4 ++++ .../api/data/checker/CheckerConfigManager.java | 8 ++++++++ .../api/data/connector/ConnectorAPIHook.java | 6 +++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/api/ConfigValue.java b/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/api/ConfigValue.java index 74b5bbc..ef32e4d 100644 --- a/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/api/ConfigValue.java +++ b/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/api/ConfigValue.java @@ -65,18 +65,22 @@ public void setVerifiedPlayerIgnore(boolean verifiedPlayerIgnore) { this.verifiedPlayerIgnore = verifiedPlayerIgnore; } + @Override public boolean canRegisterUnlimitedAccount() { return canRegisterUnlimitedAccount; } + @Override public void setCanRegisterUnlimitedAccount(boolean canRegisterUnlimitedAccount) { this.canRegisterUnlimitedAccount = canRegisterUnlimitedAccount; } + @Override public int getAccountPerDiscord() { return accountPerDiscord; } + @Override public void setAccountPerDiscord(int accountPerDiscord) { this.accountPerDiscord = accountPerDiscord; } diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/checker/CheckerConfigManager.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/checker/CheckerConfigManager.java index 8dbce80..378185b 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/checker/CheckerConfigManager.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/checker/CheckerConfigManager.java @@ -16,4 +16,12 @@ public interface CheckerConfigManager { boolean isVerifiedPlayerIgnore(); void setVerifiedPlayerIgnore(boolean verifiedPlayerIgnore); + + boolean canRegisterUnlimitedAccount(); + + void setCanRegisterUnlimitedAccount(boolean canRegisterUnlimitedAccount); + + int getAccountPerDiscord(); + + void setAccountPerDiscord(int accountPerDiscord); } diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorAPIHook.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorAPIHook.java index 044c213..dc44936 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorAPIHook.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorAPIHook.java @@ -10,12 +10,16 @@ public interface ConnectorAPIHook extends APIHookCustom { /** * @implNote - *
特に何もわからない場合は使用しないでください + *
わからない場合は使用しないでください * * @deprecated {@link #setPlayerData(PlayerDataTable)} などを使用してください */ @Deprecated ConnectorCustomDataBase getCustomDataBase(); + /** + * + * @return + */ ConnectorConfigManager getConfigManager(); } \ No newline at end of file From 0cdb2d4bf93b7e6bd726e49664dba9dd29dddd9a Mon Sep 17 00:00:00 2001 From: KoutaChan <76502083+KoutaChan@users.noreply.github.com> Date: Sat, 8 Oct 2022 05:06:00 +0900 Subject: [PATCH 3/9] Added Javadoc (WIP) --- .../jda/command/ForceJoinCommand.java | 1 - .../playerrolechecker/table/PlayerDataSQL.java | 6 +++--- .../api/PlayerRoleCheckerAPI.java | 11 ++++++++++- .../api/data/codeapi/CodeAPIConfigManager.java | 18 ++++++++++++++++++ .../api/data/codeapi/CodeAPIHook.java | 1 + .../table/PlayerDataSQL.java | 6 +++--- 6 files changed, 35 insertions(+), 8 deletions(-) diff --git a/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/jda/command/ForceJoinCommand.java b/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/jda/command/ForceJoinCommand.java index 5cb3db4..5a44388 100644 --- a/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/jda/command/ForceJoinCommand.java +++ b/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/jda/command/ForceJoinCommand.java @@ -20,7 +20,6 @@ public ForceJoinCommand(Plugin plugin) { @Override public String getCommandName() { - //todo: customizable! return "!forcejoin"; } diff --git a/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/table/PlayerDataSQL.java b/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/table/PlayerDataSQL.java index aaa72a8..e9b4522 100644 --- a/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/table/PlayerDataSQL.java +++ b/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/table/PlayerDataSQL.java @@ -35,7 +35,7 @@ public void asyncDiscordId(UUID uuid, Consumer discordId) { @Override public void asyncDiscordId(String uuid, Consumer discordId) { - Bukkit.getScheduler().runTaskAsynchronously(PlayerRoleChecker.INSTANCE, () -> discordId.accept(getDiscordId(uuid))); + Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> discordId.accept(getDiscordId(uuid))); } @Override @@ -45,12 +45,12 @@ public void asyncDiscordId(UUID uuid, boolean bedrock, Consumer disc @Override public void asyncDiscordId(String uuid, boolean bedrock, Consumer discordId) { - Bukkit.getScheduler().runTaskAsynchronously(PlayerRoleChecker.INSTANCE, () -> discordId.accept(getDiscordId(uuid, bedrock))); + Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> discordId.accept(getDiscordId(uuid, bedrock))); } @Override public void asyncUUID(String discordId, Consumer uuid) { - Bukkit.getScheduler().runTaskAsynchronously(PlayerRoleChecker.INSTANCE, () -> uuid.accept(getUUID(discordId))); + Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> uuid.accept(getUUID(discordId))); } @Override diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java index f3737e4..00925a1 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java @@ -110,10 +110,19 @@ public static List getHookedAPIType() { return new ArrayList<>(getAPIType()); } - private static Set getAPIType() { + public static Set getAPIType() { return pairs.keySet(); } + public static Map getPairs() { + return pairs; + } + + /** + * @implNote + *
使用できるAPIを取得します + *
このメソッドが使われた場合 {@link #getPairs()} にキャッシュされます + */ public static void init() { pairs.clear(); diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPIConfigManager.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPIConfigManager.java index f36c8ed..2f97a40 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPIConfigManager.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPIConfigManager.java @@ -1,15 +1,33 @@ package net.klnetwork.playerrolechecker.api.data.codeapi; public interface CodeAPIConfigManager { + /** + * @return コードが生成される最小値 + */ int getMin(); + /** + * @param min 最小値 + */ void setMin(int min); + /** + * @return コードが生成される最大値 + */ int getMax(); + /** + * @param max 最大値 + */ void setMax(int max); + /** + * @return 一時的なテーブルから削除される時間 + */ int getDeleteSecond(); + /** + * @param deleteSecond 一時的なテーブルから削除する時間 + */ void setDeleteSecond(int deleteSecond); } \ No newline at end of file diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPIHook.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPIHook.java index 59fcdb1..5e5f396 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPIHook.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPIHook.java @@ -11,5 +11,6 @@ public interface CodeAPIHook extends APIHook { void setTemporary(TemporaryTable table); + CodeAPIConfigManager getConfigManager(); } diff --git a/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/table/PlayerDataSQL.java b/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/table/PlayerDataSQL.java index 2f7ccf1..4f5d2c2 100644 --- a/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/table/PlayerDataSQL.java +++ b/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/table/PlayerDataSQL.java @@ -35,7 +35,7 @@ public void asyncDiscordId(UUID uuid, Consumer discordId) { @Override public void asyncDiscordId(String uuid, Consumer discordId) { - Bukkit.getScheduler().runTaskAsynchronously(PlayerRoleCheckerConnector.INSTANCE, () -> discordId.accept(getDiscordId(uuid))); + Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> discordId.accept(getDiscordId(uuid))); } @Override @@ -45,12 +45,12 @@ public void asyncDiscordId(UUID uuid, boolean bedrock, Consumer disc @Override public void asyncDiscordId(String uuid, boolean bedrock, Consumer discordId) { - Bukkit.getScheduler().runTaskAsynchronously(PlayerRoleCheckerConnector.INSTANCE, () -> discordId.accept(getDiscordId(uuid, bedrock))); + Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> discordId.accept(getDiscordId(uuid, bedrock))); } @Override public void asyncUUID(String discordId, Consumer uuid) { - Bukkit.getScheduler().runTaskAsynchronously(PlayerRoleCheckerConnector.INSTANCE, () -> uuid.accept(getUUID(discordId))); + Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> uuid.accept(getUUID(discordId))); } @Override From 51a1a4b02015b41dad7ea69cfce7b46aa5ffcad2 Mon Sep 17 00:00:00 2001 From: KoutaChan <76502083+KoutaChan@users.noreply.github.com> Date: Sat, 8 Oct 2022 05:09:45 +0900 Subject: [PATCH 4/9] Upgrade spigot-api --- CodeAPI/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CodeAPI/pom.xml b/CodeAPI/pom.xml index b289dc0..ab79337 100644 --- a/CodeAPI/pom.xml +++ b/CodeAPI/pom.xml @@ -70,7 +70,7 @@ org.spigotmc spigot-api - 1.8-R0.1-SNAPSHOT + 1.19-R0.1-SNAPSHOT provided From 18d77a57cd1f196a7b77fa28611cc1a712026697 Mon Sep 17 00:00:00 2001 From: KoutaChan <76502083+KoutaChan@users.noreply.github.com> Date: Sat, 15 Oct 2022 06:56:40 +0900 Subject: [PATCH 5/9] Added Javadoc (WIP) --- .../playerrolechecker/api/PlayerRoleCheckerAPI.java | 3 +++ .../api/data/checker/CheckerConfigManager.java | 8 +++++++- .../playerrolechecker/api/data/codeapi/CodeAPIHook.java | 1 - .../api/data/connector/ConnectorAPIHook.java | 4 +++- .../playerrolechecker/api/discord/CommandManager.java | 1 - 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java index 00925a1..d29bdcc 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java @@ -114,6 +114,9 @@ public static Set getAPIType() { return pairs.keySet(); } + /** + * @return キャッシュされた使用可能なAPI + */ public static Map getPairs() { return pairs; } diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/checker/CheckerConfigManager.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/checker/CheckerConfigManager.java index 378185b..4a7d800 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/checker/CheckerConfigManager.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/checker/CheckerConfigManager.java @@ -3,6 +3,9 @@ public interface CheckerConfigManager { int getDeleteSecond(); + /** + * @param deleteSecond 削除時間を上書きします + */ void setDeleteSecond(int deleteSecond); int getMax(); @@ -23,5 +26,8 @@ public interface CheckerConfigManager { int getAccountPerDiscord(); + /** + * @param accountPerDiscord Discordアカウントごとに最大登録数を制御します + */ void setAccountPerDiscord(int accountPerDiscord); -} +} \ No newline at end of file diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPIHook.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPIHook.java index 5e5f396..59fcdb1 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPIHook.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPIHook.java @@ -11,6 +11,5 @@ public interface CodeAPIHook extends APIHook { void setTemporary(TemporaryTable table); - CodeAPIConfigManager getConfigManager(); } diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorAPIHook.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorAPIHook.java index dc44936..8797b46 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorAPIHook.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorAPIHook.java @@ -12,7 +12,9 @@ public interface ConnectorAPIHook extends APIHookCustom { * @implNote *
わからない場合は使用しないでください * - * @deprecated {@link #setPlayerData(PlayerDataTable)} などを使用してください + * @deprecated + *
@uses {@link #setPlayerData(PlayerDataTable)} + *
@uses {@link #setBypass(ConnectorBypassTable)} */ @Deprecated ConnectorCustomDataBase getCustomDataBase(); diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/discord/CommandManager.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/discord/CommandManager.java index b1bfa98..efe8a16 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/discord/CommandManager.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/discord/CommandManager.java @@ -52,7 +52,6 @@ public void onMessageReceived(@NotNull MessageReceivedEvent event) { && name.hasPermission(data.getMember()) && (name.isGlobalCommand() || name.isWorkCommand(data)) && name.isWork(data)) - .collect(Collectors.toList()) .forEach(message -> { try { message.onMessageReceiveEvent(data); From 69938cd48db435cfdea50dba2b4986e168c95b42 Mon Sep 17 00:00:00 2001 From: KoutaChan <76502083+KoutaChan@users.noreply.github.com> Date: Sat, 15 Oct 2022 19:05:54 +0900 Subject: [PATCH 6/9] Update PlayerRoleCheckerAPI.java --- .../api/PlayerRoleCheckerAPI.java | 47 +++++++++++++------ 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java index d29bdcc..bbb2d89 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java @@ -21,9 +21,8 @@ public static boolean isHookedConnector() { * @return {@link ConnectorAPIHook} * * @implNote - *
注意: - *
※1 このメソッドは他のプラグインが返される可能性があります - *
※2 複数のAPIに接続できた場合は最後に見つかったAPIが返されます + *
  • このメソッドは他のプラグインが返される可能性があります + *
  • 複数のAPIに接続できた場合は最後に見つかったAPIが返されま */ public static ConnectorAPIHook getConnectorAPI() { if (!pairs.containsKey(HookedAPIType.CONNECTOR) && !isHookedConnector()) { @@ -46,15 +45,23 @@ public static ConnectorAPIHook getConnector() { return (ConnectorAPIHook) Bukkit.getPluginManager().getPlugin("PlayerRoleCheckerConnector"); } + /** + * @return CheckerのAPIに接続されているか + * + * @implNote + *
  • このメソッドは他のプラグインが返される可能性があります + *
  • 複数のAPIに接続できた場合は最後に見つかったAPIが返されます + * + * @see #getHookedAPIType() + */ public static boolean isHookedChecker() { return getHookedAPIType().contains(HookedAPIType.CHECKER); } /** * @implNote - *
    注意: - *
    ※1 このメソッドは他のプラグインが返される可能性があります - *
    ※2 複数のAPIに接続できた場合は最後に見つかったAPIが返されます + *
  • このメソッドは他のプラグインが返される可能性があります + *
  • 複数のAPIに接続できた場合は最後に見つかったAPIが返されま */ public static CheckerAPIHook getCheckerAPI() { if (!pairs.containsKey(HookedAPIType.CHECKER) && !isHookedChecker()) { @@ -64,6 +71,15 @@ public static CheckerAPIHook getCheckerAPI() { return (CheckerAPIHook) pairs.get(HookedAPIType.CHECKER); } + /** + * @return {@link CheckerAPIHook} + * + * @implNote + *
    チェッカーのAPIを返します + * + * @see ConnectorAPIHook + * @see org.bukkit.plugin.PluginManager#getPlugin(String) + */ public static CheckerAPIHook getChecker() { return (CheckerAPIHook) Bukkit.getPluginManager().getPlugin("PlayerRoleChecker"); } @@ -72,9 +88,8 @@ public static CheckerAPIHook getChecker() { * @return CodeAPIのAPIに接続されているか * * @implNote - *
    注意: - *
    ※1 このメソッドは他のプラグインが返される可能性があります - *
    ※2 複数のAPIに接続できた場合は最後に見つかったAPIが返されます + *
  • このメソッドは他のプラグインが返される可能性があります + *
  • 複数のAPIに接続できた場合は最後に見つかったAPIが返されます * * @see #getHookedAPIType() */ @@ -86,9 +101,8 @@ public static boolean isHookedCodeAPI() { * @return {@link CodeAPIHook} * * @implNote - *
    注意: - *
    ※1 このメソッドは他のプラグインが返される可能性があります - *
    ※2 複数のAPIに接続できた場合は最後に見つかったAPIが返されます + *
  • このメソッドは他のプラグインが返される可能性があります + *
  • 複数のAPIに接続できた場合は最後に見つかったAPIが返されま * * @see CodeAPIHook * @see #isHookedCodeAPI() @@ -115,7 +129,10 @@ public static Set getAPIType() { } /** - * @return キャッシュされた使用可能なAPI + * @return 使用可能なAPIを返します + * + * @implNote + *
  • このメソッドは {@link #init()} を実行していない場合必ず空の {@link HashMap} が返されます */ public static Map getPairs() { return pairs; @@ -123,8 +140,8 @@ public static Map getPairs() { /** * @implNote - *
    使用できるAPIを取得します - *
    このメソッドが使われた場合 {@link #getPairs()} にキャッシュされます + *
    使用できるAPIを取得します + *
  • このメソッドが使われた場合 {@link #getPairs()} にキャッシュされます */ public static void init() { pairs.clear(); From 6d2d06f0a91e3f180eb792bd473b74a0b3a430fb Mon Sep 17 00:00:00 2001 From: KoutaChan <76502083+KoutaChan@users.noreply.github.com> Date: Sat, 15 Oct 2022 22:31:59 +0900 Subject: [PATCH 7/9] Update Javadoc (WIP) --- .../api/PlayerRoleCheckerAPI.java | 25 +++++++++++++------ .../playerrolechecker/api/data/APIHook.java | 6 +++++ .../api/data/codeapi/CodeAPICanRegister.java | 2 +- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java index bbb2d89..5b96dc1 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java @@ -33,10 +33,7 @@ public static ConnectorAPIHook getConnectorAPI() { } /** - * @return {@link ConnectorAPIHook} - * - * @implNote - *
    コネクターのAPIを返します + * @return {@link ConnectorAPIHook} コネクターのAPIを返します * * @see ConnectorAPIHook * @see org.bukkit.plugin.PluginManager#getPlugin(String) @@ -61,7 +58,7 @@ public static boolean isHookedChecker() { /** * @implNote *
  • このメソッドは他のプラグインが返される可能性があります - *
  • 複数のAPIに接続できた場合は最後に見つかったAPIが返されま + *
  • 複数のAPIに接続できた場合は最後に見つかったAPIが返されます */ public static CheckerAPIHook getCheckerAPI() { if (!pairs.containsKey(HookedAPIType.CHECKER) && !isHookedChecker()) { @@ -72,10 +69,9 @@ public static CheckerAPIHook getCheckerAPI() { } /** - * @return {@link CheckerAPIHook} + * @return {@link CheckerAPIHook} チェッカーのAPIを返します * * @implNote - *
    チェッカーのAPIを返します * * @see ConnectorAPIHook * @see org.bukkit.plugin.PluginManager#getPlugin(String) @@ -116,6 +112,12 @@ public static CodeAPIHook getCodeAPI() { return (CodeAPIHook) pairs.get(HookedAPIType.CODEAPI); } + /** + * @return 現在接続可能なAPIを {@link List} で提供します + * + * @implNote + *
  • キャッシュがされていない場合 {@link #init()} を実行します + */ public static List getHookedAPIType() { if (pairs.isEmpty()) { init(); @@ -124,6 +126,12 @@ public static List getHookedAPIType() { return new ArrayList<>(getAPIType()); } + /** + * @return 現在接続可能なAPIを {@link Set} で提供します + * + * @implNote + *
  • このメソッドは {@link #init()} を実行していない場合必ず空の {@link Set} で返されます + */ public static Set getAPIType() { return pairs.keySet(); } @@ -139,8 +147,9 @@ public static Map getPairs() { } /** + * 使用できるAPIを取得します + * * @implNote - *
    使用できるAPIを取得します *
  • このメソッドが使われた場合 {@link #getPairs()} にキャッシュされます */ public static void init() { diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/APIHook.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/APIHook.java index 5b0f925..3d91dbd 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/APIHook.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/APIHook.java @@ -16,8 +16,14 @@ public interface APIHook { */ Metrics getMetrics(); + /** + * + */ JoinManager getJoinManager(); + /** + * @return + */ UpdateAlert getUpdateAlert(); /** diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPICanRegister.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPICanRegister.java index 79c088d..2c80aec 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPICanRegister.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/codeapi/CodeAPICanRegister.java @@ -4,4 +4,4 @@ public interface CodeAPICanRegister { boolean canRegister(Plugin plugin); -} +} \ No newline at end of file From 772d8f7dab755f164d493ceaf3e596d7547e22ed Mon Sep 17 00:00:00 2001 From: KoutaChan <76502083+KoutaChan@users.noreply.github.com> Date: Wed, 19 Oct 2022 05:15:18 +0900 Subject: [PATCH 8/9] =?UTF-8?q?=E9=87=8D=E8=A4=87=E3=82=B3=E3=83=BC?= =?UTF-8?q?=E3=83=89=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/klnetwork/codeapi/CodeAPI.java | 6 +- .../net/klnetwork/codeapi/table/LocalSQL.java | 177 ------------- .../playerrolechecker/PlayerRoleChecker.java | 6 +- .../playerrolechecker/table/LocalSQL.java | 177 ------------- .../table/PlayerDataSQL.java | 234 ------------------ .../api/data/PlayerDataTable.java | 205 +++++++++++++-- .../api/data/common/TemporaryTable.java | 160 +++++++++++- .../connector/ConnectorConfigManager.java | 6 + .../PlayerRoleCheckerConnector.java | 7 +- .../command/AddBypassCommand.java | 1 + .../command/RemoveBypassCommand.java | 1 + .../table/LocalSQL.java | 1 - .../table/PlayerDataSQL.java | 234 ------------------ 13 files changed, 353 insertions(+), 862 deletions(-) diff --git a/CodeAPI/src/main/java/net/klnetwork/codeapi/CodeAPI.java b/CodeAPI/src/main/java/net/klnetwork/codeapi/CodeAPI.java index 3ec9703..bf7078b 100644 --- a/CodeAPI/src/main/java/net/klnetwork/codeapi/CodeAPI.java +++ b/CodeAPI/src/main/java/net/klnetwork/codeapi/CodeAPI.java @@ -38,9 +38,12 @@ public final class CodeAPI extends JavaPlugin implements CodeAPIHook { .start(); @Override - public void onEnable() { + public void onLoad() { INSTANCE = this; + } + @Override + public void onEnable() { saveDefaultConfig(); LocalSQL.getInstance().create(); @@ -56,7 +59,6 @@ public void onDisable() { if (server.isStarted()) { server.shutdown(); } - updateAlert.stop(); LocalSQL.getInstance().drop(); diff --git a/CodeAPI/src/main/java/net/klnetwork/codeapi/table/LocalSQL.java b/CodeAPI/src/main/java/net/klnetwork/codeapi/table/LocalSQL.java index cf3c555..ecfa0b3 100644 --- a/CodeAPI/src/main/java/net/klnetwork/codeapi/table/LocalSQL.java +++ b/CodeAPI/src/main/java/net/klnetwork/codeapi/table/LocalSQL.java @@ -2,15 +2,9 @@ import net.klnetwork.codeapi.CodeAPI; import net.klnetwork.playerrolechecker.api.data.common.TemporaryTable; -import net.klnetwork.playerrolechecker.api.data.common.TemporaryData; -import net.klnetwork.playerrolechecker.api.utils.CommonUtils; import org.bukkit.plugin.Plugin; -import java.sql.*; -import java.util.UUID; - public class LocalSQL extends TemporaryTable { - private static TemporaryTable table; public static TemporaryTable getInstance() { @@ -25,177 +19,6 @@ public static void setInstance(TemporaryTable data) { table = data; } - @Override - public boolean hasUUID(Integer code) { - PreparedStatement statement = null; - try { - statement = getConnection().prepareStatement("select * from waitverify where code = ?"); - statement.setInt(1, code); - - ResultSet resultSet = statement.executeQuery(); - - return resultSet.next(); - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - return false; - } - - @Override - public TemporaryData getUUID(Integer code) { - PreparedStatement statement = null; - try { - statement = getConnection().prepareStatement("select * from waitverify where code = ?"); - statement.setInt(1, code); - - ResultSet resultSet = statement.executeQuery(); - - if (resultSet.next()) { - return new TemporaryData(resultSet.getString(1), resultSet.getInt(2), resultSet.getBoolean(3)); - } - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - return null; - } - - @Override - @Deprecated - public String[] getUUID(String code) { - String[] result = null; - try { - PreparedStatement preparedStatement = getConnection().prepareStatement("select * from waitverify where code = ?"); - preparedStatement.setString(1, code); - - ResultSet resultSet = preparedStatement.executeQuery(); - if (resultSet.next()) { - result = new String[]{resultSet.getString(1), resultSet.getString(2), String.valueOf(resultSet.getBoolean(3))}; - } - } catch (SQLException throwables) { - throwables.printStackTrace(); - } - return result; - } - - @Override - public TemporaryData getCode(UUID uuid) { - return getCode(uuid.toString()); - } - - @Override - public TemporaryData getCode(String uuid) { - PreparedStatement statement = null; - try { - statement = getConnection().prepareStatement("select * from waitverify where uuid = ?"); - statement.setString(1, uuid); - - ResultSet resultSet = statement.executeQuery(); - - if (resultSet.next()) { - return new TemporaryData(resultSet.getString(1), resultSet.getInt(2), resultSet.getBoolean(3)); - } - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - return null; - } - - @Override - public void put(String uuid, String code, boolean bedrock) { - put(uuid, Integer.parseInt(code), bedrock); - } - - @Override - public void put(UUID uuid, Integer code, boolean bedrock) { - put(uuid.toString(), code, bedrock); - } - - @Override - public void put(UUID uuid, String code, boolean bedrock) { - put(uuid.toString(), Integer.parseInt(code), bedrock); - } - - @Override - public void put(String uuid, Integer code, boolean bedrock) { - PreparedStatement statement = null; - try { - statement = getConnection().prepareStatement("insert into waitverify values (?,?,?)"); - statement.setString(1, uuid); - statement.setInt(2, code); - statement.setBoolean(3, bedrock); - statement.execute(); - } catch (SQLException throwables) { - throwables.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - } - - @Override - public void remove(UUID uuid, Integer code) { - remove(uuid.toString(), code); - } - - @Override - public void remove(String uuid, Integer code) { - PreparedStatement statement = null; - try { - statement = getConnection().prepareStatement("delete from waitverify where uuid = ? and code = ?"); - statement.setString(1, uuid); - statement.setInt(2, code); - statement.execute(); - } catch (SQLException e) { - e.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - } - - @Override - public void drop() { - Statement statement = null; - try { - statement = getConnection().createStatement(); - - statement.executeUpdate("drop table if exists waitverify"); - } catch (SQLException e) { - e.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - } - - @Override - public void create() { - Statement statement = null; - try { - drop(); - - statement = getConnection().createStatement(); - statement.executeUpdate("create table if not exists waitverify (uuid string, code int, bedrock boolean)"); - } catch (SQLException e) { - e.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - } - - @Override - public Connection getConnection() throws SQLException { - if (connection == null || connection.isClosed() || isConnectionDead()) { - checkClass(); - - this.connection = CommonUtils.createConnection(getSQLFormat(), getUser(), getPassword()); - } - return connection; - } - @Override public Plugin getPlugin() { return CodeAPI.INSTANCE; diff --git a/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/PlayerRoleChecker.java b/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/PlayerRoleChecker.java index ed35417..a96a687 100644 --- a/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/PlayerRoleChecker.java +++ b/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/PlayerRoleChecker.java @@ -45,9 +45,12 @@ public final class PlayerRoleChecker extends JavaPlugin implements CheckerAPIHoo .start(); @Override - public void onEnable() { + public void onLoad() { INSTANCE = this; + } + @Override + public void onEnable() { saveDefaultConfig(); PlayerDataSQL.getInstance().create(); @@ -70,7 +73,6 @@ public void onDisable() { if (JDA.INSTANCE != null) { JDA.INSTANCE.shutdown(); } - updateAlert.stop(); LocalSQL.getInstance().drop(); diff --git a/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/table/LocalSQL.java b/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/table/LocalSQL.java index b05e6a1..2c8fba4 100644 --- a/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/table/LocalSQL.java +++ b/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/table/LocalSQL.java @@ -2,15 +2,9 @@ import net.klnetwork.playerrolechecker.PlayerRoleChecker; import net.klnetwork.playerrolechecker.api.data.common.TemporaryTable; -import net.klnetwork.playerrolechecker.api.data.common.TemporaryData; -import net.klnetwork.playerrolechecker.api.utils.CommonUtils; import org.bukkit.plugin.Plugin; -import java.sql.*; -import java.util.UUID; - public class LocalSQL extends TemporaryTable { - private static TemporaryTable table; public static TemporaryTable getInstance() { @@ -25,177 +19,6 @@ public static void setInstance(TemporaryTable data) { table = data; } - @Override - public boolean hasUUID(Integer code) { - PreparedStatement statement = null; - try { - statement = getConnection().prepareStatement("select * from waitverify where code = ?"); - statement.setInt(1, code); - - ResultSet resultSet = statement.executeQuery(); - - return resultSet.next(); - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - return false; - } - - @Override - public TemporaryData getUUID(Integer code) { - PreparedStatement statement = null; - try { - statement = getConnection().prepareStatement("select * from waitverify where code = ?"); - statement.setInt(1, code); - - ResultSet resultSet = statement.executeQuery(); - - if (resultSet.next()) { - return new TemporaryData(resultSet.getString(1), resultSet.getInt(2), resultSet.getBoolean(3)); - } - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - return null; - } - - @Override - @Deprecated - public String[] getUUID(String code) { - String[] result = null; - try { - PreparedStatement preparedStatement = getConnection().prepareStatement("select * from waitverify where code = ?"); - preparedStatement.setString(1, code); - - ResultSet resultSet = preparedStatement.executeQuery(); - if (resultSet.next()) { - result = new String[]{resultSet.getString(1), resultSet.getString(2), String.valueOf(resultSet.getBoolean(3))}; - } - } catch (SQLException e) { - e.printStackTrace(); - } - return result; - } - - @Override - public TemporaryData getCode(UUID uuid) { - return getCode(uuid.toString()); - } - - @Override - public TemporaryData getCode(String uuid) { - PreparedStatement statement = null; - try { - statement = getConnection().prepareStatement("select * from waitverify where uuid = ?"); - statement.setString(1, uuid); - - ResultSet resultSet = statement.executeQuery(); - - if (resultSet.next()) { - return new TemporaryData(resultSet.getString(1), resultSet.getInt(2), resultSet.getBoolean(3)); - } - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - return null; - } - - @Override - public void put(String uuid, String code, boolean bedrock) { - put(uuid, Integer.parseInt(code), bedrock); - } - - @Override - public void put(UUID uuid, Integer code, boolean bedrock) { - put(uuid.toString(), code, bedrock); - } - - @Override - public void put(UUID uuid, String code, boolean bedrock) { - put(uuid.toString(), Integer.parseInt(code), bedrock); - } - - @Override - public void put(String uuid, Integer code, boolean bedrock) { - PreparedStatement statement = null; - try { - statement = getConnection().prepareStatement("insert into waitverify values (?,?,?)"); - statement.setString(1, uuid); - statement.setInt(2, code); - statement.setBoolean(3, bedrock); - statement.execute(); - } catch (SQLException e) { - e.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - } - - @Override - public void remove(UUID uuid, Integer code) { - remove(uuid.toString(), code); - } - - @Override - public void remove(String uuid, Integer code) { - PreparedStatement statement = null; - try { - statement = getConnection().prepareStatement("delete from waitverify where uuid = ? and code = ?"); - statement.setString(1, uuid); - statement.setInt(2, code); - statement.execute(); - } catch (SQLException e) { - e.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - } - - @Override - public void drop() { - Statement statement = null; - try { - statement = getConnection().createStatement(); - - statement.executeUpdate("drop table if exists waitverify"); - } catch (SQLException e) { - e.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - } - - @Override - public void create() { - Statement statement = null; - try { - drop(); - - statement = getConnection().createStatement(); - statement.executeUpdate("create table if not exists waitverify (uuid string, code int, bedrock boolean)"); - } catch (SQLException e) { - e.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - } - - @Override - public Connection getConnection() throws SQLException { - if (connection == null || connection.isClosed() || isConnectionDead()) { - checkClass(); - - this.connection = CommonUtils.createConnection(getSQLFormat(), getUser(), getPassword()); - } - return connection; - } - @Override public Plugin getPlugin() { return PlayerRoleChecker.INSTANCE; diff --git a/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/table/PlayerDataSQL.java b/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/table/PlayerDataSQL.java index e9b4522..cd0a8d2 100644 --- a/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/table/PlayerDataSQL.java +++ b/PlayerRoleChecker/src/main/java/net/klnetwork/playerrolechecker/table/PlayerDataSQL.java @@ -1,19 +1,10 @@ package net.klnetwork.playerrolechecker.table; -import net.dv8tion.jda.internal.utils.tuple.Pair; import net.klnetwork.playerrolechecker.PlayerRoleChecker; import net.klnetwork.playerrolechecker.api.data.PlayerDataTable; -import net.klnetwork.playerrolechecker.api.data.common.PlayerData; -import net.klnetwork.playerrolechecker.api.utils.CommonUtils; -import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; -import java.sql.*; -import java.util.UUID; -import java.util.function.Consumer; - public class PlayerDataSQL extends PlayerDataTable { - private static PlayerDataTable table; public static PlayerDataTable getInstance() { @@ -28,231 +19,6 @@ public static void setInstance(PlayerDataTable data) { table = data; } - @Override - public void asyncDiscordId(UUID uuid, Consumer discordId) { - asyncDiscordId(uuid.toString(), discordId); - } - - @Override - public void asyncDiscordId(String uuid, Consumer discordId) { - Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> discordId.accept(getDiscordId(uuid))); - } - - @Override - public void asyncDiscordId(UUID uuid, boolean bedrock, Consumer discordId) { - asyncDiscordId(uuid.toString(), bedrock, discordId); - } - - @Override - public void asyncDiscordId(String uuid, boolean bedrock, Consumer discordId) { - Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> discordId.accept(getDiscordId(uuid, bedrock))); - } - - @Override - public void asyncUUID(String discordId, Consumer uuid) { - Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> uuid.accept(getUUID(discordId))); - } - - @Override - public PlayerData getDiscordId(UUID uuid) { - return getDiscordId(uuid.toString()); - } - - @Override - public PlayerData getDiscordId(String uuid) { - PreparedStatement statement = null; - - try { - statement = getConnection().prepareStatement("select * from verifyplayer where uuid = ?"); - statement.setString(1, uuid); - - ResultSet resultSet = statement.executeQuery(); - - if (resultSet.next()) { - return new PlayerData(resultSet.getString(1), resultSet.getString(2), resultSet.getBoolean(3)); - } - - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - return null; - } - - @Override - public PlayerData getDiscordId(UUID uuid, boolean bedrock) { - return getDiscordId(uuid.toString(), bedrock); - } - - @Override - public PlayerData getDiscordId(String uuid, boolean bedrock) { - PreparedStatement statement = null; - - try { - statement = getConnection().prepareStatement("select * from verifyplayer where uuid = ? and bedrock = ?"); - statement.setString(1, uuid); - statement.setBoolean(2, bedrock); - - ResultSet resultSet = statement.executeQuery(); - - if (resultSet.next()) { - return new PlayerData(resultSet.getString(1), resultSet.getString(2), resultSet.getBoolean(3)); - } - - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - return null; - } - - @Override - public boolean hasData(UUID uuid, boolean bedrock) { - return hasData(uuid.toString(), bedrock); - } - - @Override - public boolean hasData(String uuid, boolean bedrock) { - PreparedStatement statement = null; - - try { - statement = getConnection().prepareStatement("select * from verifyplayer where uuid = ? and bedrock = ?"); - statement.setString(1, uuid); - statement.setBoolean(2, bedrock); - - return statement.executeQuery().next(); - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - return false; - } - - @Override - public PlayerData getUUID(String discordId) { - PreparedStatement statement = null; - - try { - statement = getConnection().prepareStatement("select * from verifyplayer where discord = ?"); - statement.setString(1, discordId); - - ResultSet resultSet = statement.executeQuery(); - - if (resultSet.next()) { - return new PlayerData(resultSet.getString(1), resultSet.getString(2), resultSet.getBoolean(3)); - } - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - return null; - } - - @Override - public void put(UUID uuid, String discordId, boolean bedrock) { - put(uuid.toString(), discordId, bedrock); - } - - @Override - public void put(String uuid, String discordId, boolean bedrock) { - Bukkit.getScheduler().runTaskAsynchronously(PlayerRoleChecker.INSTANCE, () -> { - PreparedStatement statement = null; - try { - statement = getConnection().prepareStatement("insert into verifyplayer values (?,?,?)"); - statement.setString(1, uuid); - statement.setString(2, discordId); - statement.setBoolean(3, bedrock); - statement.execute(); - } catch (SQLException throwables) { - throwables.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - }); - } - - @Override - public void remove(UUID uuid, String discordId) { - remove(uuid.toString(), discordId); - } - - @Override - public void remove(String uuid, String discordId) { - Bukkit.getScheduler().runTaskAsynchronously(PlayerRoleChecker.INSTANCE, () -> { - PreparedStatement statement = null; - try { - statement = getConnection().prepareStatement("delete from verifyplayer where uuid = ? and discord = ?"); - statement.setString(1, uuid); - statement.setString(2, discordId); - statement.execute(); - } catch (SQLException e) { - e.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - }); - } - - @Override - public Pair getSize(String discordId) { - PreparedStatement statement = null; - - try { - statement = getConnection().prepareStatement("SELECT count(*), uuid, bedrock from verifyplayer where discord = ?"); - statement.setString(1, discordId); - - ResultSet resultSet = statement.executeQuery(); - - if (resultSet.next()) { - final int size = resultSet.getInt(1); - - if (size != 0) { - return Pair.of(size, new PlayerData(resultSet.getString(2), discordId, resultSet.getBoolean(3))); - } else { - return pair; - } - } - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - - return pair; - } - - @Override - public void create() { - Bukkit.getScheduler().runTaskAsynchronously(PlayerRoleChecker.INSTANCE, () -> { - Statement statement = null; - try { - alter(); - - statement = PlayerDataSQL.getInstance().getConnection().createStatement(); - - statement.executeUpdate("create table if not exists verifyplayer (uuid VARCHAR(50), discord VARCHAR(50), bedrock BOOLEAN)"); - } catch (SQLException e) { - e.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - }); - } - - @Override - public Connection getConnection() throws SQLException { - if (connection == null || connection.isClosed() || isConnectionDead()) { - checkClass(); - - this.connection = CommonUtils.createConnection(getSQLFormat(), getUser(), getPassword()); - } - return connection; - } - @Override public Plugin getPlugin() { return PlayerRoleChecker.INSTANCE; diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/PlayerDataTable.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/PlayerDataTable.java index 693ab73..4110423 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/PlayerDataTable.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/PlayerDataTable.java @@ -3,48 +3,215 @@ import net.dv8tion.jda.internal.utils.tuple.Pair; import net.klnetwork.playerrolechecker.api.data.common.PlayerData; import net.klnetwork.playerrolechecker.api.utils.CommonUtils; +import org.bukkit.Bukkit; -import java.sql.SQLException; -import java.sql.Statement; +import java.sql.*; import java.util.UUID; import java.util.function.Consumer; public abstract class PlayerDataTable extends SQLInterface { protected Pair pair = Pair.of(0, null); - public abstract void asyncDiscordId(UUID uuid, Consumer discordId); + public void asyncDiscordId(UUID uuid, Consumer discordId) { + asyncDiscordId(uuid.toString(), discordId); + } + + public void asyncDiscordId(String uuid, Consumer discordId) { + Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> discordId.accept(getDiscordId(uuid))); + } + + public void asyncDiscordId(UUID uuid, boolean bedrock, Consumer discordId) { + asyncDiscordId(uuid.toString(), bedrock, discordId); + } + + public void asyncDiscordId(String uuid, boolean bedrock, Consumer discordId) { + Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> discordId.accept(getDiscordId(uuid, bedrock))); + } + + public void asyncUUID(String discordId, Consumer uuid) { + Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> uuid.accept(getUUID(discordId))); + } + + public PlayerData getDiscordId(UUID uuid) { + return getDiscordId(uuid.toString()); + } - public abstract void asyncDiscordId(String uuid, Consumer discordId); + public PlayerData getDiscordId(String uuid) { + PreparedStatement statement = null; - public abstract void asyncDiscordId(UUID uuid, boolean bedrock, Consumer discordId); + try { + statement = getConnection().prepareStatement("select * from verifyplayer where uuid = ?"); + statement.setString(1, uuid); - public abstract void asyncDiscordId(String uuid, boolean bedrock, Consumer discordId); + ResultSet resultSet = statement.executeQuery(); - public abstract void asyncUUID(String discordId, Consumer uuid); + if (resultSet.next()) { + return new PlayerData(resultSet.getString(1), resultSet.getString(2), resultSet.getBoolean(3)); + } + } catch (SQLException ex) { + ex.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + return null; + } - public abstract PlayerData getDiscordId(UUID uuid); + public PlayerData getDiscordId(UUID uuid, boolean bedrock) { + return getDiscordId(uuid.toString(), bedrock); + } - public abstract PlayerData getDiscordId(String uuid); + public PlayerData getDiscordId(String uuid, boolean bedrock) { + PreparedStatement statement = null; - public abstract PlayerData getDiscordId(UUID uuid, boolean bedrock); + try { + statement = getConnection().prepareStatement("select * from verifyplayer where uuid = ? and bedrock = ?"); + statement.setString(1, uuid); + statement.setBoolean(2, bedrock); - public abstract PlayerData getDiscordId(String uuid, boolean bedrock); + ResultSet resultSet = statement.executeQuery(); - public abstract boolean hasData(UUID uuid, boolean bedrock); + if (resultSet.next()) { + return new PlayerData(resultSet.getString(1), resultSet.getString(2), resultSet.getBoolean(3)); + } + } catch (SQLException ex) { + ex.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + return null; + } - public abstract boolean hasData(String uuid, boolean bedrock); + public boolean hasData(UUID uuid, boolean bedrock) { + return hasData(uuid.toString(), bedrock); + } - public abstract PlayerData getUUID(String discordId); + public boolean hasData(String uuid, boolean bedrock) { + PreparedStatement statement = null; - public abstract void put(UUID uuid, String discordId, boolean bedrock); + try { + statement = getConnection().prepareStatement("select * from verifyplayer where uuid = ? and bedrock = ?"); + statement.setString(1, uuid); + statement.setBoolean(2, bedrock); - public abstract void put(String uuid, String discordId, boolean bedrock); + return statement.executeQuery().next(); + } catch (SQLException ex) { + ex.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + return false; + } - public abstract void remove(UUID uuid, String discordId); + public PlayerData getUUID(String discordId) { + PreparedStatement statement = null; - public abstract void remove(String uuid, String discordId); + try { + statement = getConnection().prepareStatement("select * from verifyplayer where discord = ?"); + statement.setString(1, discordId); - public abstract Pair getSize(String discordId); + ResultSet resultSet = statement.executeQuery(); + + if (resultSet.next()) { + return new PlayerData(resultSet.getString(1), resultSet.getString(2), resultSet.getBoolean(3)); + } + } catch (SQLException e) { + e.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + return null; + } + + public void put(UUID uuid, String discordId, boolean bedrock) { + put(uuid.toString(), discordId, bedrock); + } + + public void put(String uuid, String discordId, boolean bedrock) { + Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> { + PreparedStatement statement = null; + try { + statement = getConnection().prepareStatement("insert into verifyplayer values (?,?,?)"); + statement.setString(1, uuid); + statement.setString(2, discordId); + statement.setBoolean(3, bedrock); + statement.execute(); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + }); + } + + public void remove(UUID uuid, String discordId) { + remove(uuid.toString(), discordId); + } + + public void remove(String uuid, String discordId) { + Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> { + PreparedStatement statement = null; + try { + statement = getConnection().prepareStatement("delete from verifyplayer where uuid = ? and discord = ?"); + statement.setString(1, uuid); + statement.setString(2, discordId); + statement.execute(); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + }); + } + + public Pair getSize(String discordId) { + PreparedStatement statement = null; + + try { + statement = getConnection().prepareStatement("SELECT count(*), uuid, bedrock from verifyplayer where discord = ?"); + statement.setString(1, discordId); + + ResultSet resultSet = statement.executeQuery(); + + if (resultSet.next()) { + final int size = resultSet.getInt(1); + + return size != 0 ? Pair.of(size, new PlayerData(resultSet.getString(2), discordId, resultSet.getBoolean(3))) : pair; + } + } catch (SQLException ex) { + ex.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + + return pair; + } + + public void create() { + Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> { + Statement statement = null; + try { + alter(); + + statement = getConnection().createStatement(); + + statement.executeUpdate("create table if not exists verifyplayer (uuid VARCHAR(50), discord VARCHAR(50), bedrock BOOLEAN)"); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + }); + } + + @Override + public Connection getConnection() throws SQLException { + if (connection == null || connection.isClosed() || isConnectionDead()) { + checkClass(); + + this.connection = CommonUtils.createConnection(getSQLFormat(), getUser(), getPassword()); + } + return connection; + } public void alter() { Statement statement = null; diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/common/TemporaryTable.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/common/TemporaryTable.java index 68b9a8f..9f6e4cb 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/common/TemporaryTable.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/common/TemporaryTable.java @@ -1,34 +1,168 @@ package net.klnetwork.playerrolechecker.api.data.common; import net.klnetwork.playerrolechecker.api.data.SQLInterface; +import net.klnetwork.playerrolechecker.api.utils.CommonUtils; +import java.sql.*; import java.util.UUID; public abstract class TemporaryTable extends SQLInterface { - public abstract boolean hasUUID(Integer code); + public boolean hasUUID(Integer code) { + PreparedStatement statement = null; + try { + statement = getConnection().prepareStatement("select * from waitverify where code = ?"); + statement.setInt(1, code); - public abstract TemporaryData getUUID(Integer code); + ResultSet resultSet = statement.executeQuery(); + + return resultSet.next(); + } catch (SQLException ex) { + ex.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + return false; + } + + public TemporaryData getUUID(Integer code) { + PreparedStatement statement = null; + try { + statement = getConnection().prepareStatement("select * from waitverify where code = ?"); + statement.setInt(1, code); + + ResultSet resultSet = statement.executeQuery(); + + if (resultSet.next()) { + return new TemporaryData(resultSet.getString(1), resultSet.getInt(2), resultSet.getBoolean(3)); + } + } catch (SQLException ex) { + ex.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + return null; + } @Deprecated - public abstract String[] getUUID(String code); + public String[] getUUID(String code) { + String[] result = null; + try { + PreparedStatement preparedStatement = getConnection().prepareStatement("select * from waitverify where code = ?"); + preparedStatement.setString(1, code); + + ResultSet resultSet = preparedStatement.executeQuery(); + if (resultSet.next()) { + result = new String[]{resultSet.getString(1), resultSet.getString(2), String.valueOf(resultSet.getBoolean(3))}; + } + } catch (SQLException e) { + e.printStackTrace(); + } + return result; + } + + public TemporaryData getCode(UUID uuid) { + return getCode(uuid.toString()); + } + + public TemporaryData getCode(String uuid) { + PreparedStatement statement = null; + try { + statement = getConnection().prepareStatement("select * from waitverify where uuid = ?"); + statement.setString(1, uuid); + + ResultSet resultSet = statement.executeQuery(); + + if (resultSet.next()) { + return new TemporaryData(resultSet.getString(1), resultSet.getInt(2), resultSet.getBoolean(3)); + } + } catch (SQLException ex) { + ex.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + return null; + } + + public void put(String uuid, String code, boolean bedrock) { + put(uuid, Integer.parseInt(code), bedrock); + } + + public void put(UUID uuid, Integer code, boolean bedrock) { + put(uuid.toString(), code, bedrock); + } - public abstract TemporaryData getCode(UUID uuid); + public void put(UUID uuid, String code, boolean bedrock) { + put(uuid.toString(), Integer.parseInt(code), bedrock); + } - public abstract TemporaryData getCode(String uuid); + public void put(String uuid, Integer code, boolean bedrock) { + PreparedStatement statement = null; + try { + statement = getConnection().prepareStatement("insert into waitverify values (?,?,?)"); + statement.setString(1, uuid); + statement.setInt(2, code); + statement.setBoolean(3, bedrock); + statement.execute(); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + } - public abstract void put(UUID uuid, String code, boolean bedrock); + public void remove(UUID uuid, Integer code) { + remove(uuid.toString(), code); + } - public abstract void put(UUID uuid, Integer code, boolean bedrock); + public void remove(String uuid, Integer code) { + PreparedStatement statement = null; + try { + statement = getConnection().prepareStatement("delete from waitverify where uuid = ? and code = ?"); + statement.setString(1, uuid); + statement.setInt(2, code); + statement.execute(); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + } - public abstract void put(String uuid, String code, boolean bedrock); + public void drop() { + Statement statement = null; + try { + statement = getConnection().createStatement(); - public abstract void put(String uuid, Integer code, boolean bedrock); + statement.executeUpdate("drop table if exists waitverify"); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + } - public abstract void remove(UUID uuid, Integer code); + @Override + public void create() { + Statement statement = null; + try { + drop(); - public abstract void remove(String uuid, Integer code); + statement = getConnection().createStatement(); + statement.executeUpdate("create table if not exists waitverify (uuid string, code int, bedrock boolean)"); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + CommonUtils.close(statement); + } + } - public abstract void drop(); + @Override + public Connection getConnection() throws SQLException { + if (connection == null || connection.isClosed() || isConnectionDead()) { + checkClass(); - public abstract void create(); + this.connection = CommonUtils.createConnection(getSQLFormat(), getUser(), getPassword()); + } + return connection; + } } diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorConfigManager.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorConfigManager.java index 27e9cf2..78087fc 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorConfigManager.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/connector/ConnectorConfigManager.java @@ -7,6 +7,9 @@ public interface ConnectorConfigManager { void setJoinMode(boolean joinMode); + /** + * @return ホワイトリストに入っているプレイヤーはスキップ可能か + */ boolean isWhitelistSkipped(); void setWhitelistSkipped(boolean skipped); @@ -15,6 +18,9 @@ public interface ConnectorConfigManager { void setRoleList(List roleList); + /** + * @return 参加したときに実行するコマンドを返します + */ List getJoinCommand(); void setJoinCommand(List joinCommand); diff --git a/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/PlayerRoleCheckerConnector.java b/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/PlayerRoleCheckerConnector.java index f318152..066bf97 100644 --- a/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/PlayerRoleCheckerConnector.java +++ b/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/PlayerRoleCheckerConnector.java @@ -23,7 +23,6 @@ import org.bukkit.plugin.java.JavaPlugin; public final class PlayerRoleCheckerConnector extends JavaPlugin implements ConnectorAPIHook { - public static PlayerRoleCheckerConnector INSTANCE; private final JoinManager joinManager = new JoinManager(this); @@ -44,9 +43,12 @@ public final class PlayerRoleCheckerConnector extends JavaPlugin implements Conn .start(); @Override - public void onEnable() { + public void onLoad() { INSTANCE = this; + } + @Override + public void onEnable() { saveDefaultConfig(); PlayerDataSQL.getInstance().create(); @@ -74,7 +76,6 @@ public void onDisable() { if (JDA.INSTANCE != null) { JDA.INSTANCE.shutdown(); } - updateAlert.stop(); } diff --git a/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/command/AddBypassCommand.java b/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/command/AddBypassCommand.java index 6750fbe..4fd4da5 100644 --- a/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/command/AddBypassCommand.java +++ b/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/command/AddBypassCommand.java @@ -7,6 +7,7 @@ import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; +//TODO: 書き直し public class AddBypassCommand implements CommandExecutor { @Override diff --git a/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/command/RemoveBypassCommand.java b/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/command/RemoveBypassCommand.java index 93ab3af..775c8dd 100644 --- a/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/command/RemoveBypassCommand.java +++ b/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/command/RemoveBypassCommand.java @@ -9,6 +9,7 @@ import java.util.UUID; +//TODO: 書き直し public class RemoveBypassCommand implements CommandExecutor { @Override diff --git a/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/table/LocalSQL.java b/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/table/LocalSQL.java index e8656ce..becd760 100644 --- a/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/table/LocalSQL.java +++ b/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/table/LocalSQL.java @@ -9,7 +9,6 @@ import java.util.UUID; public class LocalSQL extends ConnectorBypassTable { - private static ConnectorBypassTable table; private boolean created; diff --git a/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/table/PlayerDataSQL.java b/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/table/PlayerDataSQL.java index 4f5d2c2..9252187 100644 --- a/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/table/PlayerDataSQL.java +++ b/PlayerRoleCheckerConnector/src/main/java/net/klnetwork/playerrolecheckerconnector/table/PlayerDataSQL.java @@ -1,19 +1,10 @@ package net.klnetwork.playerrolecheckerconnector.table; -import net.dv8tion.jda.internal.utils.tuple.Pair; import net.klnetwork.playerrolechecker.api.data.PlayerDataTable; -import net.klnetwork.playerrolechecker.api.data.common.PlayerData; -import net.klnetwork.playerrolechecker.api.utils.CommonUtils; import net.klnetwork.playerrolecheckerconnector.PlayerRoleCheckerConnector; -import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; -import java.sql.*; -import java.util.UUID; -import java.util.function.Consumer; - public class PlayerDataSQL extends PlayerDataTable { - private static PlayerDataTable table; public static PlayerDataTable getInstance() { @@ -28,231 +19,6 @@ public static void setInstance(PlayerDataTable data) { table = data; } - @Override - public void asyncDiscordId(UUID uuid, Consumer discordId) { - asyncDiscordId(uuid.toString(), discordId); - } - - @Override - public void asyncDiscordId(String uuid, Consumer discordId) { - Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> discordId.accept(getDiscordId(uuid))); - } - - @Override - public void asyncDiscordId(UUID uuid, boolean bedrock, Consumer discordId) { - asyncDiscordId(uuid.toString(), bedrock, discordId); - } - - @Override - public void asyncDiscordId(String uuid, boolean bedrock, Consumer discordId) { - Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> discordId.accept(getDiscordId(uuid, bedrock))); - } - - @Override - public void asyncUUID(String discordId, Consumer uuid) { - Bukkit.getScheduler().runTaskAsynchronously(getPlugin(), () -> uuid.accept(getUUID(discordId))); - } - - @Override - public PlayerData getDiscordId(UUID uuid) { - return getDiscordId(uuid.toString()); - } - - @Override - public PlayerData getDiscordId(String uuid) { - PreparedStatement statement = null; - - try { - statement = getConnection().prepareStatement("select * from verifyplayer where uuid = ?"); - statement.setString(1, uuid); - - ResultSet resultSet = statement.executeQuery(); - - if (resultSet.next()) { - return new PlayerData(resultSet.getString(1), resultSet.getString(2), resultSet.getBoolean(3)); - } - - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - return null; - } - - @Override - public PlayerData getDiscordId(UUID uuid, boolean bedrock) { - return getDiscordId(uuid.toString(), bedrock); - } - - @Override - public PlayerData getDiscordId(String uuid, boolean bedrock) { - PreparedStatement statement = null; - - try { - statement = getConnection().prepareStatement("select * from verifyplayer where uuid = ? and bedrock = ?"); - statement.setString(1, uuid); - statement.setBoolean(2, bedrock); - - ResultSet resultSet = statement.executeQuery(); - - if (resultSet.next()) { - return new PlayerData(resultSet.getString(1), resultSet.getString(2), resultSet.getBoolean(3)); - } - - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - return null; - } - - @Override - public boolean hasData(UUID uuid, boolean bedrock) { - return hasData(uuid.toString(), bedrock); - } - - @Override - public boolean hasData(String uuid, boolean bedrock) { - PreparedStatement statement = null; - - try { - statement = getConnection().prepareStatement("select * from verifyplayer where uuid = ? and bedrock = ?"); - statement.setString(1, uuid); - statement.setBoolean(2, bedrock); - - return statement.executeQuery().next(); - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - return false; - } - - @Override - public PlayerData getUUID(String discordId) { - PreparedStatement statement = null; - - try { - statement = getConnection().prepareStatement("select * from verifyplayer where discord = ?"); - statement.setString(1, discordId); - - ResultSet resultSet = statement.executeQuery(); - - if (resultSet.next()) { - return new PlayerData(resultSet.getString(1), resultSet.getString(2), resultSet.getBoolean(3)); - } - } catch (SQLException e) { - e.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - return null; - } - - @Override - public void put(UUID uuid, String discordId, boolean bedrock) { - put(uuid.toString(), discordId, bedrock); - } - - @Override - public void put(String uuid, String discordId, boolean bedrock) { - Bukkit.getScheduler().runTaskAsynchronously(PlayerRoleCheckerConnector.INSTANCE, () -> { - PreparedStatement statement = null; - try { - statement = getConnection().prepareStatement("insert into verifyplayer values (?,?,?)"); - statement.setString(1, uuid); - statement.setString(2, discordId); - statement.setBoolean(3, bedrock); - statement.execute(); - } catch (SQLException e) { - e.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - }); - } - - @Override - public void remove(UUID uuid, String discordId) { - remove(uuid.toString(), discordId); - } - - @Override - public void remove(String uuid, String discordId) { - Bukkit.getScheduler().runTaskAsynchronously(PlayerRoleCheckerConnector.INSTANCE, () -> { - PreparedStatement statement = null; - try { - statement = getConnection().prepareStatement("delete from verifyplayer where uuid = ? and discord = ?"); - statement.setString(1, uuid); - statement.setString(2, discordId); - statement.execute(); - } catch (SQLException e) { - e.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - }); - } - - @Override - public Pair getSize(String discordId) { - PreparedStatement statement = null; - - try { - statement = getConnection().prepareStatement("SELECT count(*), uuid, bedrock from verifyplayer where discord = ?"); - statement.setString(1, discordId); - - ResultSet resultSet = statement.executeQuery(); - - if (resultSet.next()) { - final int size = resultSet.getInt(1); - - if (size != 0) { - return Pair.of(size, new PlayerData(resultSet.getString(2), discordId, resultSet.getBoolean(3))); - } else { - return pair; - } - } - } catch (SQLException ex) { - ex.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - - return pair; - } - - @Override - public void create() { - Bukkit.getScheduler().runTaskAsynchronously(PlayerRoleCheckerConnector.INSTANCE, () -> { - Statement statement = null; - try { - alter(); - - statement = PlayerDataSQL.getInstance().getConnection().createStatement(); - - statement.executeUpdate("create table if not exists verifyplayer (uuid VARCHAR(50), discord VARCHAR(50), bedrock BOOLEAN)"); - } catch (SQLException e) { - e.printStackTrace(); - } finally { - CommonUtils.close(statement); - } - }); - } - - @Override - public Connection getConnection() throws SQLException { - if (connection == null || connection.isClosed() || isConnectionDead()) { - checkClass(); - - this.connection = CommonUtils.createConnection(getSQLFormat(), getUser(), getPassword()); - } - return connection; - } - @Override public Plugin getPlugin() { return PlayerRoleCheckerConnector.INSTANCE; From 6bba6e37cc18b39cb811fc6f27b04605e30afd6b Mon Sep 17 00:00:00 2001 From: KoutaChan <76502083+KoutaChan@users.noreply.github.com> Date: Tue, 1 Nov 2022 17:35:42 +0900 Subject: [PATCH 9/9] Add JavaDoc --- .../api/PlayerRoleCheckerAPI.java | 21 ++++++++++++++++++- .../playerrolechecker/api/data/APIHook.java | 7 ++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java index 5b96dc1..b68728b 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/PlayerRoleCheckerAPI.java @@ -7,12 +7,31 @@ import net.klnetwork.playerrolechecker.api.enums.HookedAPIType; import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.PluginManager; import java.util.*; +/** + * プレイヤーロールチェッカーのインスタンス的な存在です + * @implNote + *
  • APIに侵入したい場合は {@link PluginManager#getPlugin(String)}でプラグインを取得し、{@link CodeAPIHook} にキャストしてください + *
  • APIを上書きしたい場合は {@link CodeAPIHook} を拡張してください + * + * @see CodeAPIHook + * @since 4.0 + */ public class PlayerRoleCheckerAPI { private static final Map pairs = new HashMap<>(); + /** + * @return ConnectorのAPIに接続できているか + * + * @implNote + *
  • このメソッドは他のプラグインが返される可能性があります + *
  • 複数のAPIに接続できた場合は最後に見つかったAPIが返されます + * + * @see #getHookedAPIType() + */ public static boolean isHookedConnector() { return getHookedAPIType().contains(HookedAPIType.CONNECTOR); } @@ -22,7 +41,7 @@ public static boolean isHookedConnector() { * * @implNote *
  • このメソッドは他のプラグインが返される可能性があります - *
  • 複数のAPIに接続できた場合は最後に見つかったAPIが返されま + *
  • 複数のAPIに接続できた場合は最後に見つかったAPIが返されます */ public static ConnectorAPIHook getConnectorAPI() { if (!pairs.containsKey(HookedAPIType.CONNECTOR) && !isHookedConnector()) { diff --git a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/APIHook.java b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/APIHook.java index 3d91dbd..6cdf7de 100644 --- a/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/APIHook.java +++ b/PlayerRoleCheckerAPI/src/main/java/net/klnetwork/playerrolechecker/api/data/APIHook.java @@ -17,12 +17,17 @@ public interface APIHook { Metrics getMetrics(); /** + * @return プレイヤーが参加したときに実行される * + *
    詳細については -> w */ JoinManager getJoinManager(); /** - * @return + * @return プレイヤーロールチェッカーに搭載されているアップデートアラート + * + * @implNote + *
  • 現在はプレイヤーロールチェッカー内のプラグインしか機能しません */ UpdateAlert getUpdateAlert();