diff --git a/bukkit/src/main/java/net/leaderos/plugin/Bukkit.java b/bukkit/src/main/java/net/leaderos/plugin/Bukkit.java index 1c302598a..c47906436 100644 --- a/bukkit/src/main/java/net/leaderos/plugin/Bukkit.java +++ b/bukkit/src/main/java/net/leaderos/plugin/Bukkit.java @@ -20,6 +20,7 @@ import net.leaderos.plugin.modules.credit.CreditModule; import net.leaderos.plugin.modules.discord.DiscordModule; import net.leaderos.plugin.modules.donations.DonationsModule; +import net.leaderos.plugin.modules.verify.VerifyModule; import net.leaderos.plugin.modules.voucher.VoucherModule; import net.leaderos.plugin.modules.webstore.WebStoreModule; import net.leaderos.shared.Shared; @@ -99,6 +100,7 @@ public void onEnable() { setupCommands(); // Loads modules + LeaderOSAPI.getModuleManager().registerModule(new VerifyModule()); LeaderOSAPI.getModuleManager().registerModule(new DiscordModule()); LeaderOSAPI.getModuleManager().registerModule(new CacheModule()); LeaderOSAPI.getModuleManager().registerModule(new CreditModule()); diff --git a/bukkit/src/main/java/net/leaderos/plugin/configuration/Language.java b/bukkit/src/main/java/net/leaderos/plugin/configuration/Language.java index df1ca23a2..d4dfd19e0 100644 --- a/bukkit/src/main/java/net/leaderos/plugin/configuration/Language.java +++ b/bukkit/src/main/java/net/leaderos/plugin/configuration/Language.java @@ -65,6 +65,7 @@ public static class Messages extends OkaeriConfig { private List help = Arrays.asList( "&6&l LEADEROS PLUGIN'S COMMANDS", "", + "&8 ▪ &e/verify &8» &fVerifies your Minecraft account.", "&8 ▪ &e/discord-sync &8» &fGives you the Discord sync link.", "", "&8 ▪ &e/webbazaar &8» &fOpens the Bazaar Storage menu.", @@ -158,6 +159,27 @@ public static class Command extends OkaeriConfig { } + /** + * Verify messages + */ + private Verify verify = new Verify(); + + /** + * Discord messages of plugin + */ + @Getter @Setter + public static class Verify extends OkaeriConfig { + /** + * success message + */ + private String successMessage = "{prefix} &aYour account has been successfully verified. Please back to the website."; + + /** + * error message + */ + private String failMessage = "{prefix} &cAn error occurred while verifying your account. Please try again later."; + } + /** * Discord messages */ diff --git a/bukkit/src/main/java/net/leaderos/plugin/configuration/Modules.java b/bukkit/src/main/java/net/leaderos/plugin/configuration/Modules.java index 20b21d372..b8bd0368c 100644 --- a/bukkit/src/main/java/net/leaderos/plugin/configuration/Modules.java +++ b/bukkit/src/main/java/net/leaderos/plugin/configuration/Modules.java @@ -20,6 +20,26 @@ @Setter @Names(strategy = NameStrategy.IDENTITY) public class Modules extends OkaeriConfig { + /** + * Verify module + */ + private Verify Verify = new Verify(); + + /** + * Verify module settings + * + * @since 1.0 + * @author leaderos + */ + @Getter + @Setter + public static class Verify extends OkaeriConfig { + /** + * Status of Verify module + */ + private boolean status = false; + } + /** * Discord module */ diff --git a/bukkit/src/main/java/net/leaderos/plugin/configuration/lang/en.java b/bukkit/src/main/java/net/leaderos/plugin/configuration/lang/en.java index 9787d280c..64455f797 100644 --- a/bukkit/src/main/java/net/leaderos/plugin/configuration/lang/en.java +++ b/bukkit/src/main/java/net/leaderos/plugin/configuration/lang/en.java @@ -1,5 +1,6 @@ package net.leaderos.plugin.configuration.lang; +import eu.okaeri.configs.OkaeriConfig; import eu.okaeri.configs.annotation.Comment; import eu.okaeri.configs.annotation.NameModifier; import eu.okaeri.configs.annotation.NameStrategy; @@ -65,6 +66,7 @@ public static class Messages extends Language.Messages { private List help = Arrays.asList( "&6&l LEADEROS PLUGIN'S COMMANDS", "", + "&8 ▪ &e/verify &8» &fVerifies your Minecraft account.", "&8 ▪ &e/discord-sync &8» &fGives you the Discord sync link.", "", "&8 ▪ &e/webbazaar &8» &fOpens the Bazaar Storage menu.", @@ -158,6 +160,27 @@ public static class Command extends Language.Messages.Command { } + /** + * Verify messages + */ + private Verify verify = new Verify(); + + /** + * Discord messages of plugin + */ + @Getter @Setter + public static class Verify extends Language.Messages.Verify { + /** + * success message + */ + private String successMessage = "{prefix} &aYour account has been successfully verified. Please back to the website."; + + /** + * error message + */ + private String failMessage = "{prefix} &cAn error occurred while verifying your account. Please try again later."; + } + /** * Discord messages */ diff --git a/bukkit/src/main/java/net/leaderos/plugin/configuration/lang/tr.java b/bukkit/src/main/java/net/leaderos/plugin/configuration/lang/tr.java index b9c559eda..e173b437c 100644 --- a/bukkit/src/main/java/net/leaderos/plugin/configuration/lang/tr.java +++ b/bukkit/src/main/java/net/leaderos/plugin/configuration/lang/tr.java @@ -65,6 +65,7 @@ public static class Messages extends Language.Messages { private List help = Arrays.asList( "&6&l LEADEROS EKLENTI KOMUTLARI", "", + "&8 ▪ &e/verify &8» &fMinecraft hesabınızı doğrular.", "&8 ▪ &e/discord-sync &8» &fDiscord eşleme bağlantısı verir.", "", "&8 ▪ &e/webbazaar &8» &fPazar depo menüsünü açar.", @@ -158,6 +159,27 @@ public static class Command extends Language.Messages.Command { } + /** + * Verify messages + */ + private Verify verify = new Verify(); + + /** + * Discord messages of plugin + */ + @Getter @Setter + public static class Verify extends Language.Messages.Verify { + /** + * success message + */ + private String successMessage = "{prefix} &aHesabınız başarıyla doğrulandı. Websiteye geri dönünüz."; + + /** + * error message + */ + private String failMessage = "{prefix} &cHesabınız doğrulanamadı. Lütfen daha sonra tekrar deneyin."; + } + /** * Discord messages */ diff --git a/bukkit/src/main/java/net/leaderos/plugin/modules/verify/VerifyModule.java b/bukkit/src/main/java/net/leaderos/plugin/modules/verify/VerifyModule.java new file mode 100644 index 000000000..1668e6a30 --- /dev/null +++ b/bukkit/src/main/java/net/leaderos/plugin/modules/verify/VerifyModule.java @@ -0,0 +1,33 @@ +package net.leaderos.plugin.modules.verify; + +import net.leaderos.plugin.Bukkit; +import net.leaderos.plugin.modules.verify.commands.VerifyCommand; +import net.leaderos.shared.modules.LeaderOSModule; + +/** + * Verify module of leaderos-plugin + * + * @author leaderos + * @since 1.0 + */ +public class VerifyModule extends LeaderOSModule { + + /** + * onEnable method of module + */ + public void onEnable() { + Bukkit.getCommandManager().registerCommand(new VerifyCommand()); + } + + /** + * onDisable method of module + */ + public void onDisable() { + Bukkit.getCommandManager().unregisterCommand(new VerifyCommand()); + } + + /** + * Constructor of VerifyModule + */ + public VerifyModule() {} +} diff --git a/bukkit/src/main/java/net/leaderos/plugin/modules/verify/commands/VerifyCommand.java b/bukkit/src/main/java/net/leaderos/plugin/modules/verify/commands/VerifyCommand.java new file mode 100644 index 000000000..a915bb755 --- /dev/null +++ b/bukkit/src/main/java/net/leaderos/plugin/modules/verify/commands/VerifyCommand.java @@ -0,0 +1,58 @@ +package net.leaderos.plugin.modules.verify.commands; + +import dev.triumphteam.cmd.bukkit.annotation.Permission; +import dev.triumphteam.cmd.core.BaseCommand; +import dev.triumphteam.cmd.core.annotation.Command; +import dev.triumphteam.cmd.core.annotation.Default; +import lombok.RequiredArgsConstructor; +import net.leaderos.plugin.Bukkit; +import net.leaderos.plugin.helpers.ChatUtil; +import net.leaderos.shared.helpers.RequestUtil; +import net.leaderos.shared.model.Response; +import net.leaderos.shared.model.request.impl.verify.VerifyRequest; +import org.bukkit.entity.Player; + +import java.net.HttpURLConnection; + +/** + * Verify command + * @author leaderos + * @since 1.0 + */ +@RequiredArgsConstructor +@Command(value = "verify", alias = {"dogrula"}) +public class VerifyCommand extends BaseCommand { + + /** + * Verify command + * @param player executor + * @param code code + */ + @Default + @Permission("leaderos.verify") + public void verifyCommand(Player player, String code) { + if (!RequestUtil.canRequest(player.getUniqueId())) { + ChatUtil.sendMessage(player, Bukkit.getInstance().getLangFile().getMessages().getHaveRequestOngoing()); + return; + } + + RequestUtil.addRequest(player.getUniqueId()); + + org.bukkit.Bukkit.getScheduler().runTaskAsynchronously(Bukkit.getInstance(), () -> { + try { + String username = player.getName(); + String uuid = player.getUniqueId().toString(); + Response verifyRequest = new VerifyRequest(code, username, uuid).getResponse(); + if (verifyRequest.getResponseCode() == HttpURLConnection.HTTP_OK && verifyRequest.getResponseMessage().getBoolean("status")) { + ChatUtil.sendMessage(player, Bukkit.getInstance().getLangFile().getMessages().getVerify().getSuccessMessage()); + } else { + ChatUtil.sendMessage(player, Bukkit.getInstance().getLangFile().getMessages().getVerify().getFailMessage()); + } + } catch (Exception e) { + ChatUtil.sendMessage(player, Bukkit.getInstance().getLangFile().getMessages().getVerify().getFailMessage()); + } + + RequestUtil.invalidate(player.getUniqueId()); + }); + } +} \ No newline at end of file diff --git a/bungee/src/main/java/net/leaderos/bungee/Bungee.java b/bungee/src/main/java/net/leaderos/bungee/Bungee.java index 73ed6d9a4..698d6679c 100644 --- a/bungee/src/main/java/net/leaderos/bungee/Bungee.java +++ b/bungee/src/main/java/net/leaderos/bungee/Bungee.java @@ -13,6 +13,7 @@ import net.leaderos.bungee.modules.connect.ConnectModule; import net.leaderos.bungee.modules.credit.CreditModule; import net.leaderos.bungee.modules.discord.DiscordModule; +import net.leaderos.bungee.modules.verify.VerifyModule; import net.leaderos.shared.Shared; import net.leaderos.shared.helpers.Placeholder; import net.leaderos.shared.helpers.PluginUpdater; @@ -80,6 +81,7 @@ public void onEnable() { ) ; Bungee.getInstance().getProxy().getPluginManager().registerCommand(Bungee.getInstance(), new LeaderOSCommand("leaderos")); + getModuleManager().registerModule(new VerifyModule()); getModuleManager().registerModule(new DiscordModule()); getModuleManager().registerModule(new CreditModule()); getModuleManager().registerModule(new ConnectModule()); diff --git a/bungee/src/main/java/net/leaderos/bungee/configuration/Language.java b/bungee/src/main/java/net/leaderos/bungee/configuration/Language.java index 77a9ab5ac..9ee7c2101 100644 --- a/bungee/src/main/java/net/leaderos/bungee/configuration/Language.java +++ b/bungee/src/main/java/net/leaderos/bungee/configuration/Language.java @@ -60,6 +60,7 @@ public static class Messages extends OkaeriConfig { private List help = Arrays.asList( "&6&l LEADEROS PLUGIN'S COMMANDS", "", + "&8 ▪ &e/verify &8» &fVerifies your Minecraft account.", "&8 ▪ &e/discord-sync &8» &fGives you the Discord sync link.", "", "&8 ▪ &e/credits &8» &fShows your credit amount.", @@ -146,6 +147,27 @@ public static class Command extends OkaeriConfig { } + /** + * Verify messages + */ + private Verify verify = new Verify(); + + /** + * Discord messages of plugin + */ + @Getter @Setter + public static class Verify extends OkaeriConfig { + /** + * success message + */ + private String successMessage = "{prefix} &aYour account has been successfully verified. Please back to the website."; + + /** + * error message + */ + private String failMessage = "{prefix} &cAn error occurred while verifying your account. Please try again later."; + } + /** * Discord messages */ diff --git a/bungee/src/main/java/net/leaderos/bungee/configuration/Modules.java b/bungee/src/main/java/net/leaderos/bungee/configuration/Modules.java index 0e8698608..400c9a41c 100644 --- a/bungee/src/main/java/net/leaderos/bungee/configuration/Modules.java +++ b/bungee/src/main/java/net/leaderos/bungee/configuration/Modules.java @@ -17,6 +17,26 @@ @Setter @Names(strategy = NameStrategy.IDENTITY) public class Modules extends OkaeriConfig { + /** + * Verify module + */ + private Verify Verify = new Verify(); + + /** + * Verify module settings + * + * @since 1.0 + * @author leaderos + */ + @Getter + @Setter + public static class Verify extends OkaeriConfig { + /** + * Status of Verify module + */ + private boolean status = false; + } + /** * Discord module */ diff --git a/bungee/src/main/java/net/leaderos/bungee/configuration/lang/en.java b/bungee/src/main/java/net/leaderos/bungee/configuration/lang/en.java index 3b8fce273..923fec3de 100644 --- a/bungee/src/main/java/net/leaderos/bungee/configuration/lang/en.java +++ b/bungee/src/main/java/net/leaderos/bungee/configuration/lang/en.java @@ -60,6 +60,7 @@ public static class Messages extends Language.Messages { private List help = Arrays.asList( "&6&l LEADEROS PLUGIN'S COMMANDS", "", + "&8 ▪ &e/verify &8» &fVerifies your Minecraft account.", "&8 ▪ &e/discord-sync &8» &fGives you the Discord sync link.", "", "&8 ▪ &e/credits &8» &fShows your credit amount.", @@ -146,6 +147,27 @@ public static class Command extends Language.Messages.Command { } + /** + * Verify messages + */ + private Verify verify = new Verify(); + + /** + * Discord messages of plugin + */ + @Getter @Setter + public static class Verify extends Language.Messages.Verify { + /** + * success message + */ + private String successMessage = "{prefix} &aYour account has been successfully verified. Please back to the website."; + + /** + * error message + */ + private String failMessage = "{prefix} &cAn error occurred while verifying your account. Please try again later."; + } + /** * Discord messages */ diff --git a/bungee/src/main/java/net/leaderos/bungee/configuration/lang/tr.java b/bungee/src/main/java/net/leaderos/bungee/configuration/lang/tr.java index 4cce80d1c..af8a48893 100644 --- a/bungee/src/main/java/net/leaderos/bungee/configuration/lang/tr.java +++ b/bungee/src/main/java/net/leaderos/bungee/configuration/lang/tr.java @@ -60,6 +60,7 @@ public static class Messages extends Language.Messages { private List help = Arrays.asList( "&6&l LEADEROS EKLENTI KOMUTLARI", "", + "&8 ▪ &e/verify &8» &fMinecraft hesabınızı doğrular.", "&8 ▪ &e/discord-sync &8» &fDiscord eşleme bağlantısı verir.", "", "&8 ▪ &e/credits &8» &fKredi miktarını görüntüler.", @@ -146,6 +147,27 @@ public static class Command extends Language.Messages.Command { } + /** + * Verify messages + */ + private Verify verify = new Verify(); + + /** + * Discord messages of plugin + */ + @Getter @Setter + public static class Verify extends Language.Messages.Verify { + /** + * success message + */ + private String successMessage = "{prefix} &aHesabınız başarıyla doğrulandı. Websiteye geri dönünüz."; + + /** + * error message + */ + private String failMessage = "{prefix} &cHesabınız doğrulanamadı. Lütfen daha sonra tekrar deneyin."; + } + /** * Discord messages */ diff --git a/bungee/src/main/java/net/leaderos/bungee/modules/verify/VerifyModule.java b/bungee/src/main/java/net/leaderos/bungee/modules/verify/VerifyModule.java new file mode 100644 index 000000000..d9dfdc292 --- /dev/null +++ b/bungee/src/main/java/net/leaderos/bungee/modules/verify/VerifyModule.java @@ -0,0 +1,40 @@ +package net.leaderos.bungee.modules.verify; + +import net.leaderos.bungee.Bungee; +import net.leaderos.bungee.modules.verify.commands.VerifyCommand; +import net.leaderos.shared.modules.LeaderOSModule; + +/** + * Verify module of leaderos-plugin + * + * @author leaderos + * @since 1.0 + */ +public class VerifyModule extends LeaderOSModule { + + /** + * Commands of module + */ + private VerifyCommand command; + + /** + * onEnable method of module + */ + public void onEnable() { + this.command = new VerifyCommand("verify"); + Bungee.getInstance().getProxy().getPluginManager().registerCommand(Bungee.getInstance(), command); + } + + /** + * onDisable method of module + */ + public void onDisable() { + Bungee.getInstance().getProxy().getPluginManager().unregisterCommand(command); + } + + /** + * Constructor of Auth + */ + public VerifyModule() { + } +} diff --git a/bungee/src/main/java/net/leaderos/bungee/modules/verify/commands/VerifyCommand.java b/bungee/src/main/java/net/leaderos/bungee/modules/verify/commands/VerifyCommand.java new file mode 100644 index 000000000..845d29fe9 --- /dev/null +++ b/bungee/src/main/java/net/leaderos/bungee/modules/verify/commands/VerifyCommand.java @@ -0,0 +1,60 @@ +package net.leaderos.bungee.modules.verify.commands; + +import net.leaderos.bungee.Bungee; +import net.leaderos.bungee.helpers.ChatUtil; +import net.leaderos.shared.model.Response; +import net.leaderos.shared.model.request.impl.verify.VerifyRequest; +import net.md_5.bungee.api.CommandSender; +import net.md_5.bungee.api.connection.ProxiedPlayer; +import net.md_5.bungee.api.plugin.Command; + +import java.net.HttpURLConnection; + +/** + * Verify command + * @author leaderos + * @since 1.0 + */ +public class VerifyCommand extends Command { + + /** + * Constructor of author command + * @param name of command + */ + public VerifyCommand(String name) { + super(name); + } + + /** + * Verify command + * @param sender executor + * @param args command args + */ + @Override + public void execute(CommandSender sender, String[] args) { + if (sender instanceof ProxiedPlayer) { + ProxiedPlayer player = (ProxiedPlayer) sender; + if (player.hasPermission("leaderos.verify")) { + if (args.length == 1) { + try { + String code = args[0]; + String username = player.getName(); + String uuid = player.getUniqueId().toString(); + Response verifyRequest = new VerifyRequest(code, username, uuid).getResponse(); + if (verifyRequest.getResponseCode() == HttpURLConnection.HTTP_OK && verifyRequest.getResponseMessage().getBoolean("status")) { + ChatUtil.sendMessage(player, Bungee.getInstance().getLangFile().getMessages().getVerify().getSuccessMessage()); + } else { + ChatUtil.sendMessage(player, Bungee.getInstance().getLangFile().getMessages().getVerify().getFailMessage()); + } + } catch (Exception e) { + ChatUtil.sendMessage(player, Bungee.getInstance().getLangFile().getMessages().getVerify().getFailMessage()); + } + } else { + ChatUtil.sendMessage(player, Bungee.getInstance().getLangFile().getMessages().getCommand().getNotEnoughArguments()); + } + } else { + ChatUtil.sendMessage(player, Bungee.getInstance().getLangFile().getMessages().getCommand().getNoPerm()); + } + } + } +} \ No newline at end of file diff --git a/shared/src/main/java/net/leaderos/shared/model/request/impl/verify/VerifyRequest.java b/shared/src/main/java/net/leaderos/shared/model/request/impl/verify/VerifyRequest.java new file mode 100644 index 000000000..0e8238b0e --- /dev/null +++ b/shared/src/main/java/net/leaderos/shared/model/request/impl/verify/VerifyRequest.java @@ -0,0 +1,16 @@ +package net.leaderos.shared.model.request.impl.verify; + +import net.leaderos.shared.model.request.PostRequest; + +import java.io.IOException; +import java.util.HashMap; + +public class VerifyRequest extends PostRequest { + public VerifyRequest(String code, String username, String uuid) throws IOException { + super("integrations/leaderos-id/verify-ingame", new HashMap() {{ + put("code", code); + put("username", uuid); + put("realname", username); + }}); + } +} diff --git a/velocity/src/main/java/net/leaderos/velocity/Velocity.java b/velocity/src/main/java/net/leaderos/velocity/Velocity.java index 6f2910edf..84eee2ca0 100644 --- a/velocity/src/main/java/net/leaderos/velocity/Velocity.java +++ b/velocity/src/main/java/net/leaderos/velocity/Velocity.java @@ -28,6 +28,7 @@ import net.leaderos.velocity.modules.connect.ConnectModule; import net.leaderos.velocity.modules.credit.CreditModule; import net.leaderos.velocity.modules.discord.DiscordModule; +import net.leaderos.velocity.modules.verify.VerifyModule; import org.bstats.velocity.Metrics; import org.slf4j.Logger; @@ -136,6 +137,7 @@ public void onProxyInitialize(ProxyInitializeEvent event) { new DebugVelocity() ); this.moduleManager = new ModuleManager(); + getModuleManager().registerModule(new VerifyModule()); getModuleManager().registerModule(new CreditModule()); getModuleManager().registerModule(new DiscordModule()); getModuleManager().registerModule(new ConnectModule()); diff --git a/velocity/src/main/java/net/leaderos/velocity/configuration/Language.java b/velocity/src/main/java/net/leaderos/velocity/configuration/Language.java index 2874c619c..f3cb32e29 100644 --- a/velocity/src/main/java/net/leaderos/velocity/configuration/Language.java +++ b/velocity/src/main/java/net/leaderos/velocity/configuration/Language.java @@ -60,6 +60,7 @@ public static class Messages extends OkaeriConfig { private List help = Arrays.asList( "&6&l LEADEROS PLUGIN'S COMMANDS", "", + "&8 ▪ &e/verify &8» &fVerifies your Minecraft account.", "&8 ▪ &e/discord-sync &8» &fGives you the Discord sync link.", "", "&8 ▪ &e/credits &8» &fShows your credit amount.", @@ -146,6 +147,27 @@ public static class Command extends OkaeriConfig { } + /** + * Verify messages + */ + private Verify verify = new Verify(); + + /** + * Discord messages of plugin + */ + @Getter @Setter + public static class Verify extends OkaeriConfig { + /** + * success message + */ + private String successMessage = "{prefix} &aYour account has been successfully verified. Please back to the website."; + + /** + * error message + */ + private String failMessage = "{prefix} &cAn error occurred while verifying your account. Please try again later."; + } + /** * Discord messages */ diff --git a/velocity/src/main/java/net/leaderos/velocity/configuration/Modules.java b/velocity/src/main/java/net/leaderos/velocity/configuration/Modules.java index 55a3c944d..e631088d4 100644 --- a/velocity/src/main/java/net/leaderos/velocity/configuration/Modules.java +++ b/velocity/src/main/java/net/leaderos/velocity/configuration/Modules.java @@ -17,6 +17,26 @@ @Setter @Names(strategy = NameStrategy.IDENTITY) public class Modules extends OkaeriConfig { + /** + * Verify module + */ + private Verify Verify = new Verify(); + + /** + * Verify module settings + * + * @since 1.0 + * @author leaderos + */ + @Getter + @Setter + public static class Verify extends OkaeriConfig { + /** + * Status of Verify module + */ + private boolean status = false; + } + /** * Discord module */ diff --git a/velocity/src/main/java/net/leaderos/velocity/configuration/lang/en.java b/velocity/src/main/java/net/leaderos/velocity/configuration/lang/en.java index 353c6fe80..4070eb28d 100644 --- a/velocity/src/main/java/net/leaderos/velocity/configuration/lang/en.java +++ b/velocity/src/main/java/net/leaderos/velocity/configuration/lang/en.java @@ -60,6 +60,7 @@ public static class Messages extends Language.Messages { private List help = Arrays.asList( "&6&l LEADEROS PLUGIN'S COMMANDS", "", + "&8 ▪ &e/verify &8» &fVerifies your Minecraft account.", "&8 ▪ &e/discord-sync &8» &fGives you the Discord sync link.", "", "&8 ▪ &e/credits &8» &fShows your credit amount.", @@ -146,6 +147,27 @@ public static class Command extends Language.Messages.Command { } + /** + * Verify messages + */ + private Verify verify = new Verify(); + + /** + * Discord messages of plugin + */ + @Getter @Setter + public static class Verify extends Language.Messages.Verify { + /** + * success message + */ + private String successMessage = "{prefix} &aYour account has been successfully verified. Please back to the website."; + + /** + * error message + */ + private String failMessage = "{prefix} &cAn error occurred while verifying your account. Please try again later."; + } + /** * Discord messages */ diff --git a/velocity/src/main/java/net/leaderos/velocity/configuration/lang/tr.java b/velocity/src/main/java/net/leaderos/velocity/configuration/lang/tr.java index 6acb38470..83f002ddc 100644 --- a/velocity/src/main/java/net/leaderos/velocity/configuration/lang/tr.java +++ b/velocity/src/main/java/net/leaderos/velocity/configuration/lang/tr.java @@ -60,6 +60,7 @@ public static class Messages extends Language.Messages { private List help = Arrays.asList( "&6&l LEADEROS EKLENTI KOMUTLARI", "", + "&8 ▪ &e/verify &8» &fMinecraft hesabınızı doğrular.", "&8 ▪ &e/discord-sync &8» &fDiscord eşleme bağlantısı verir.", "", "&8 ▪ &e/credits &8» &fKredi miktarını görüntüler.", @@ -146,6 +147,27 @@ public static class Command extends Language.Messages.Command { } + /** + * Verify messages + */ + private Verify verify = new Verify(); + + /** + * Discord messages of plugin + */ + @Getter @Setter + public static class Verify extends Language.Messages.Verify { + /** + * success message + */ + private String successMessage = "{prefix} &aHesabınız başarıyla doğrulandı. Websiteye geri dönünüz."; + + /** + * error message + */ + private String failMessage = "{prefix} &cHesabınız doğrulanamadı. Lütfen daha sonra tekrar deneyin."; + } + /** * Discord messages */ diff --git a/velocity/src/main/java/net/leaderos/velocity/modules/verify/VerifyModule.java b/velocity/src/main/java/net/leaderos/velocity/modules/verify/VerifyModule.java new file mode 100644 index 000000000..99f3670e9 --- /dev/null +++ b/velocity/src/main/java/net/leaderos/velocity/modules/verify/VerifyModule.java @@ -0,0 +1,51 @@ +package net.leaderos.velocity.modules.verify; + +import com.velocitypowered.api.command.CommandMeta; +import com.velocitypowered.api.command.SimpleCommand; +import net.leaderos.shared.modules.LeaderOSModule; +import net.leaderos.velocity.Velocity; +import net.leaderos.velocity.modules.verify.commands.VerifyCommand; + +/** + * Verify module of leaderos-plugin + * + * @author leaderos + * @since 1.0 + */ +public class VerifyModule extends LeaderOSModule { + + /** + * Command meta of module + */ + private CommandMeta commandMeta; + + /** + * Command object of module + */ + private SimpleCommand verifyCommand; + + /** + * onEnable method of module + */ + public void onEnable() { + commandMeta = Velocity.getInstance().getCommandManager().metaBuilder("verify") + .aliases("dogrula") + .plugin(Velocity.getInstance()) + .build(); + verifyCommand = new VerifyCommand(); + Velocity.getInstance().getCommandManager().register(commandMeta, verifyCommand); + } + + /** + * onDisable method of module + */ + public void onDisable() { + Velocity.getInstance().getCommandManager().unregister(commandMeta); + } + + /** + * Constructor of VerifyModule + */ + public VerifyModule() { + } +} diff --git a/velocity/src/main/java/net/leaderos/velocity/modules/verify/commands/VerifyCommand.java b/velocity/src/main/java/net/leaderos/velocity/modules/verify/commands/VerifyCommand.java new file mode 100644 index 000000000..69a2de727 --- /dev/null +++ b/velocity/src/main/java/net/leaderos/velocity/modules/verify/commands/VerifyCommand.java @@ -0,0 +1,55 @@ +package net.leaderos.velocity.modules.verify.commands; + +import com.velocitypowered.api.command.CommandSource; +import com.velocitypowered.api.command.SimpleCommand; +import com.velocitypowered.api.proxy.Player; +import net.leaderos.shared.model.Response; +import net.leaderos.shared.model.request.impl.verify.VerifyRequest; +import net.leaderos.velocity.Velocity; +import net.leaderos.velocity.helpers.ChatUtil; + +import java.net.HttpURLConnection; + +/** + * VerifyCommand of verify module + * @author leaderos + * @since 1.0 + */ +public class VerifyCommand implements SimpleCommand { + + /** + * Executes command method + * @param invocation command manager + */ + @Override + public void execute(Invocation invocation) { + CommandSource source = invocation.source(); + String[] args = invocation.arguments(); + + if (source instanceof Player) { + Player player = (Player) source; + if (player.hasPermission("leaderos.verify")) { + if (args.length == 1) { + try { + String code = args[0]; + String username = player.getUsername(); + String uuid = player.getUniqueId().toString(); + Response verifyRequest = new VerifyRequest(code, username, uuid).getResponse(); + if (verifyRequest.getResponseCode() == HttpURLConnection.HTTP_OK && verifyRequest.getResponseMessage().getBoolean("status")) { + ChatUtil.sendMessage(player, Velocity.getInstance().getLangFile().getMessages().getVerify().getSuccessMessage()); + } else { + ChatUtil.sendMessage(player, Velocity.getInstance().getLangFile().getMessages().getVerify().getFailMessage()); + } + } catch (Exception e) { + ChatUtil.sendMessage(player, Velocity.getInstance().getLangFile().getMessages().getVerify().getFailMessage()); + } + } else { + ChatUtil.sendMessage(player, Velocity.getInstance().getLangFile().getMessages().getCommand().getNotEnoughArguments()); + } + } + else { + ChatUtil.sendMessage(player, Velocity.getInstance().getLangFile().getMessages().getCommand().getNoPerm()); + } + } + } +}