From 2f997337e026a4a01a26a9c25b7550d36dadd15b Mon Sep 17 00:00:00 2001 From: Terrence S <22570455+Diamondman121314@users.noreply.github.com> Date: Wed, 15 Sep 2021 15:10:06 -0400 Subject: [PATCH 1/7] Update dependencies --- pom.xml | 77 ++++++++----------- .../java/com/godson/kekbot/GSONUtils.java | 3 - src/main/java/com/godson/kekbot/KekBot.java | 4 +- .../java/com/godson/kekbot/MiscListener.java | 3 - src/main/java/com/godson/kekbot/Version.java | 3 +- .../godson/kekbot/apitest/AdminResource.java | 6 +- .../godson/kekbot/apitest/TestResource.java | 6 +- .../command/commands/fun/GameCommand.java | 2 +- .../command/commands/fun/ShopCommand.java | 2 +- .../kekbot/command/commands/general/Help.java | 2 +- .../command/commands/general/Stats.java | 2 +- .../kekbot/command/commands/meme/DELET.java | 6 +- .../command/commands/weeb/WeebCommand.java | 10 +-- .../com/godson/kekbot/games/GamesManager.java | 4 +- .../godson/kekbot/menu/EmbedPaginator.java | 2 +- .../kekbot/menu/PagedSelectionMenu.java | 2 +- .../com/godson/kekbot/music/MusicPlayer.java | 2 +- .../godson/kekbot/music/TrackScheduler.java | 8 +- .../godson/kekbot/objects/DiscoinManager.java | 2 +- .../kekbot/objects/TakeoverManager.java | 22 +++--- .../godson/kekbot/objects/TwitterManager.java | 36 +++------ .../kekbot/profile/item/RewardManager.java | 7 +- .../godson/kekbot/settings/TicketManager.java | 6 +- 23 files changed, 93 insertions(+), 124 deletions(-) diff --git a/pom.xml b/pom.xml index d0a3366..0b31862 100644 --- a/pom.xml +++ b/pom.xml @@ -10,23 +10,18 @@ - jitpack.io - https://jitpack.io - - - central - bintray - https://jcenter.bintray.com + dv8tion + m2-dv8tion + https://m2.dv8tion.net/releases - com.sedmelluq - sedmelluq - https://dl.bintray.com/sedmelluq/com.sedmelluq + jitpack.io + https://jitpack.io - dv8tion - m2-dv8tion - https://m2.dv8tion.net/releases + duncte123 + duncte123-maven + https://duncte123.jfrog.io/artifactory/maven oss.sonatype.org @@ -46,7 +41,7 @@ org.glassfish.jersey jersey-bom - 2.9.1 + 3.0.2 pom import @@ -54,11 +49,11 @@ - - org.reflections - reflections - 0.9.11 - + + + + + org.glassfish.jersey.containers @@ -73,7 +68,7 @@ junit junit - 4.9 + 4.13.2 test @@ -83,7 +78,6 @@ 1.4.0 - com.sedmelluq lavaplayer @@ -93,25 +87,25 @@ net.dv8tion JDA - 4.2.0_214 + 4.3.0_324 commons-io commons-io - 2.5 + 2.11.0 com.google.code.gson gson - 2.8.1 + 2.8.8 org.apache.commons commons-lang3 - LATEST + 3.12.0 @@ -129,13 +123,13 @@ org.twitter4j twitter4j-core - 4.0.6 + 4.0.7 org.twitter4j twitter4j-stream - 4.0.6 + 4.0.7 @@ -147,29 +141,30 @@ me.duncte123 weebJava - 2.2.0_27 + + 3.0.1_4 - com.rethinkdb rethinkdb-driver - 2.3.3 + 2.4.0 + com.jagrosh jda-utilities - 3.0.2 + 3.0.5 compile pom - - com.github.twitch4j - twitch4j - v0.10.1 - + + + + + com.mashape.unirest @@ -180,14 +175,14 @@ ch.qos.logback logback-classic - 1.2.1 + 1.2.6 org.jsoup jsoup - 1.10.1 + 1.14.2 @@ -203,7 +198,7 @@ org.apache.maven.plugins maven-assembly-plugin - 2.4.1 + 3.3.0 @@ -228,11 +223,7 @@ - - - - \ No newline at end of file diff --git a/src/main/java/com/godson/kekbot/GSONUtils.java b/src/main/java/com/godson/kekbot/GSONUtils.java index 5935a64..13c7755 100644 --- a/src/main/java/com/godson/kekbot/GSONUtils.java +++ b/src/main/java/com/godson/kekbot/GSONUtils.java @@ -1,9 +1,6 @@ package com.godson.kekbot; import com.godson.kekbot.objects.UDictionary; -import com.godson.kekbot.responses.Action; -import com.godson.kekbot.responses.Responder; -import com.godson.kekbot.responses.ResponseSuggestions; import com.godson.kekbot.settings.*; import com.google.gson.Gson; import com.mashape.unirest.http.HttpResponse; diff --git a/src/main/java/com/godson/kekbot/KekBot.java b/src/main/java/com/godson/kekbot/KekBot.java index 2007b29..21c2b97 100644 --- a/src/main/java/com/godson/kekbot/KekBot.java +++ b/src/main/java/com/godson/kekbot/KekBot.java @@ -38,7 +38,6 @@ import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.requests.GatewayIntent; -import net.dv8tion.jda.api.sharding.DefaultShardManager; import net.dv8tion.jda.api.sharding.DefaultShardManagerBuilder; import net.dv8tion.jda.api.sharding.ShardManager; import net.dv8tion.jda.api.entities.Icon; @@ -143,7 +142,8 @@ private static void setupOptionalResources(int mode) { Config config = Config.getConfig(); if (config.getdBotsListToken() != null) dbl = new DiscordBotListAPI.Builder().token(config.getdBotsListToken()).build(); - if (config.getWeebToken() != null) weebApi = new WeebApiBuilder(TokenType.WOLKETOKENS, "KekBot/" + version.toString()).setToken(config.getWeebToken()).build(); +// if (config.getWeebToken() != null) weebApi = new WeebApiBuilder(TokenType.WOLKETOKENS, "KekBot/" + version.toString()).setToken(config.getWeebToken()).build(); + if (config.getWeebToken() != null) weebApi = new WeebApiBuilder(TokenType.WOLKETOKENS).setBotInfo("KekBot", version.toString(), "").setToken(config.getWeebToken()).build(); if (config.usingTwitter()) { System.out.println("Using Twitter. Checking for missing values..."); if (config.getTwConsumerKey() == null) { diff --git a/src/main/java/com/godson/kekbot/MiscListener.java b/src/main/java/com/godson/kekbot/MiscListener.java index 5fda5e4..1884db8 100644 --- a/src/main/java/com/godson/kekbot/MiscListener.java +++ b/src/main/java/com/godson/kekbot/MiscListener.java @@ -1,6 +1,5 @@ package com.godson.kekbot; -import com.godson.kekbot.settings.Config; import com.godson.kekbot.settings.Settings; import com.godson.kekbot.util.LocaleUtils; import com.godson.kekbot.util.Utils; @@ -11,12 +10,10 @@ import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.events.ReadyEvent; import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent; -import net.dv8tion.jda.api.events.guild.member.GuildMemberLeaveEvent; import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent; import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; import net.dv8tion.jda.api.events.message.guild.GuildMessageUpdateEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; -import twitter4j.*; import java.util.*; import java.util.concurrent.TimeUnit; diff --git a/src/main/java/com/godson/kekbot/Version.java b/src/main/java/com/godson/kekbot/Version.java index 3f30501..94b5463 100644 --- a/src/main/java/com/godson/kekbot/Version.java +++ b/src/main/java/com/godson/kekbot/Version.java @@ -66,8 +66,7 @@ public boolean isHigherThan(Version version) { if (this.getPatchVersion() > version.getPatchVersion()) { return true; } else if (this.getPatchVersion() == version.getPatchVersion()) { - if (this.getBetaVersion() > version.getBetaVersion()) - return true; + return this.getBetaVersion() > version.getBetaVersion(); } } } diff --git a/src/main/java/com/godson/kekbot/apitest/AdminResource.java b/src/main/java/com/godson/kekbot/apitest/AdminResource.java index 62f6054..a171f42 100644 --- a/src/main/java/com/godson/kekbot/apitest/AdminResource.java +++ b/src/main/java/com/godson/kekbot/apitest/AdminResource.java @@ -3,9 +3,9 @@ import com.godson.kekbot.ExitCode; import com.godson.kekbot.KekBot; -import javax.ws.rs.*; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.*; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; @Path("admin") public class AdminResource { diff --git a/src/main/java/com/godson/kekbot/apitest/TestResource.java b/src/main/java/com/godson/kekbot/apitest/TestResource.java index 83510c8..4365afb 100644 --- a/src/main/java/com/godson/kekbot/apitest/TestResource.java +++ b/src/main/java/com/godson/kekbot/apitest/TestResource.java @@ -3,9 +3,9 @@ import com.godson.kekbot.KekBot; import com.godson.kekbot.profile.Profile; -import javax.ws.rs.*; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.*; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; /* Root resource (exposed at "myresource" path) */ @Path("test") diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/GameCommand.java b/src/main/java/com/godson/kekbot/command/commands/fun/GameCommand.java index 90bf5e7..52bf044 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/GameCommand.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/GameCommand.java @@ -96,7 +96,7 @@ public void onExecuted(CommandEvent event) { .addField(event.getString("command.fun.game.lobby.status"), getGameStatus(game, event.getLocale()), false) .addField(event.getString("command.fun.game.lobby.players"), StringUtils.join(game.players.stream().map(user -> game.getPlayerNumber(user) + ". " + user.getName()).collect(Collectors.toList()), "\n"), false); - channel.sendMessage(embed.build()).queue(); + channel.sendMessageEmbeds(embed.build()).queue(); } break; case "join": diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/ShopCommand.java b/src/main/java/com/godson/kekbot/command/commands/fun/ShopCommand.java index 060badd..37237fd 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/ShopCommand.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/ShopCommand.java @@ -240,7 +240,7 @@ public void onExecuted(CommandEvent event) throws Throwable { EmbedBuilder embedBuilder = new EmbedBuilder(); embedBuilder.setDescription("Done! You should be receiving `" + transaction.getPayout() + "` in the currency you selected shortly." + "\n[You can check your receipt by clicking on me!](" + url + "transactions/" + transaction.getId() + ")"); - event.getChannel().sendMessage(embedBuilder.build()).queue(); + event.getChannel().sendMessageEmbeds(embedBuilder.build()).queue(); } catch (IOException e) { e.printStackTrace(); } catch (UnauthorizedException e) { diff --git a/src/main/java/com/godson/kekbot/command/commands/general/Help.java b/src/main/java/com/godson/kekbot/command/commands/general/Help.java index 7573ecc..0079e71 100644 --- a/src/main/java/com/godson/kekbot/command/commands/general/Help.java +++ b/src/main/java/com/godson/kekbot/command/commands/general/Help.java @@ -78,7 +78,7 @@ private void sendCommandHelp(CommandEvent event, String commandName) { if (found) { if (event.getSelfMember().hasPermission(event.getTextChannel(), Permission.MESSAGE_EMBED_LINKS)) - event.getChannel().sendMessage(getCommandHelp(event, command.get())).queue(); + event.getChannel().sendMessageEmbeds(getCommandHelp(event, command.get())).queue(); else event.getChannel().sendMessage(getCommandHelpPlain(event, command.get())).queue(); } else event.getChannel().sendMessage(event.getString("command.general.help.commandnotfound")).queue(); diff --git a/src/main/java/com/godson/kekbot/command/commands/general/Stats.java b/src/main/java/com/godson/kekbot/command/commands/general/Stats.java index 5d20ef8..b97b519 100644 --- a/src/main/java/com/godson/kekbot/command/commands/general/Stats.java +++ b/src/main/java/com/godson/kekbot/command/commands/general/Stats.java @@ -100,7 +100,7 @@ public void onExecuted(CommandEvent event) { } builder.setColor(event.getSelfMember().getColor() != null ? event.getSelfMember().getColor() : Color.RED); - event.getChannel().sendMessage(builder.build()).queue(); + event.getChannel().sendMessageEmbeds(builder.build()).queue(); } private String shortenMemory(long mem) { diff --git a/src/main/java/com/godson/kekbot/command/commands/meme/DELET.java b/src/main/java/com/godson/kekbot/command/commands/meme/DELET.java index c019d68..ecefc04 100644 --- a/src/main/java/com/godson/kekbot/command/commands/meme/DELET.java +++ b/src/main/java/com/godson/kekbot/command/commands/meme/DELET.java @@ -5,6 +5,7 @@ import com.godson.kekbot.command.Command; import com.godson.kekbot.command.CommandCategories; import com.godson.kekbot.command.CommandEvent; +import me.duncte123.weebJava.configs.ImageConfig; import me.duncte123.weebJava.types.NSFWMode; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.Member; @@ -36,9 +37,10 @@ public void onExecuted(CommandEvent event) throws Throwable { if (!isMention(event.combineArgs()) && event.combineArgs().equals("this")) { event.getChannel().sendTyping().queue(); EmbedBuilder builder = new EmbedBuilder(); - builder.setImage(KekBot.weebApi.getRandomImage("delet_this", event.getTextChannel().isNSFW() ? NSFWMode.ALLOW_NSFW : NSFWMode.DISALLOW_NSFW).execute().getUrl()); + ImageConfig image = new ImageConfig.Builder().setType("delet_this").setNsfwMode(event.getTextChannel().isNSFW() ? NSFWMode.ALLOW_NSFW : NSFWMode.DISALLOW_NSFW).build(); + builder.setImage(KekBot.weebApi.getRandomImage(image).execute().getUrl()); builder.setFooter("Powered by Weeb.sh!", null); - event.getChannel().sendMessage(builder.build()).queue(); + event.getChannel().sendMessageEmbeds(builder.build()).queue(); return; } diff --git a/src/main/java/com/godson/kekbot/command/commands/weeb/WeebCommand.java b/src/main/java/com/godson/kekbot/command/commands/weeb/WeebCommand.java index 5df755a..5e8ceef 100644 --- a/src/main/java/com/godson/kekbot/command/commands/weeb/WeebCommand.java +++ b/src/main/java/com/godson/kekbot/command/commands/weeb/WeebCommand.java @@ -2,6 +2,7 @@ import com.godson.kekbot.command.Command; import com.godson.kekbot.command.CommandEvent; +import me.duncte123.weebJava.configs.ImageConfig; import me.duncte123.weebJava.models.WeebApi; import me.duncte123.weebJava.types.NSFWMode; import net.dv8tion.jda.api.EmbedBuilder; @@ -22,9 +23,9 @@ public void onExecuted(CommandEvent event) throws Throwable { event.getChannel().sendTyping().queue(); EmbedBuilder builder = new EmbedBuilder(); builder.setTitle(event.getString(message)); - builder.setImage(api.getRandomImage(type, event.getTextChannel().isNSFW() ? NSFWMode.ALLOW_NSFW : NSFWMode.DISALLOW_NSFW).execute().getUrl()); + builder.setImage(api.getRandomImage(new ImageConfig.Builder().setType(type).setNsfwMode(event.getTextChannel().isNSFW() ? NSFWMode.ALLOW_NSFW : NSFWMode.DISALLOW_NSFW).build()).execute().getUrl()); builder.setFooter("Powered by Weeb.sh!", null); - event.getChannel().sendMessage(builder.build()).queue(); + event.getChannel().sendMessageEmbeds(builder.build()).queue(); } public static class MentionCommand extends WeebCommand { @@ -40,13 +41,12 @@ public void onExecuted(CommandEvent event) throws Throwable { return; } - event.getChannel().sendTyping().queue(); EmbedBuilder builder = new EmbedBuilder(); builder.setTitle(event.getString(message, event.getMentionedUsers().get(0).getName(), event.getAuthor().getName())); - builder.setImage(api.getRandomImage(type, event.getTextChannel().isNSFW() ? NSFWMode.ALLOW_NSFW : NSFWMode.DISALLOW_NSFW).execute().getUrl()); + builder.setImage(api.getRandomImage(new ImageConfig.Builder().setType(type).setNsfwMode(event.getTextChannel().isNSFW() ? NSFWMode.ALLOW_NSFW : NSFWMode.DISALLOW_NSFW).build()).execute().getUrl()); builder.setFooter("Powered by Weeb.sh!", null); - event.getChannel().sendMessage(builder.build()).queue(); + event.getChannel().sendMessageEmbeds(builder.build()).queue(); } } } diff --git a/src/main/java/com/godson/kekbot/games/GamesManager.java b/src/main/java/com/godson/kekbot/games/GamesManager.java index df245ab..24362a1 100644 --- a/src/main/java/com/godson/kekbot/games/GamesManager.java +++ b/src/main/java/com/godson/kekbot/games/GamesManager.java @@ -6,7 +6,7 @@ import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.events.channel.text.TextChannelDeleteEvent; -import net.dv8tion.jda.api.events.guild.member.GuildMemberLeaveEvent; +import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent; import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; @@ -150,7 +150,7 @@ public void onTextChannelDelete(TextChannelDeleteEvent event) { } @Override - public void onGuildMemberLeave(GuildMemberLeaveEvent event) { + public void onGuildMemberRemove(GuildMemberRemoveEvent event) { if (event.getGuild().getTextChannels().stream().anyMatch(channel -> activeGames.containsKey(Long.valueOf(channel.getId())))) { List gameChannels = event.getGuild().getTextChannels().stream().filter(channel -> activeGames.containsKey(Long.valueOf(channel.getId()))).collect(Collectors.toList()); for (TextChannel channel : gameChannels) { diff --git a/src/main/java/com/godson/kekbot/menu/EmbedPaginator.java b/src/main/java/com/godson/kekbot/menu/EmbedPaginator.java index 3c8056b..52dfe56 100644 --- a/src/main/java/com/godson/kekbot/menu/EmbedPaginator.java +++ b/src/main/java/com/godson/kekbot/menu/EmbedPaginator.java @@ -134,7 +134,7 @@ private Message renderPage(int pageNum) { if(showPageNumbers) ebuilder.setFooter("Page " + pageNum + "/" + pages + (embed.getFooter() != null ? " | " + embed.getFooter().getText() : "") , null); - mbuilder.setEmbed(ebuilder.build()); + mbuilder.setEmbeds(ebuilder.build()); return mbuilder.build(); } diff --git a/src/main/java/com/godson/kekbot/menu/PagedSelectionMenu.java b/src/main/java/com/godson/kekbot/menu/PagedSelectionMenu.java index ea51787..a09a5ea 100644 --- a/src/main/java/com/godson/kekbot/menu/PagedSelectionMenu.java +++ b/src/main/java/com/godson/kekbot/menu/PagedSelectionMenu.java @@ -111,7 +111,7 @@ private Message renderPage(int pageNum) { mbuilder.append(this.text.apply(pageNum, this.pages)); } - mbuilder.setEmbed(ebuilder.build()); + mbuilder.setEmbeds(ebuilder.build()); return mbuilder.build(); } diff --git a/src/main/java/com/godson/kekbot/music/MusicPlayer.java b/src/main/java/com/godson/kekbot/music/MusicPlayer.java index f4dd6a8..efd5984 100644 --- a/src/main/java/com/godson/kekbot/music/MusicPlayer.java +++ b/src/main/java/com/godson/kekbot/music/MusicPlayer.java @@ -493,7 +493,7 @@ public void repeat(CommandEvent event) { private void connectToUsersVoiceChannel(CommandEvent event) { AudioManager audioManager = event.getGuild().getAudioManager(); - if (!audioManager.isConnected() && !audioManager.isAttemptingToConnect()) { + if (!audioManager.isConnected()) { Optional voiceChannel = event.getGuild().getVoiceChannels().stream().filter(c -> c.getMembers().contains(event.getEvent().getMember())).findFirst(); if (!voiceChannel.isPresent()) { event.getTextChannel().sendMessage(KekBot.respond(Action.GET_IN_VOICE_CHANNEL, event.getLocale())).queue(); diff --git a/src/main/java/com/godson/kekbot/music/TrackScheduler.java b/src/main/java/com/godson/kekbot/music/TrackScheduler.java index 6e5d51d..0b01b40 100644 --- a/src/main/java/com/godson/kekbot/music/TrackScheduler.java +++ b/src/main/java/com/godson/kekbot/music/TrackScheduler.java @@ -181,9 +181,9 @@ private Message getTrackMessage(int skip) { if (skip == 1) builder.append("Skipped to next track."); if (skip == 2) builder.append("Due to popular vote, this track was skipped."); if (repeat != 2) { - builder.setEmbed(embedTrack(queue.element().getKey().getInfo(), queue.element().getValue())); + builder.setEmbeds(embedTrack(queue.element().getKey().getInfo(), queue.element().getValue())); } else { - builder.setEmbed(embedTrack(getCurrentRepeatTrack().getKey().getInfo(), getCurrentRepeatTrack().getValue())); + builder.setEmbeds(embedTrack(getCurrentRepeatTrack().getKey().getInfo(), getCurrentRepeatTrack().getValue())); } return builder.build(); } @@ -192,9 +192,9 @@ private Message getTrackMessage(String note) { MessageBuilder builder = new MessageBuilder(); builder.append(note); if (repeat != 2) { - builder.setEmbed(embedTrack(queue.element().getKey().getInfo(), queue.element().getValue())); + builder.setEmbeds(embedTrack(queue.element().getKey().getInfo(), queue.element().getValue())); } else { - builder.setEmbed(embedTrack(getCurrentRepeatTrack().getKey().getInfo(), getCurrentRepeatTrack().getValue())); + builder.setEmbeds(embedTrack(getCurrentRepeatTrack().getKey().getInfo(), getCurrentRepeatTrack().getValue())); } return builder.build(); } diff --git a/src/main/java/com/godson/kekbot/objects/DiscoinManager.java b/src/main/java/com/godson/kekbot/objects/DiscoinManager.java index 4a86ac2..20cdc73 100644 --- a/src/main/java/com/godson/kekbot/objects/DiscoinManager.java +++ b/src/main/java/com/godson/kekbot/objects/DiscoinManager.java @@ -33,7 +33,7 @@ public class DiscoinManager { builder.setTitle("Discoin Transaction Recieved!"); builder.addField("Amount", transaction.getAmount() + " " + transaction.getFrom().getId() + " -> " + transaction.getPayout() + CustomEmote.printTopKek(), false); builder.addField("Transaction ID", "[" + transaction.getId() + "](" + url + "transactions/" + transaction.getId() + ")", false); - c.sendMessage(builder.build()).queue(); + c.sendMessageEmbeds(builder.build()).queue(); }); //user.openPrivateChannel().queue(c -> c.sendMessage("Woohoo! You just got paid " + CustomEmote.printPrice(transaction.getPayout()) + " from Discoin! (Transaction ID: " + transaction.getId() + ")").queue()); profile.addTopKeks(transaction.getPayout()); diff --git a/src/main/java/com/godson/kekbot/objects/TakeoverManager.java b/src/main/java/com/godson/kekbot/objects/TakeoverManager.java index bb7fdc7..264f4fc 100644 --- a/src/main/java/com/godson/kekbot/objects/TakeoverManager.java +++ b/src/main/java/com/godson/kekbot/objects/TakeoverManager.java @@ -2,29 +2,23 @@ import com.godson.kekbot.KekBot; import com.godson.kekbot.responses.Action; -import com.godson.kekbot.responses.Responder; import com.google.gson.Gson; import com.google.gson.annotations.SerializedName; -import com.rethinkdb.gen.ast.ReqlObject; -import com.rethinkdb.gen.ast.Table; import com.rethinkdb.model.MapObject; import com.rethinkdb.net.Cursor; import net.dv8tion.jda.api.entities.Icon; import org.apache.commons.io.FileUtils; -import org.json.simple.JSONObject; -import java.awt.*; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.*; import java.util.List; -import java.util.stream.Collectors; public class TakeoverManager { @SerializedName("Takeovers") - private List takeovers = new ArrayList<>(); + private final List takeovers = new ArrayList<>(); @SerializedName("Takeover Active") private boolean takeoverActive; @SerializedName("Current Takeover") @@ -33,11 +27,15 @@ public class TakeoverManager { public TakeoverManager() { - Cursor cursor = KekBot.r.table("Takeovers").run(KekBot.conn); - List takeovers = cursor.bufferedItems(); + Cursor cursor = KekBot.r.table("Takeovers").run(KekBot.conn); + List takeovers = cursor.bufferedItems(); cursor.close(); - Gson gson = new Gson(); - takeovers.forEach(takeover -> this.takeovers.add(gson.fromJson(takeover.toJSONString(), Takeover.class))); + takeovers.forEach(takeover -> this.takeovers.add(new Gson().fromJson(takeover.toJSONString(), Takeover.class))); +// com.rethinkdb.net.Result result = KekBot.r.table("Takeovers").run(KekBot.conn); +// List takeover = result.toList(); +// result.close(); +// takeover.forEach(takeoverT -> this.takeovers.add(new Gson().fromJson(result.toString(), Takeover.class))); + File currentTakeover = new File("takeover"); takeoverActive = currentTakeover.exists(); if (takeoverActive) { @@ -129,7 +127,7 @@ public static class Takeover { public Takeover() { games = new ArrayList<>(); - responses = new HashMap>(); + responses = new HashMap<>(); } public String getName() { diff --git a/src/main/java/com/godson/kekbot/objects/TwitterManager.java b/src/main/java/com/godson/kekbot/objects/TwitterManager.java index 17fac5c..c12f046 100644 --- a/src/main/java/com/godson/kekbot/objects/TwitterManager.java +++ b/src/main/java/com/godson/kekbot/objects/TwitterManager.java @@ -1,7 +1,6 @@ package com.godson.kekbot.objects; import com.godson.kekbot.KekBot; -import com.godson.kekbot.command.CommandEvent; import com.godson.kekbot.responses.Action; import com.godson.kekbot.settings.Config; import net.dv8tion.jda.api.EmbedBuilder; @@ -13,12 +12,9 @@ import twitter4j.*; import java.awt.*; -import java.io.UnsupportedEncodingException; -import java.sql.Time; +import java.nio.charset.StandardCharsets; import java.time.Instant; -import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; -import java.time.temporal.TemporalUnit; import java.util.*; import java.util.List; import java.util.concurrent.ScheduledExecutorService; @@ -34,7 +30,7 @@ public class TwitterManager extends ListenerAdapter { private final Twitter twitter = TwitterFactory.getSingleton(); private final List> statuses = new ArrayList<>(); - private Map currentTweets = new HashMap<>(); + private final Map currentTweets = new HashMap<>(); TwitterStream twitterStream = new TwitterStreamFactory().getInstance(); long[] ids = new long[]{958176875108593664L, 610103342L, 2996678026L, 624995324L, 1475679589L, 845418771896524801L, 762996861447860224L}; StatusListener listener = new StatusListener() { @@ -53,7 +49,7 @@ public void onStatus(Status status) { if (status.getMediaEntities().length > 0) builder.setImage(status.getMediaEntities()[0].getMediaURL()); builder.setDescription(status.getText()); - KekBot.jda.getTextChannelById("327379946794254338").sendMessage(builder.build()).queue(m -> currentTweets.put(status.getId(), m)); + KekBot.jda.getTextChannelById("327379946794254338").sendMessageEmbeds(builder.build()).queue(m -> currentTweets.put(status.getId(), m)); } @Override @@ -65,7 +61,7 @@ public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) { builder.setColor(Color.GRAY); builder.setTimestamp(m.getTimeCreated()); builder.setTitle("This tweet was removed from Twitter."); - m.editMessage(builder.build()).queue(); + m.editMessageEmbeds(builder.build()).queue(); currentTweets.remove(statusDeletionNotice.getStatusId()); } } @@ -134,12 +130,8 @@ private void tweet() { //Otherwise, throw everything into a traceback.txt file, and send it to chat for monitoring. String s = KekBot.respond(Action.EXCEPTION_THROWN, KekBot.getCommandClient().getDefaultLocale()) + endl + endl + ExceptionUtils.getStackTrace(e); - try { - byte[] b = s.getBytes("UTF-8"); - KekBot.jda.getTextChannelById(Config.getConfig().getTwitterChannel()).sendFile(b, "traceback.txt").content("Failed to send tweet. Traceback: ").queue(); - } catch (UnsupportedEncodingException e1) { - e1.printStackTrace(); - } + byte[] b = s.getBytes(StandardCharsets.UTF_8); + KekBot.jda.getTextChannelById(Config.getConfig().getTwitterChannel()).sendFile(b, "traceback.txt").content("Failed to send tweet. Traceback: ").queue(); } } @@ -158,12 +150,8 @@ private void tweet(String message) { //Otherwise, throw everything into a traceback.txt file, and send it to chat for monitoring. String s = KekBot.respond(Action.EXCEPTION_THROWN, KekBot.getCommandClient().getDefaultLocale()) + endl + endl + ExceptionUtils.getStackTrace(e); - try { - byte[] b = s.getBytes("UTF-8"); - KekBot.jda.getTextChannelById(Config.getConfig().getTwitterChannel()).sendFile(b, "traceback.txt").content("Failed to send tweet. Traceback: ").queue(); - } catch (UnsupportedEncodingException e1) { - e1.printStackTrace(); - } + byte[] b = s.getBytes(StandardCharsets.UTF_8); + KekBot.jda.getTextChannelById(Config.getConfig().getTwitterChannel()).sendFile(b, "traceback.txt").content("Failed to send tweet. Traceback: ").queue(); } } @@ -182,12 +170,8 @@ private void tweet(StatusUpdate update) { //Otherwise, throw everything into a traceback.txt file, and send it to chat for monitoring. String s = KekBot.respond(Action.EXCEPTION_THROWN, KekBot.getCommandClient().getDefaultLocale()) + endl + endl + ExceptionUtils.getStackTrace(e); - try { - byte[] b = s.getBytes("UTF-8"); - KekBot.jda.getTextChannelById(Config.getConfig().getTwitterChannel()).sendFile(b, "traceback.txt").content("Failed to send tweet. Traceback: ").queue(); - } catch (UnsupportedEncodingException e1) { - e1.printStackTrace(); - } + byte[] b = s.getBytes(StandardCharsets.UTF_8); + KekBot.jda.getTextChannelById(Config.getConfig().getTwitterChannel()).sendFile(b, "traceback.txt").content("Failed to send tweet. Traceback: ").queue(); } } diff --git a/src/main/java/com/godson/kekbot/profile/item/RewardManager.java b/src/main/java/com/godson/kekbot/profile/item/RewardManager.java index 076cbbf..6368e03 100644 --- a/src/main/java/com/godson/kekbot/profile/item/RewardManager.java +++ b/src/main/java/com/godson/kekbot/profile/item/RewardManager.java @@ -4,6 +4,7 @@ import java.io.File; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; @@ -13,7 +14,7 @@ public class RewardManager { static { try { //Get list of rewards from txt file. - List rewardsFile = FileUtils.readLines(new File("resources/lootbox/rewards.txt")); + List rewardsFile = FileUtils.readLines(new File("resources/lootbox/rewards.txt"), StandardCharsets.UTF_8); //For each reward specified in file: for (String line : rewardsFile) { //Rewards in text format goes as follows: @@ -28,7 +29,7 @@ public class RewardManager { //If topkek: case "TOPKEK": //add a new TopKek reward: - rewards.add(new LootBox.TopKekReward(LootBox.Rarity.valueOf(rarity), Integer.valueOf(value))); + rewards.add(new LootBox.TopKekReward(LootBox.Rarity.valueOf(rarity), Integer.parseInt(value))); break; //If background: case "BG": @@ -37,7 +38,7 @@ public class RewardManager { break; //If KXP: case "KXP": - rewards.add(new LootBox.KXPReward(LootBox.Rarity.valueOf(rarity), Integer.valueOf(value))); + rewards.add(new LootBox.KXPReward(LootBox.Rarity.valueOf(rarity), Integer.parseInt(value))); break; } } diff --git a/src/main/java/com/godson/kekbot/settings/TicketManager.java b/src/main/java/com/godson/kekbot/settings/TicketManager.java index 13d0c8b..0243bf7 100644 --- a/src/main/java/com/godson/kekbot/settings/TicketManager.java +++ b/src/main/java/com/godson/kekbot/settings/TicketManager.java @@ -16,7 +16,7 @@ public class TicketManager { - private static Gson gson = new Gson(); + private static final Gson gson = new Gson(); private static final Timer timer = new Timer(); public static void addTicket(Ticket ticket) { @@ -64,7 +64,7 @@ public static void addAdminReply(Ticket ticket, String response, User replier) { if (replier != null) eBuilder.setThumbnail(Utils.getUserAvatarURL(replier)); else eBuilder.setThumbnail("https://discordapp.com/assets/dd4dbc0016779df1378e7812eabaa04d.png"); eBuilder.setTimestamp(Instant.ofEpochMilli(System.currentTimeMillis())); - KekBot.jda.getUserById(ticket.getAuthorID()).openPrivateChannel().queue(ch -> ch.sendMessage("You have received a reply for your ticket. (`" + ticket.getID() + "`) Use `$ticket view " + ticket.getID() + "` to view your ticket and its replies.").embed(eBuilder.build()).queue()); + KekBot.jda.getUserById(ticket.getAuthorID()).openPrivateChannel().queue(ch -> ch.sendMessage("You have received a reply for your ticket. (`" + ticket.getID() + "`) Use `$ticket view " + ticket.getID() + "` to view your ticket and its replies.").setEmbeds(eBuilder.build()).queue()); ticket.setStatus(Ticket.TicketStatus.AWAITING_REPLY); ticket.addReply(replier, response, true); KekBot.r.table("Tickets").get(ticket.getID()).update(KekBot.r.hashMap("Replies", ticket.getReplies()).with("Status", ticket.getStatus().name())).run(KekBot.conn); @@ -82,7 +82,7 @@ public static void addUserReply(Ticket ticket, String response, User replier) { public static List getTickets() { if (!(boolean) KekBot.r.table("Tickets").isEmpty().run(KekBot.conn)) { - Cursor cursor = KekBot.r.table("Tickets").run(KekBot.conn); + Cursor cursor = KekBot.r.table("Tickets").run(KekBot.conn); List list = cursor.bufferedItems(); List tickets = new ArrayList<>(); list.forEach(json -> tickets.add(gson.fromJson(json.toJSONString(), Ticket.class))); From 5be6f34a136493d7dc387b7f9850d19bb9c39961 Mon Sep 17 00:00:00 2001 From: Terrence S <22570455+Diamondman121314@users.noreply.github.com> Date: Wed, 15 Sep 2021 15:25:52 -0400 Subject: [PATCH 2/7] Fix inconsistency with ImageConfig --- .../java/com/godson/kekbot/command/commands/meme/DELET.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/godson/kekbot/command/commands/meme/DELET.java b/src/main/java/com/godson/kekbot/command/commands/meme/DELET.java index ecefc04..7b843da 100644 --- a/src/main/java/com/godson/kekbot/command/commands/meme/DELET.java +++ b/src/main/java/com/godson/kekbot/command/commands/meme/DELET.java @@ -37,8 +37,7 @@ public void onExecuted(CommandEvent event) throws Throwable { if (!isMention(event.combineArgs()) && event.combineArgs().equals("this")) { event.getChannel().sendTyping().queue(); EmbedBuilder builder = new EmbedBuilder(); - ImageConfig image = new ImageConfig.Builder().setType("delet_this").setNsfwMode(event.getTextChannel().isNSFW() ? NSFWMode.ALLOW_NSFW : NSFWMode.DISALLOW_NSFW).build(); - builder.setImage(KekBot.weebApi.getRandomImage(image).execute().getUrl()); + builder.setImage(KekBot.weebApi.getRandomImage(new ImageConfig.Builder().setType("delet_this").setNsfwMode(event.getTextChannel().isNSFW() ? NSFWMode.ALLOW_NSFW : NSFWMode.DISALLOW_NSFW).build()).execute().getUrl()); builder.setFooter("Powered by Weeb.sh!", null); event.getChannel().sendMessageEmbeds(builder.build()).queue(); return; From 1f607ea966a26cd6006aa52bf1082c8d869b2fe7 Mon Sep 17 00:00:00 2001 From: Terrence S <22570455+Diamondman121314@users.noreply.github.com> Date: Wed, 15 Sep 2021 15:33:54 -0400 Subject: [PATCH 3/7] Fix another dumb thing that I did --- .../java/com/godson/kekbot/objects/TakeoverManager.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/godson/kekbot/objects/TakeoverManager.java b/src/main/java/com/godson/kekbot/objects/TakeoverManager.java index 264f4fc..7f09eb4 100644 --- a/src/main/java/com/godson/kekbot/objects/TakeoverManager.java +++ b/src/main/java/com/godson/kekbot/objects/TakeoverManager.java @@ -30,11 +30,8 @@ public TakeoverManager() { Cursor cursor = KekBot.r.table("Takeovers").run(KekBot.conn); List takeovers = cursor.bufferedItems(); cursor.close(); - takeovers.forEach(takeover -> this.takeovers.add(new Gson().fromJson(takeover.toJSONString(), Takeover.class))); -// com.rethinkdb.net.Result result = KekBot.r.table("Takeovers").run(KekBot.conn); -// List takeover = result.toList(); -// result.close(); -// takeover.forEach(takeoverT -> this.takeovers.add(new Gson().fromJson(result.toString(), Takeover.class))); + Gson gson = new Gson(); + takeovers.forEach(takeover -> this.takeovers.add(gson.fromJson(takeover.toJSONString(), Takeover.class))); File currentTakeover = new File("takeover"); takeoverActive = currentTakeover.exists(); From 1999c5b8b0288d45f92019279b666b5c479687f7 Mon Sep 17 00:00:00 2001 From: Terrence S <22570455+Diamondman121314@users.noreply.github.com> Date: Thu, 21 Oct 2021 20:18:13 -0400 Subject: [PATCH 4/7] More updates --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 0b31862..8956357 100644 --- a/pom.xml +++ b/pom.xml @@ -87,7 +87,7 @@ net.dv8tion JDA - 4.3.0_324 + 4.3.0_335 @@ -182,7 +182,7 @@ org.jsoup jsoup - 1.14.2 + 1.14.3 From 099958af0a0afc36d06856b5b15ab37a4cc3d5f2 Mon Sep 17 00:00:00 2001 From: Terrence S <22570455+Diamondman121314@users.noreply.github.com> Date: Sat, 30 Oct 2021 14:37:09 -0400 Subject: [PATCH 5/7] A lot of random code updates and fixes --- .classpath | 43 ---------- .project | 15 ---- kekbot.eml | 45 ---------- kekbot.userlibraries | 82 ------------------ pom.xml | 26 +++--- .../java/com/godson/kekbot/CustomEmote.java | 2 +- .../java/com/godson/kekbot/GSONUtils.java | 5 +- src/main/java/com/godson/kekbot/KekBot.java | 8 +- .../com/godson/kekbot/ShutdownListener.java | 5 +- src/main/java/com/godson/kekbot/Version.java | 8 +- .../com/godson/kekbot/command/Command.java | 19 ++--- .../godson/kekbot/command/CommandClient.java | 14 ++-- .../kekbot/command/TextImageCommand.java | 1 - .../kekbot/command/commands/MarkovTest.java | 3 - .../kekbot/command/commands/admin/Purge.java | 84 +++++++++---------- .../kekbot/command/commands/admin/Role.java | 8 +- .../commands/admin/SettingsCommand.java | 5 +- .../command/commands/botowner/BlockUser.java | 5 +- .../command/commands/botowner/BotAdmin.java | 5 +- .../command/commands/botowner/BotMod.java | 2 +- .../command/commands/botowner/Eval.java | 3 +- .../command/commands/botowner/GetInvite.java | 3 +- .../command/commands/botowner/Patreon.java | 1 - .../command/commands/botowner/Shutdown.java | 1 - .../command/commands/botowner/Tweet.java | 5 +- .../commands/botowner/botadmin/AddGame.java | 1 - .../commands/botowner/botadmin/Responses.java | 4 +- .../commands/botowner/botadmin/Takeover.java | 4 +- .../commands/botowner/botadmin/Update.java | 4 +- .../kekbot/command/commands/fun/Avatar.java | 14 +++- .../kekbot/command/commands/fun/Daily.java | 6 +- .../command/commands/fun/FullWidth.java | 4 +- .../command/commands/fun/GameCommand.java | 4 +- .../command/commands/fun/LotteryCommand.java | 2 +- .../kekbot/command/commands/fun/Music.java | 11 +-- .../command/commands/fun/MyPlaylist.java | 46 +++++----- .../kekbot/command/commands/fun/Pay.java | 2 +- .../command/commands/fun/ProfileCommand.java | 12 +-- .../kekbot/command/commands/fun/Quote.java | 4 +- .../kekbot/command/commands/fun/RIP.java | 2 +- .../kekbot/command/commands/fun/Roll.java | 2 +- .../command/commands/fun/ShopCommand.java | 59 +++++++------ .../command/commands/general/Changelog.java | 1 - .../commands/general/GoogleSearch.java | 2 +- .../kekbot/command/commands/general/Help.java | 3 +- .../command/commands/general/LMGTFY.java | 2 +- .../kekbot/command/commands/general/Ping.java | 6 -- .../kekbot/command/commands/general/Poll.java | 14 ++-- .../command/commands/general/Strawpoll.java | 4 +- .../command/commands/general/Support.java | 2 +- .../commands/general/TicketCommand.java | 2 +- .../kekbot/command/commands/meme/DSXSays.java | 8 -- .../kekbot/command/commands/meme/Doggo.java | 1 - .../kekbot/command/commands/meme/Gabe.java | 2 +- .../command/commands/meme/Granddad.java | 2 +- .../kekbot/command/commands/meme/Gru.java | 4 +- .../kekbot/command/commands/meme/Jontron.java | 2 +- .../command/commands/meme/JustRight.java | 2 +- .../kekbot/command/commands/meme/Kaede.java | 15 +--- .../kekbot/command/commands/meme/Kirb.java | 2 +- .../kekbot/command/commands/meme/Lean.java | 2 +- .../command/commands/meme/NotAllowed.java | 2 - .../command/commands/meme/YouTried.java | 2 +- .../com/godson/kekbot/games/BetManager.java | 8 +- .../java/com/godson/kekbot/games/Game.java | 16 ++-- .../com/godson/kekbot/games/GameRegistry.java | 8 +- .../com/godson/kekbot/games/GamesManager.java | 10 +-- .../java/com/godson/kekbot/games/Hangman.java | 13 ++- .../godson/kekbot/games/RussianRoulette.java | 29 ++----- .../com/godson/kekbot/games/SnailRace.java | 11 ++- .../com/godson/kekbot/games/TicTacToe.java | 14 ++-- .../java/com/godson/kekbot/games/Trivia.java | 16 ++-- .../kekbot/menu/PagedSelectionMenu.java | 11 +-- .../java/com/godson/kekbot/menu/ShopMenu.java | 9 +- .../godson/kekbot/music/ErrorScheduler.java | 2 - .../kekbot/music/GuildMusicManager.java | 2 - .../com/godson/kekbot/music/Playlist.java | 2 +- .../godson/kekbot/objects/DiscoinManager.java | 2 +- .../godson/kekbot/objects/MarkovChain.java | 3 - .../godson/kekbot/objects/PollManager.java | 8 +- .../godson/kekbot/objects/TwitterManager.java | 4 +- .../godson/kekbot/objects/WaifuManager.java | 4 +- .../com/godson/kekbot/profile/Profile.java | 6 +- .../godson/kekbot/profile/ProfileUtils.java | 4 +- .../profile/item/BackgroundManager.java | 1 - .../profile/rewards/lottery/Lottery.java | 16 ++-- .../kekbot/questionaire/Questionnaire.java | 14 ++-- .../com/godson/kekbot/responses/Action.java | 4 +- .../godson/kekbot/responses/Responder.java | 3 - .../kekbot/responses/ResponseSuggestion.java | 6 +- .../com/godson/kekbot/settings/Config.java | 28 +++---- .../com/godson/kekbot/settings/Ticket.java | 14 ++-- .../godson/kekbot/shop/BackgroundShop.java | 2 +- .../java/com/godson/kekbot/shop/Shop.java | 8 +- .../com/godson/kekbot/shop/TokenShop.java | 2 +- .../com/godson/kekbot/util/ImageUtils.java | 10 +-- .../com/godson/kekbot/util/LocaleUtils.java | 14 ++-- .../godson/kekbot/util/RandomCollection.java | 2 +- .../java/com/godson/kekbot/util/Utils.java | 46 +++------- src/main/resources/logback.xml | 5 +- 100 files changed, 345 insertions(+), 671 deletions(-) delete mode 100644 .classpath delete mode 100644 .project delete mode 100644 kekbot.eml delete mode 100644 kekbot.userlibraries diff --git a/.classpath b/.classpath deleted file mode 100644 index dd322d6..0000000 --- a/.classpath +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.project b/.project deleted file mode 100644 index f773920..0000000 --- a/.project +++ /dev/null @@ -1,15 +0,0 @@ - - - kekbot - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.jdt.core.javanature - - diff --git a/kekbot.eml b/kekbot.eml deleted file mode 100644 index 43eb9f5..0000000 --- a/kekbot.eml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/kekbot.userlibraries b/kekbot.userlibraries deleted file mode 100644 index 7182861..0000000 --- a/kekbot.userlibraries +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/pom.xml b/pom.xml index 8956357..0109fab 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ org.glassfish.jersey jersey-bom - 3.0.2 + 3.0.3 pom import @@ -49,10 +49,11 @@ + - - - + + + @@ -65,6 +66,11 @@ jersey-media-moxy + + org.glassfish.jersey.inject + jersey-hk2 + + junit junit @@ -87,7 +93,7 @@ net.dv8tion JDA - 4.3.0_335 + 4.3.0_339 @@ -141,7 +147,6 @@ me.duncte123 weebJava - 3.0.1_4 @@ -149,7 +154,6 @@ com.rethinkdb rethinkdb-driver 2.4.0 - @@ -160,12 +164,6 @@ pom - - - - - - com.mashape.unirest unirest-java @@ -193,7 +191,7 @@ - kekbot + ${project.artifactId} org.apache.maven.plugins diff --git a/src/main/java/com/godson/kekbot/CustomEmote.java b/src/main/java/com/godson/kekbot/CustomEmote.java index 2d40160..cd8bdc1 100644 --- a/src/main/java/com/godson/kekbot/CustomEmote.java +++ b/src/main/java/com/godson/kekbot/CustomEmote.java @@ -19,7 +19,7 @@ public class CustomEmote { "", "", ""}; - private static Random random = new Random(); + private static final Random random = new Random(); public static String think() { return THINKINGS[random.nextInt(THINKINGS.length)]; diff --git a/src/main/java/com/godson/kekbot/GSONUtils.java b/src/main/java/com/godson/kekbot/GSONUtils.java index 13c7755..c46c930 100644 --- a/src/main/java/com/godson/kekbot/GSONUtils.java +++ b/src/main/java/com/godson/kekbot/GSONUtils.java @@ -18,8 +18,9 @@ public class GSONUtils { public static UDictionary getUDResults(String word) { UDictionary uDictionary = new UDictionary(); try { - HttpResponse response = Unirest.get("https://mashape-community-urban-dictionary.p.mashape.com/define?term=" + word) - .header("X-Mashape-Key", "ceU4edWIr7mshi68Xs4IQYUQ7XgTp1ILJUgjsnsO4Qf4MOc543") + HttpResponse response = Unirest.get("https://mashape-community-urban-dictionary.p.rapidapi.com/define?term=" + word) + .header("x-rapidapi-host", "mashape-community-urban-dictionary.p.rapidapi.com") + .header("x-rapidapi-key", "E5INE1iy8hmshT83qlwXZbNm4a1Ip1EF2AejsnPkszBpJQqxFY") .header("Accept", "text/plain") .asString(); BufferedReader br = new BufferedReader(new InputStreamReader(response.getRawBody())); diff --git a/src/main/java/com/godson/kekbot/KekBot.java b/src/main/java/com/godson/kekbot/KekBot.java index 21c2b97..2dc0b11 100644 --- a/src/main/java/com/godson/kekbot/KekBot.java +++ b/src/main/java/com/godson/kekbot/KekBot.java @@ -59,7 +59,7 @@ import java.util.concurrent.*; public class KekBot { - //Seting configs, and resources. + //Setting configs, and resources. public static int shards = Config.getConfig().getShards(); public static ShardManager jda; public static final Version version = new Version(1, 6, 1); @@ -141,7 +141,7 @@ private static void setupOptionalResources(int mode) { //Load config Config config = Config.getConfig(); - if (config.getdBotsListToken() != null) dbl = new DiscordBotListAPI.Builder().token(config.getdBotsListToken()).build(); + if (config.getTopGGToken() != null) dbl = new DiscordBotListAPI.Builder().token(config.getTopGGToken()).build(); // if (config.getWeebToken() != null) weebApi = new WeebApiBuilder(TokenType.WOLKETOKENS, "KekBot/" + version.toString()).setToken(config.getWeebToken()).build(); if (config.getWeebToken() != null) weebApi = new WeebApiBuilder(TokenType.WOLKETOKENS).setBotInfo("KekBot", version.toString(), "").setToken(config.getWeebToken()).build(); if (config.usingTwitter()) { @@ -228,8 +228,8 @@ private static void startBot(int mode) throws LoginException { else { System.out.println("Database could not be found, creating new one..."); // pick what db to make based on mode and if beta exists (yes im checking again because idk how else to do this) - r.dbCreate(mode == 1 && (boolean) r.dbList().contains(config.getBetaDatabase()).run(conn)? config.getBetaDatabase() : config.getDatabase()).run(conn); - conn.use(mode == 1? config.getBetaDatabase() : config.getDatabase()); + r.dbCreate(mode == 1 && (boolean) r.dbList().contains(config.getBetaDatabase()).run(conn) ? config.getBetaDatabase() : config.getDatabase()).run(conn); + conn.use(mode == 1 ? config.getBetaDatabase() : config.getDatabase()); // make tables because yes r.tableCreate("Profiles").optArg("primary_key", "User ID").run(conn); r.tableCreate("Responses").optArg("primary_key", "Action").run(conn); diff --git a/src/main/java/com/godson/kekbot/ShutdownListener.java b/src/main/java/com/godson/kekbot/ShutdownListener.java index 8be8d37..c9a84ea 100644 --- a/src/main/java/com/godson/kekbot/ShutdownListener.java +++ b/src/main/java/com/godson/kekbot/ShutdownListener.java @@ -5,6 +5,7 @@ import net.dv8tion.jda.api.events.ReadyEvent; import net.dv8tion.jda.api.events.ShutdownEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; +import org.jetbrains.annotations.NotNull; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -48,7 +49,7 @@ public void softReboot(MessageChannel channel, int shard) { } @Override - public void onReady(ReadyEvent event) { + public void onReady(@NotNull ReadyEvent event) { if (KekBot.jda.getShardsQueued() > 0 && rebootedShard == null) return; if (softReboot) softReboot = false; if (channelID != null) { @@ -59,7 +60,7 @@ public void onReady(ReadyEvent event) { } @Override - public void onShutdown(ShutdownEvent event) { + public void onShutdown(@NotNull ShutdownEvent event) { if (softReboot) return; System.exit(exitCode.getCode()); } diff --git a/src/main/java/com/godson/kekbot/Version.java b/src/main/java/com/godson/kekbot/Version.java index 94b5463..f6ec413 100644 --- a/src/main/java/com/godson/kekbot/Version.java +++ b/src/main/java/com/godson/kekbot/Version.java @@ -3,10 +3,10 @@ import com.godson.kekbot.util.Utils; public class Version { - private int majorVersion; - private int minorVersion; - private int patchVersion; - private int betaVersion; + private final int majorVersion; + private final int minorVersion; + private final int patchVersion; + private final int betaVersion; public Version(int majorVersion, int minorVersion, int patchVersion, int betaVersion) { this.majorVersion = majorVersion; diff --git a/src/main/java/com/godson/kekbot/command/Command.java b/src/main/java/com/godson/kekbot/command/Command.java index 5209d11..91f9240 100644 --- a/src/main/java/com/godson/kekbot/command/Command.java +++ b/src/main/java/com/godson/kekbot/command/Command.java @@ -2,15 +2,12 @@ import com.godson.kekbot.KekBot; import com.godson.kekbot.responses.Action; -import net.dv8tion.jda.api.MessageBuilder; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.VoiceChannel; import net.dv8tion.jda.internal.utils.PermissionUtil; import org.apache.commons.lang3.exception.ExceptionUtils; -import java.io.BufferedWriter; -import java.io.ByteArrayOutputStream; -import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.Objects; @@ -212,12 +209,8 @@ protected void throwException(Throwable t, CommandEvent event) { protected void throwException(Throwable t, CommandEvent event, String description) { String endl = System.getProperty("line.separator"); String s = KekBot.respond(Action.EXCEPTION_THROWN, event.getLocale()) + endl + endl + "Description: " + description + endl + "Command: " + this.name + endl + endl + ExceptionUtils.getStackTrace(t); - try { - byte[] b = s.getBytes("UTF-8"); - event.getChannel().sendFile(b, "traceback.txt").content("An error has occurred! This should be reported to the dev right away! Use the `" + event.getPrefix() + "ticket` command to do so, don't forget to show this file, too.").queue(); - } catch (UnsupportedEncodingException e1) { - e1.printStackTrace(); - } + byte[] b = s.getBytes(StandardCharsets.UTF_8); + event.getChannel().sendFile(b, "traceback.txt").content("An error has occurred! This should be reported to the dev right away! Use the `" + event.getPrefix() + "ticket` command to do so, don't forget to show this file, too.").queue(); } public String getExtendedDescription() { @@ -236,7 +229,7 @@ public ExtendedPosition getExDescriptionPosition() { public static class Category { private final String name; - private String failMessage; + private final String failMessage; private final Predicate predicate; public Category(String name) { @@ -290,13 +283,13 @@ protected enum CommandState { DM, GUILD, BOTH; - CommandState() {}; + CommandState() {} } protected enum CommandPermission { USER, MOD, ADMIN, OWNER; - CommandPermission() {}; + CommandPermission() {} } protected enum ExtendedPosition { diff --git a/src/main/java/com/godson/kekbot/command/CommandClient.java b/src/main/java/com/godson/kekbot/command/CommandClient.java index 47c7d7a..d4b97d8 100644 --- a/src/main/java/com/godson/kekbot/command/CommandClient.java +++ b/src/main/java/com/godson/kekbot/command/CommandClient.java @@ -75,7 +75,6 @@ public void setCustomPrefix(String guildID, String prefix) { } public void setCustomLocale(String guildID, String locale) { - if (customLocales.containsKey(guildID)) { if (locale.equals(customLocales.get(guildID))) return; @@ -153,15 +152,14 @@ public int getRemainingCooldown(String name) { return 0; } - public void applyCooldown(String name, int seconds) - { + public void applyCooldown(String name, int seconds) { cooldowns.put(name, OffsetDateTime.now().plusSeconds(seconds)); } public void cleanCooldowns() { OffsetDateTime now = OffsetDateTime.now(); cooldowns.keySet().stream().filter((str) -> (cooldowns.get(str).isBefore(now))) - .collect(Collectors.toList()).stream().forEach(str -> cooldowns.remove(str)); + .collect(Collectors.toList()).stream().forEach(cooldowns::remove); } public String getPrefix(String guildID) { @@ -234,10 +232,9 @@ public void onReady(ReadyEvent event) { } public void onMessageReceived(MessageReceivedEvent event) { - if(event.getAuthor().isBot()) - return; + if (event.getAuthor().isBot()) return; - String parts[] = null; + String[] parts = null; String rawContent = event.getMessage().getContentRaw().replace("@everyone", "@\u200Beveryone").replace("@here", "@\u200Bhere"); if (event.isFromType(ChannelType.TEXT)) { if (rawContent.startsWith(event.getGuild().getSelfMember().getAsMention()) || rawContent.startsWith("<@!" + event.getJDA().getSelfUser().getId() + ">")) @@ -266,7 +263,6 @@ public void onMessageReceived(MessageReceivedEvent event) { if (command != null) { CommandEvent cevent = new CommandEvent(event, args, this); command.run(cevent); - return; } } } @@ -274,7 +270,7 @@ public void onMessageReceived(MessageReceivedEvent event) { @Override public void onGuildJoin(GuildJoinEvent event) { - if(event.getGuild().getSelfMember().getTimeJoined().plusMinutes(10).isBefore(OffsetDateTime.now())) + if (event.getGuild().getSelfMember().getTimeJoined().plusMinutes(10).isBefore(OffsetDateTime.now())) return; if (!Config.getConfig().getBlockedUsers().containsKey(event.getGuild().getOwner().getUser().getId()) || (Config.getConfig().getBlockedUsers().containsKey(event.getGuild().getOwner().getUser().getId()) && Config.getConfig().getBlockedUsers().get(event.getGuild().getOwner().getUser().getId()) < 2)) { diff --git a/src/main/java/com/godson/kekbot/command/TextImageCommand.java b/src/main/java/com/godson/kekbot/command/TextImageCommand.java index cdc2ec1..9a6bb9b 100644 --- a/src/main/java/com/godson/kekbot/command/TextImageCommand.java +++ b/src/main/java/com/godson/kekbot/command/TextImageCommand.java @@ -3,7 +3,6 @@ import javax.imageio.ImageIO; import javax.net.ssl.SSLHandshakeException; import java.awt.image.BufferedImage; -import java.io.FileNotFoundException; import java.io.IOException; import java.net.*; diff --git a/src/main/java/com/godson/kekbot/command/commands/MarkovTest.java b/src/main/java/com/godson/kekbot/command/commands/MarkovTest.java index ba82537..8dfad39 100644 --- a/src/main/java/com/godson/kekbot/command/commands/MarkovTest.java +++ b/src/main/java/com/godson/kekbot/command/commands/MarkovTest.java @@ -3,9 +3,6 @@ import com.godson.kekbot.command.Command; import com.godson.kekbot.command.CommandEvent; import com.godson.kekbot.objects.MarkovChain; -import twitter4j.Twitter; -import twitter4j.TwitterException; -import twitter4j.TwitterFactory; public class MarkovTest extends Command { diff --git a/src/main/java/com/godson/kekbot/command/commands/admin/Purge.java b/src/main/java/com/godson/kekbot/command/commands/admin/Purge.java index cc9ed8a..10f0802 100644 --- a/src/main/java/com/godson/kekbot/command/commands/admin/Purge.java +++ b/src/main/java/com/godson/kekbot/command/commands/admin/Purge.java @@ -42,53 +42,51 @@ public void onExecuted(CommandEvent event) { } else if (purge > 100) { event.getTextChannel().sendMessage(KekBot.respond(Action.PURGE_TOOHIGH, event.getLocale())).queue(); } else { - event.getMessage().delete().queue(useless -> { - event.getTextChannel().getHistory().retrievePast(purge).queue(msgsRaw -> { - List msgs = msgsRaw.stream().filter(message -> !message.getTimeCreated().plusWeeks(2).isBefore(OffsetDateTime.now())).collect(Collectors.toList()); - event.getTextChannel().sendMessage(LocaleUtils.getString("command.admin.purge.purging", event.getLocale())).queue(msg -> { - if (msgs.size() > 0) { - if (event.getArgs().length >= 2) { - String keyphrase = event.combineArgs(1); - if (event.getMentionedUsers().size() == 0) { - List keywordPurge = msgs.stream().filter(mes -> mes.getContentRaw().toLowerCase().contains(keyphrase.toLowerCase())).collect(Collectors.toList()); - if (keywordPurge.size() > 1) - event.getTextChannel().deleteMessages(keywordPurge).queue(); - else if (keywordPurge.size() == 1) - keywordPurge.get(0).delete().queue(); - if (keywordPurge.size() >= 1) - msg.editMessage(KekBot.respond(Action.KEYPHRASE_PURGE_SUCCESS, event.getLocale(), "`" + keywordPurge.size() + "`", "`" + keyphrase + "`")).queue(); - else - msg.editMessage(KekBot.respond(Action.KEYPHRASE_PURGE_FAIL, event.getLocale())).queue(); + event.getMessage().delete().queue(useless -> event.getTextChannel().getHistory().retrievePast(purge).queue(msgsRaw -> { + List msgs = msgsRaw.stream().filter(message -> !message.getTimeCreated().plusWeeks(2).isBefore(OffsetDateTime.now())).collect(Collectors.toList()); + event.getTextChannel().sendMessage(LocaleUtils.getString("command.admin.purge.purging", event.getLocale())).queue(msg -> { + if (msgs.size() > 0) { + if (event.getArgs().length >= 2) { + String keyphrase = event.combineArgs(1); + if (event.getMentionedUsers().size() == 0) { + List keywordPurge = msgs.stream().filter(mes -> mes.getContentRaw().toLowerCase().contains(keyphrase.toLowerCase())).collect(Collectors.toList()); + if (keywordPurge.size() > 1) + event.getTextChannel().deleteMessages(keywordPurge).queue(); + else if (keywordPurge.size() == 1) + keywordPurge.get(0).delete().queue(); + if (keywordPurge.size() >= 1) + msg.editMessage(KekBot.respond(Action.KEYPHRASE_PURGE_SUCCESS, event.getLocale(), "`" + keywordPurge.size() + "`", "`" + keyphrase + "`")).queue(); + else + msg.editMessage(KekBot.respond(Action.KEYPHRASE_PURGE_FAIL, event.getLocale())).queue(); + } else { + List mentions = new ArrayList<>(); + event.getMentionedUsers().forEach(user -> mentions.add(user.getAsMention())); + Pattern p = Pattern.compile("([A-Z])+", Pattern.CASE_INSENSITIVE); + Matcher m = p.matcher(keyphrase); + if (mentions.stream().anyMatch(mentions::contains) && m.find()) { + msg.editMessage(LocaleUtils.getString("command.admin.purge.filtererror", event.getLocale())).queue(); } else { - List mentions = new ArrayList(); - event.getMentionedUsers().forEach(user -> mentions.add(user.getAsMention())); - Pattern p = Pattern.compile("([A-Z])+", Pattern.CASE_INSENSITIVE); - Matcher m = p.matcher(keyphrase); - if (mentions.stream().anyMatch(mentions::contains) && m.find()) { - msg.editMessage(LocaleUtils.getString("command.admin.purge.filtererror", event.getLocale())).queue(); - } else { - List mentionPurge = msgs.stream().filter(mes -> event.getMentionedUsers().stream().anyMatch(mes.getAuthor()::equals)).collect(Collectors.toList()); - if (mentionPurge.size() > 1) - event.getTextChannel().deleteMessages(mentionPurge).queue(); - else if (mentionPurge.size() == 1) - mentionPurge.get(0).delete().queue(); - if (mentionPurge.size() >= 1) - msg.editMessage(KekBot.respond(Action.MENTION_PURGE_SUCCESS, event.getLocale(), "`" + mentionPurge.size() + "`", "`" + StringUtils.join(event.getMentionedUsers().stream().map(user -> user.getName() + "#" + user.getDiscriminator()).collect(Collectors.toList()), ", ") + "`")).queue(); - else - msg.editMessage(KekBot.respond(Action.MENTION_PURGE_FAIL, event.getLocale())).queue(); - } + List mentionPurge = msgs.stream().filter(mes -> event.getMentionedUsers().stream().anyMatch(mes.getAuthor()::equals)).collect(Collectors.toList()); + if (mentionPurge.size() > 1) + event.getTextChannel().deleteMessages(mentionPurge).queue(); + else if (mentionPurge.size() == 1) + mentionPurge.get(0).delete().queue(); + if (mentionPurge.size() >= 1) + msg.editMessage(KekBot.respond(Action.MENTION_PURGE_SUCCESS, event.getLocale(), "`" + mentionPurge.size() + "`", "`" + StringUtils.join(event.getMentionedUsers().stream().map(user -> user.getName() + "#" + user.getDiscriminator()).collect(Collectors.toList()), ", ") + "`")).queue(); + else + msg.editMessage(KekBot.respond(Action.MENTION_PURGE_FAIL, event.getLocale())).queue(); } - } else { - if (msgs.size() == 1) - msgs.get(0).delete().queue(delet -> msg.editMessage(KekBot.respond(Action.PURGE_SUCCESS, event.getLocale(), "`" + msgs.size() + "`")).queue()); - else - event.getTextChannel().deleteMessages(msgs).queue(delet -> msg.editMessage(KekBot.respond(Action.PURGE_SUCCESS, event.getLocale(), "`" + msgs.size() + "`")).queue()); } - } else - msg.editMessage(LocaleUtils.getString("command.admin.purge.purgeerror", event.getLocale())).queue(); - }); + } else { + if (msgs.size() == 1) + msgs.get(0).delete().queue(delet -> msg.editMessage(KekBot.respond(Action.PURGE_SUCCESS, event.getLocale(), "`" + msgs.size() + "`")).queue()); + else + event.getTextChannel().deleteMessages(msgs).queue(delet -> msg.editMessage(KekBot.respond(Action.PURGE_SUCCESS, event.getLocale(), "`" + msgs.size() + "`")).queue()); + } + } else + msg.editMessage(LocaleUtils.getString("command.admin.purge.purgeerror", event.getLocale())).queue(); }); - }); + })); } } catch (NumberFormatException e) { event.getTextChannel().sendMessage(KekBot.respond(Action.NOT_A_NUMBER, event.getLocale(), "`" + event.getArgs()[0] + "`")).queue(); diff --git a/src/main/java/com/godson/kekbot/command/commands/admin/Role.java b/src/main/java/com/godson/kekbot/command/commands/admin/Role.java index 0f91783..d0b59b7 100644 --- a/src/main/java/com/godson/kekbot/command/commands/admin/Role.java +++ b/src/main/java/com/godson/kekbot/command/commands/admin/Role.java @@ -70,8 +70,8 @@ public void onExecuted(CommandEvent event) { } else { List users = event.getMentionedUsers(); net.dv8tion.jda.api.entities.Role role = event.getGuild().getRolesByName(args[0], true).get(0); - List success = new ArrayList(); - List exist = new ArrayList(); + List success = new ArrayList<>(); + List exist = new ArrayList<>(); for (User user : users) { Member member = event.getGuild().getMember(user); if (!member.getRoles().contains(role)) { @@ -135,8 +135,8 @@ public void onExecuted(CommandEvent event) { } else { List users = event.getMentionedUsers(); net.dv8tion.jda.api.entities.Role role = event.getGuild().getRolesByName(args[0], true).get(0); - List success = new ArrayList(); - List exist = new ArrayList(); + List success = new ArrayList<>(); + List exist = new ArrayList<>(); //Iterate through every user pinged. for (User user : users) { Member member = event.getGuild().getMember(user); diff --git a/src/main/java/com/godson/kekbot/command/commands/admin/SettingsCommand.java b/src/main/java/com/godson/kekbot/command/commands/admin/SettingsCommand.java index e353145..ba575f2 100644 --- a/src/main/java/com/godson/kekbot/command/commands/admin/SettingsCommand.java +++ b/src/main/java/com/godson/kekbot/command/commands/admin/SettingsCommand.java @@ -1,7 +1,6 @@ package com.godson.kekbot.command.commands.admin; import com.godson.kekbot.KekBot; -import com.godson.kekbot.settings.Config; import com.godson.kekbot.util.LocaleUtils; import com.godson.kekbot.TriConsumer; import com.godson.kekbot.util.Utils; @@ -22,7 +21,7 @@ public class SettingsCommand extends Command { - private Map settings = new HashMap<>(); + private final Map settings = new HashMap<>(); public SettingsCommand(boolean twitter) { name = "settings"; @@ -86,7 +85,7 @@ public SettingsCommand(boolean twitter) { return; } - String roles[] = role.split("\\u007c", 2); + String[] roles = role.split("\\u007c", 2); if (roles.length > 1) { int added = 0; diff --git a/src/main/java/com/godson/kekbot/command/commands/botowner/BlockUser.java b/src/main/java/com/godson/kekbot/command/commands/botowner/BlockUser.java index 33310cf..391ec7a 100644 --- a/src/main/java/com/godson/kekbot/command/commands/botowner/BlockUser.java +++ b/src/main/java/com/godson/kekbot/command/commands/botowner/BlockUser.java @@ -2,7 +2,6 @@ import com.godson.kekbot.KekBot; import com.godson.kekbot.command.Command; -import com.godson.kekbot.command.CommandCategories; import com.godson.kekbot.command.CommandEvent; import com.godson.kekbot.responses.Action; import com.godson.kekbot.settings.Config; @@ -18,14 +17,14 @@ public BlockUser() { @Override public void onExecuted(CommandEvent event) { - String args[] = event.getArgs(); + String[] args = event.getArgs(); Config config = Config.getConfig(); if (args.length > 0) { User user = KekBot.jda.getUserById(args[0]); if (user != null) { if (args.length > 1) { try { - int type = Integer.valueOf(args[1]); + int type = Integer.parseInt(args[1]); if (type == -1) { config.removeBlockedUser(args[0]); event.getClient().undisableUser(args[0]); diff --git a/src/main/java/com/godson/kekbot/command/commands/botowner/BotAdmin.java b/src/main/java/com/godson/kekbot/command/commands/botowner/BotAdmin.java index 4f8f13f..ce5ce90 100644 --- a/src/main/java/com/godson/kekbot/command/commands/botowner/BotAdmin.java +++ b/src/main/java/com/godson/kekbot/command/commands/botowner/BotAdmin.java @@ -2,14 +2,11 @@ import com.godson.kekbot.KekBot; import com.godson.kekbot.command.Command; -import com.godson.kekbot.command.CommandCategories; import com.godson.kekbot.command.CommandEvent; import com.godson.kekbot.settings.Config; import com.jagrosh.jdautilities.menu.Paginator; import net.dv8tion.jda.api.entities.User; -import java.util.stream.Collectors; - public class BotAdmin extends Command { public BotAdmin() { @@ -20,7 +17,7 @@ public BotAdmin() { @Override public void onExecuted(CommandEvent event) { - String args[] = event.getArgs(); + String[] args = event.getArgs(); Config config = Config.getConfig(); if (args.length > 0) { switch (args[0].toLowerCase()) { diff --git a/src/main/java/com/godson/kekbot/command/commands/botowner/BotMod.java b/src/main/java/com/godson/kekbot/command/commands/botowner/BotMod.java index a755f29..80dc3be 100644 --- a/src/main/java/com/godson/kekbot/command/commands/botowner/BotMod.java +++ b/src/main/java/com/godson/kekbot/command/commands/botowner/BotMod.java @@ -17,7 +17,7 @@ public BotMod() { @Override public void onExecuted(CommandEvent event) { - String args[] = event.getArgs(); + String[] args = event.getArgs(); Config config = Config.getConfig(); if (args.length > 0) { switch (args[0].toLowerCase()) { diff --git a/src/main/java/com/godson/kekbot/command/commands/botowner/Eval.java b/src/main/java/com/godson/kekbot/command/commands/botowner/Eval.java index cf34b7f..2ca2e8b 100644 --- a/src/main/java/com/godson/kekbot/command/commands/botowner/Eval.java +++ b/src/main/java/com/godson/kekbot/command/commands/botowner/Eval.java @@ -1,7 +1,6 @@ package com.godson.kekbot.command.commands.botowner; import com.godson.kekbot.command.Command; -import com.godson.kekbot.command.CommandCategories; import com.godson.kekbot.command.CommandEvent; import javax.script.ScriptEngine; @@ -38,7 +37,7 @@ public void onExecuted(CommandEvent event) { event.combineArgs() + "}" + "})();"); - event.getChannel().sendMessage(out == null ? "`Success! (Unless you're trying to find an object, then it failed...)`" : "`" + out.toString() + "`").queue(); + event.getChannel().sendMessage(out == null ? "`Success! (Unless you're trying to find an object, then it failed...)`" : "`" + out + "`").queue(); } catch (ScriptException e) { event.getChannel().sendMessage("```js\n" + e.getMessage() + "```").queue(); } catch (Exception e) { diff --git a/src/main/java/com/godson/kekbot/command/commands/botowner/GetInvite.java b/src/main/java/com/godson/kekbot/command/commands/botowner/GetInvite.java index eeb6197..78c85a8 100644 --- a/src/main/java/com/godson/kekbot/command/commands/botowner/GetInvite.java +++ b/src/main/java/com/godson/kekbot/command/commands/botowner/GetInvite.java @@ -2,7 +2,6 @@ import com.godson.kekbot.KekBot; import com.godson.kekbot.command.Command; -import com.godson.kekbot.command.CommandCategories; import com.godson.kekbot.command.CommandEvent; import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.TextChannel; @@ -26,7 +25,7 @@ public void onExecuted(CommandEvent event) { if (guild != null) { for (TextChannel channel : guild.getTextChannels()) { try { - channel.createInvite().setMaxUses(1).setMaxAge(10L, TimeUnit.MINUTES).queue(invite -> event.getTextChannel().sendMessage("http://discord.gg/" + invite.getCode()).queue()); + channel.createInvite().setMaxUses(1).setMaxAge(10L, TimeUnit.MINUTES).queue(invite -> event.getTextChannel().sendMessage("https://discord.gg/" + invite.getCode()).queue()); break; } catch (PermissionException e) { if (channel == guild.getTextChannels().get(guild.getTextChannels().size() - 1)) { diff --git a/src/main/java/com/godson/kekbot/command/commands/botowner/Patreon.java b/src/main/java/com/godson/kekbot/command/commands/botowner/Patreon.java index cb3b32f..607f565 100644 --- a/src/main/java/com/godson/kekbot/command/commands/botowner/Patreon.java +++ b/src/main/java/com/godson/kekbot/command/commands/botowner/Patreon.java @@ -1,7 +1,6 @@ package com.godson.kekbot.command.commands.botowner; import com.godson.kekbot.command.Command; -import com.godson.kekbot.command.CommandCategories; import com.godson.kekbot.command.CommandEvent; import com.godson.kekbot.settings.Config; diff --git a/src/main/java/com/godson/kekbot/command/commands/botowner/Shutdown.java b/src/main/java/com/godson/kekbot/command/commands/botowner/Shutdown.java index 5c79de1..1577f2e 100644 --- a/src/main/java/com/godson/kekbot/command/commands/botowner/Shutdown.java +++ b/src/main/java/com/godson/kekbot/command/commands/botowner/Shutdown.java @@ -3,7 +3,6 @@ import com.godson.kekbot.ExitCode; import com.godson.kekbot.KekBot; import com.godson.kekbot.command.Command; -import com.godson.kekbot.command.CommandCategories; import com.godson.kekbot.command.CommandEvent; public class Shutdown extends Command { diff --git a/src/main/java/com/godson/kekbot/command/commands/botowner/Tweet.java b/src/main/java/com/godson/kekbot/command/commands/botowner/Tweet.java index 6eb5d0b..ce7e9bd 100644 --- a/src/main/java/com/godson/kekbot/command/commands/botowner/Tweet.java +++ b/src/main/java/com/godson/kekbot/command/commands/botowner/Tweet.java @@ -3,17 +3,14 @@ import com.godson.kekbot.KekBot; import com.godson.kekbot.command.Command; import com.godson.kekbot.command.CommandEvent; -import com.godson.kekbot.questionaire.QuestionType; import com.godson.kekbot.questionaire.Questionnaire; import com.godson.kekbot.responses.Action; import net.dv8tion.jda.api.entities.Message; import twitter4j.StatusUpdate; import java.io.IOException; -import java.text.SimpleDateFormat; import java.time.*; import java.time.format.DateTimeFormatter; -import java.util.TimeZone; import java.util.concurrent.ExecutionException; public class Tweet extends Command { @@ -35,7 +32,7 @@ public void onExecuted(CommandEvent event) throws IOException, ExecutionExceptio //Converts 1st argument to integer. int toSkip; try { - toSkip = Integer.valueOf(event.getArgs()[0]); + toSkip = Integer.parseInt(event.getArgs()[0]); } catch (NumberFormatException e) { event.getChannel().sendMessage(KekBot.respond(Action.NOT_A_NUMBER, event.getLocale(), "`" + event.getArgs()[0] + "`")).queue(); return; diff --git a/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/AddGame.java b/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/AddGame.java index 28132ad..df8eab0 100644 --- a/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/AddGame.java +++ b/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/AddGame.java @@ -1,7 +1,6 @@ package com.godson.kekbot.command.commands.botowner.botadmin; import com.godson.kekbot.command.Command; -import com.godson.kekbot.command.CommandCategories; import com.godson.kekbot.command.CommandEvent; import com.godson.kekbot.settings.Config; import net.dv8tion.jda.api.entities.TextChannel; diff --git a/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/Responses.java b/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/Responses.java index 59d6022..822984d 100644 --- a/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/Responses.java +++ b/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/Responses.java @@ -37,7 +37,7 @@ public void onExecuted(CommandEvent event) { } String response = event.combineArgs(2); try { - List numberSlots = new ArrayList(); + List numberSlots = new ArrayList<>(); for (int i = 0; i < Action.valueOf(args[1]).getBlanksNeeded(); i++) { numberSlots.add("{" + (i + 1) + "}"); } @@ -67,7 +67,7 @@ public void onExecuted(CommandEvent event) { return; } try { - int toRemove = Integer.valueOf(args[2]) - 1; + int toRemove = Integer.parseInt(args[2]) - 1; Action action = Action.valueOf(args[1]); if (toRemove > KekBot.getResponses(action).size()) { event.getChannel().sendMessage("Number provided is larger than the current length of responses for that action.").queue(); diff --git a/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/Takeover.java b/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/Takeover.java index 4a6cb9e..bf9f656 100644 --- a/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/Takeover.java +++ b/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/Takeover.java @@ -197,7 +197,7 @@ public void onExecuted(CommandEvent event) { Questionnaire.newQuestionnaire(results1) .addQuestion("Enter a response for " + action.name() + ".", QuestionType.STRING) .execute(results2 -> { - List numberSlots = new ArrayList(); + List numberSlots = new ArrayList<>(); String response = results2.getAnswerAsType(0, String.class); for (int i = 0; i < finalAction.getBlanksNeeded(); i++) { numberSlots.add("{" + (i + 1) + "}"); @@ -417,7 +417,7 @@ private void setTakeoverResponses(CommandEvent event, TakeoverManager.Takeover t Questionnaire.newQuestionnaire(event) .addQuestion("Now, for responses. Let's start with a response for " + action[0], QuestionType.STRING) .execute(results -> { - List numberSlots = new ArrayList(); + List numberSlots = new ArrayList<>(); String response = results.getAnswerAsType(0, String.class); for (int i = 0; i < action[0].getBlanksNeeded(); i++) { numberSlots.add("{" + (i + 1) + "}"); diff --git a/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/Update.java b/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/Update.java index ca74c76..a023cb8 100644 --- a/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/Update.java +++ b/src/main/java/com/godson/kekbot/command/commands/botowner/botadmin/Update.java @@ -20,11 +20,11 @@ public void onExecuted(CommandEvent event) { Version latest = Utils.getLatestVersion(KekBot.version.getBetaVersion() > 0); if (!latest.isHigherThan(KekBot.version) && !event.getMessage().getContentRaw().contains("--forced")) { - event.getChannel().sendMessage("KekBot is currently running the latest version. (" + KekBot.version.toString() + ")").queue(); + event.getChannel().sendMessage("KekBot is currently running the latest version. (" + KekBot.version + ")").queue(); return; } - event.getChannel().sendMessage("Update found! (Current: " + KekBot.version.toString() + " | Latest: " + latest.toString() + ") Updating...").queue(); + event.getChannel().sendMessage("Update found! (Current: " + KekBot.version + " | Latest: " + latest + ") Updating...").queue(); KekBot.update(); } } diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/Avatar.java b/src/main/java/com/godson/kekbot/command/commands/fun/Avatar.java index c282979..03739f9 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/Avatar.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/Avatar.java @@ -26,10 +26,16 @@ public void onExecuted(CommandEvent event) { if (isMention(event.combineArgs())) { event.getChannel().sendMessage(event.getMentionedUsers().get(0).getAvatarUrl() + size).queue(); } else { - List search = event.getGuild().getMembersByName(event.combineArgs(), true); - if (search.size() == 0) search = event.getGuild().getMembersByNickname(event.combineArgs(), true); - if (search.size() > 0) event.getChannel().sendMessage(search.get(0).getUser().getAvatarUrl() + size).queue(); - else event.getChannel().sendMessage(event.getString("command.fun.avatar.nouser")).queue(); + try { + Member search = event.getGuild().getMemberById(Long.parseLong(event.combineArgs())); + if (search != null) event.getChannel().sendMessage(search.getUser().getAvatarUrl() + size).queue(); + else throw new NumberFormatException(); + } catch (NumberFormatException e) { + List search = event.getGuild().getMembersByName(event.combineArgs(), true); + if (search.size() == 0) search = event.getGuild().getMembersByEffectiveName(event.combineArgs(), true); + if (search.size() > 0) event.getChannel().sendMessage(search.get(0).getUser().getAvatarUrl() + size).queue(); + else event.getChannel().sendMessage(event.getString("command.fun.avatar.nouser")).queue(); + } } } else { event.getChannel().sendMessage(event.getMessage().getAuthor().getAvatarUrl() + size).queue(); diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/Daily.java b/src/main/java/com/godson/kekbot/command/commands/fun/Daily.java index ba0c1dc..7e7b661 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/Daily.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/Daily.java @@ -17,7 +17,7 @@ public class Daily extends Command { - private Random random = new Random(); + private final Random random = new Random(); public Daily() { name = "daily"; @@ -36,7 +36,7 @@ public void onExecuted(CommandEvent event) { //Temporarily outdated, will remake the daily bonus feature in a later update. /*if (Config.getConfig().getdBotsListToken() != null) { try { - Document document = Jsoup.connect("https://discordbots.org/api/bots/213151748855037953/check?userId=" + event.getAuthor().getId()) + Document document = Jsoup.connect("https://top.gg/api/bots/213151748855037953/check?userId=" + event.getAuthor().getId()) .userAgent("Mozilla/5.0").ignoreContentType(true) .header("Authorization", Config.getConfig().getdBotsListToken()) .get(); @@ -48,7 +48,7 @@ public void onExecuted(CommandEvent event) { claimDaily(true, profile, event); } else { Questionnaire.newQuestionnaire(event) - .addYesNoQuestion(event.getString("command.fun.daily.notvoted", "https://discordbots.org/bot/213151748855037953")) + .addYesNoQuestion(event.getString("command.fun.daily.notvoted", "https://top.gg/bot/213151748855037953")) .execute(results -> { if (!results.getAnswerAsType(0, boolean.class)) { event.getChannel().sendMessage(event.getString("command.fun.daily.vote")).queue(); diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/FullWidth.java b/src/main/java/com/godson/kekbot/command/commands/fun/FullWidth.java index f270298..7d2e3f2 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/FullWidth.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/FullWidth.java @@ -5,12 +5,12 @@ import org.apache.commons.lang3.StringUtils; public class FullWidth extends Command { - private String[] toReplace = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", + private final String[] toReplace = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "=", "\\", "]", "[", "{", "}", "/", ",", ".", "!", "?", "@", "#", "$", "%", "^", "&", "*", "(", ")", "~", "`", "\"", "'", " "}; - private String[] replacements = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", + private final String[] replacements = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "=", "\", diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/GameCommand.java b/src/main/java/com/godson/kekbot/command/commands/fun/GameCommand.java index 52bf044..d1bfac0 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/GameCommand.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/GameCommand.java @@ -162,7 +162,7 @@ public void onExecuted(CommandEvent event) { if (event.getArgs().length >= 2) { double bet; try { - bet = Double.valueOf(event.getArgs()[1]); + bet = Double.parseDouble(event.getArgs()[1]); } catch (NumberFormatException e) { channel.sendMessage(KekBot.respond(Action.NOT_A_NUMBER, event.getLocale(), event.getArgs()[1])).queue(); return; @@ -175,7 +175,7 @@ public void onExecuted(CommandEvent event) { if (event.getArgs().length >= 3) { double bet; try { - bet = Double.valueOf(event.getArgs()[2]); + bet = Double.parseDouble(event.getArgs()[2]); } catch (NumberFormatException e) { channel.sendMessage(KekBot.respond(Action.NOT_A_NUMBER, event.getLocale(), event.getArgs()[2])).queue(); return; diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/LotteryCommand.java b/src/main/java/com/godson/kekbot/command/commands/fun/LotteryCommand.java index b68bbf2..c474b4c 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/LotteryCommand.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/LotteryCommand.java @@ -28,7 +28,7 @@ public void onExecuted(CommandEvent event) { if (event.getArgs().length > 1) { int tickets; try { - tickets = Integer.valueOf(event.getArgs()[1]); + tickets = Integer.parseInt(event.getArgs()[1]); } catch (NumberFormatException e) { event.getChannel().sendMessage(KekBot.respond(Action.NOT_A_NUMBER, event.getLocale(), "`" + event.getArgs()[1] + "`")).queue(); return; diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/Music.java b/src/main/java/com/godson/kekbot/command/commands/fun/Music.java index eaf7442..fa3bdba 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/Music.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/Music.java @@ -12,11 +12,8 @@ import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Message; -import java.util.Arrays; import java.util.List; import java.util.Optional; -import java.util.function.Function; -import java.util.stream.Stream; public class Music extends Command { @@ -139,7 +136,7 @@ public void onExecuted(CommandEvent event) { } try { - int volume = Integer.valueOf(args[1]); + int volume = Integer.parseInt(args[1]); KekBot.player.setVolume(event, volume); } catch (NumberFormatException e) { event.getChannel().sendMessage(KekBot.respond(Action.NOT_A_NUMBER, event.getLocale(), args[1])).queue(); @@ -157,7 +154,7 @@ public void onExecuted(CommandEvent event) { return; } try { - int toSkip = Integer.valueOf(args[1]); + int toSkip = Integer.parseInt(args[1]); KekBot.player.skipTrack(event, toSkip); } catch (NumberFormatException e) { KekBot.player.skipTrack(event); @@ -175,7 +172,7 @@ public void onExecuted(CommandEvent event) { return; } try { - int skipTo = Integer.valueOf(args[1]); + int skipTo = Integer.parseInt(args[1]); KekBot.player.skipToTrack(event, skipTo); } catch (NumberFormatException e) { event.getChannel().sendMessage(KekBot.respond(Action.NOT_A_NUMBER, event.getLocale(), "`" + args[1] + "`")).queue(); @@ -198,7 +195,7 @@ public void onExecuted(CommandEvent event) { return; } try { - int toRemove = Integer.valueOf(args[1]) - 1; + int toRemove = Integer.parseInt(args[1]) - 1; KekBot.player.removeTrack(event, toRemove); } catch (NumberFormatException e) { event.getChannel().sendMessage(KekBot.respond(Action.NOT_A_NUMBER, event.getLocale(), "`" + args[1] + "`")).queue(); diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/MyPlaylist.java b/src/main/java/com/godson/kekbot/command/commands/fun/MyPlaylist.java index 47e3b47..71bbda4 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/MyPlaylist.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/MyPlaylist.java @@ -90,19 +90,16 @@ public void onExecuted(CommandEvent event) throws Throwable { .addQuestion(event.getString("command.fun.myplaylist.modify.intro", "*view*"), QuestionType.STRING) .includeCancel(false) .execute(results1 -> { - switch (results1.getAnswer(0).toString()) { - case "view": - listPlaylists(results1, 1, profile); - break; - default: - Optional potentialPlaylist = profile.getPlaylists().stream().filter(playlist1 -> playlist1.getName().equalsIgnoreCase(results1.getAnswer(0).toString())).findFirst(); - if (potentialPlaylist.isPresent()) { - Playlist playlist = potentialPlaylist.get(); - confirmDelete(results1, playlist, profile); - } else { - event.getChannel().sendMessage(event.getString("command.fun.myplaylist.invalidplaylist")).queue(); - } - break; + if ("view".equals(results1.getAnswer(0).toString())) { + listPlaylists(results1, 1, profile); + } else { + Optional potentialPlaylist = profile.getPlaylists().stream().filter(playlist1 -> playlist1.getName().equalsIgnoreCase(results1.getAnswer(0).toString())).findFirst(); + if (potentialPlaylist.isPresent()) { + Playlist playlist = potentialPlaylist.get(); + confirmDelete(results1, playlist, profile); + } else { + event.getChannel().sendMessage(event.getString("command.fun.myplaylist.invalidplaylist")).queue(); + } } }); } @@ -114,19 +111,16 @@ public void onExecuted(CommandEvent event) throws Throwable { Questionnaire.newQuestionnaire(results) .addQuestion(event.getString("command.fun.myplaylist.modify.intro", "*view*"), QuestionType.STRING) .execute(results1 -> { - switch (results1.getAnswer(0).toString()) { - case "view": - listPlaylists(results1, 2, profile); - break; - default: - Optional potentialPlaylist = profile.getPlaylists().stream().filter(playlist1 -> playlist1.getName().equalsIgnoreCase(results1.getAnswer(0).toString())).findFirst(); - if (potentialPlaylist.isPresent()) { - Playlist playlist = potentialPlaylist.get(); - editPlaylist(results1, playlist, profile); - } else { - event.getChannel().sendMessage(event.getString("command.fun.myplaylist.invalidplaylist")).queue(); - } - break; + if ("view".equals(results1.getAnswer(0).toString())) { + listPlaylists(results1, 2, profile); + } else { + Optional potentialPlaylist = profile.getPlaylists().stream().filter(playlist1 -> playlist1.getName().equalsIgnoreCase(results1.getAnswer(0).toString())).findFirst(); + if (potentialPlaylist.isPresent()) { + Playlist playlist = potentialPlaylist.get(); + editPlaylist(results1, playlist, profile); + } else { + event.getChannel().sendMessage(event.getString("command.fun.myplaylist.invalidplaylist")).queue(); + } } }); } diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/Pay.java b/src/main/java/com/godson/kekbot/command/commands/fun/Pay.java index b3165c2..c936e0b 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/Pay.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/Pay.java @@ -28,7 +28,7 @@ public void onExecuted(CommandEvent event) { if (event.getArgs().length > 1) { double toPay; try { - BigDecimal bd = new BigDecimal(Double.valueOf(event.getArgs()[1])); + BigDecimal bd = new BigDecimal(Double.parseDouble(event.getArgs()[1])); bd = bd.setScale(2, RoundingMode.HALF_UP); toPay = bd.doubleValue(); } catch (NumberFormatException e) { diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/ProfileCommand.java b/src/main/java/com/godson/kekbot/command/commands/fun/ProfileCommand.java index d190e31..5557f8f 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/ProfileCommand.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/ProfileCommand.java @@ -168,7 +168,7 @@ public void onExecuted(CommandEvent event) { case "topkeks": if (event.getArgs().length >= 4) { try { - double toGive = Double.valueOf(event.getArgs()[3]); + double toGive = Double.parseDouble(event.getArgs()[3]); if (event.getArgs().length >= 5) { User user = KekBot.jda.getUserById(event.getArgs()[4]); @@ -191,7 +191,7 @@ public void onExecuted(CommandEvent event) { case "KXP": if (event.getArgs().length >= 4) { try { - int toGive = Integer.valueOf(event.getArgs()[3]); + int toGive = Integer.parseInt(event.getArgs()[3]); if (event.getArgs().length >= 5) { User user = KekBot.jda.getUserById(event.getArgs()[4]); @@ -272,7 +272,7 @@ public void onExecuted(CommandEvent event) { case "topkeks": if (event.getArgs().length >= 4) { try { - double toTake = Double.valueOf(event.getArgs()[3]); + double toTake = Double.parseDouble(event.getArgs()[3]); if (event.getArgs().length >= 5) { User user = KekBot.jda.getUserById(event.getArgs()[4]); @@ -296,7 +296,7 @@ public void onExecuted(CommandEvent event) { case "KXP": if (event.getArgs().length >= 4) { try { - int toTake = Integer.valueOf(event.getArgs()[3]); + int toTake = Integer.parseInt(event.getArgs()[3]); if (event.getArgs().length >= 5) { User user = KekBot.jda.getUserById(event.getArgs()[4]); @@ -379,7 +379,7 @@ public void onExecuted(CommandEvent event) { case "topkeks": if (event.getArgs().length >= 4) { try { - double toSet = Double.valueOf(event.getArgs()[3]); + double toSet = Double.parseDouble(event.getArgs()[3]); if (event.getArgs().length >= 5) { User user = KekBot.jda.getUserById(event.getArgs()[4]); @@ -402,7 +402,7 @@ public void onExecuted(CommandEvent event) { case "KXP": if (event.getArgs().length >= 4) { try { - int toSet = Integer.valueOf(event.getArgs()[3]); + int toSet = Integer.parseInt(event.getArgs()[3]); if (event.getArgs().length >= 5) { User user = KekBot.jda.getUserById(event.getArgs()[4]); diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/Quote.java b/src/main/java/com/godson/kekbot/command/commands/fun/Quote.java index 5a5ad94..db40bab 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/Quote.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/Quote.java @@ -75,7 +75,7 @@ public void onExecuted(CommandEvent event) { if (event.getMember().hasPermission(Permission.MESSAGE_MANAGE)) { if (event.getArgs().length > 1) { try { - int quoteNumber = Integer.valueOf(event.getArgs()[1]); + int quoteNumber = Integer.parseInt(event.getArgs()[1]); if (settings.getQuotes().getList().size() >= quoteNumber) { String quote = settings.getQuotes().getQuote(quoteNumber - 1); settings.getQuotes().removeQuote(quoteNumber - 1); @@ -117,7 +117,7 @@ public void onExecuted(CommandEvent event) { default: int toGet; try { - toGet = Integer.valueOf(event.getArgs()[0]) - 1; + toGet = Integer.parseInt(event.getArgs()[0]) - 1; if (settings.getQuotes().getList().size() > toGet && toGet >= 0) { String quote = settings.getQuotes().getQuote(toGet); while (quote.length() > 2000) { diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/RIP.java b/src/main/java/com/godson/kekbot/command/commands/fun/RIP.java index 2f1468f..b65e481 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/RIP.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/RIP.java @@ -17,7 +17,7 @@ public RIP() { @Override public void onExecuted(CommandEvent event) { if (event.getArgs().length > 0) { - event.getChannel().sendMessage("http://ripme.xyz/#" + event.combineArgs().replace(" ", "%20")).queue(); + event.getChannel().sendMessage("https://ripme.xyz/#" + event.combineArgs().replace(" ", "%20")).queue(); } else event.getChannel().sendMessage("Wait, so who is kill?").queue(); } } diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/Roll.java b/src/main/java/com/godson/kekbot/command/commands/fun/Roll.java index 4bc7e50..b68892e 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/Roll.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/Roll.java @@ -31,7 +31,7 @@ public void onExecuted(CommandEvent event) { event.getChannel().sendMessage(Utils.emojify(String.valueOf(defaultDie))).queue(); } else { try { - specifiedDie = random.nextInt(Integer.valueOf(event.getArgs()[0])); + specifiedDie = random.nextInt(Integer.parseInt(event.getArgs()[0])); event.getChannel().sendMessage(Utils.emojify(String.valueOf(specifiedDie))).queue(); } catch (NumberFormatException e) { event.getChannel().sendMessage(KekBot.respond(Action.NOT_A_NUMBER, event.getLocale(), "`" + event.getArgs()[0] + "`")).queue(); diff --git a/src/main/java/com/godson/kekbot/command/commands/fun/ShopCommand.java b/src/main/java/com/godson/kekbot/command/commands/fun/ShopCommand.java index 37237fd..79df817 100644 --- a/src/main/java/com/godson/kekbot/command/commands/fun/ShopCommand.java +++ b/src/main/java/com/godson/kekbot/command/commands/fun/ShopCommand.java @@ -21,8 +21,6 @@ import org.apache.commons.math3.util.Precision; import java.io.IOException; -import java.math.BigDecimal; -import java.math.RoundingMode; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -222,35 +220,34 @@ public void onExecuted(CommandEvent event) throws Throwable { discoinBuilder.setItemsPerPage(10); discoinBuilder.setText("Welcome to the Discoin Association's currency converter! You can convert your topkeks to another bot's currency, and vice versa!\n\nSelect the currency you wish to convert to."); discoinBuilder.addUsers(event.getAuthor()); - discoinBuilder.setSelectionAction((me, currency) -> { - Questionnaire.newQuestionnaire(event) - .addQuestion("How many topkeks do you want to convert?", QuestionType.DOUBLE) - .includeCancel(true) - .execute(results -> { - double amount = results.getAnswerAsType(0, double.class); - Profile profile = Profile.getProfile(event.getAuthor()); - if (!profile.canSpend(amount)) { - event.getChannel().sendMessage("You don't have that many topkeks.\n\nTransaction Canceled.").queue(); - return; - } - try { - Discoin4J.Transaction transaction = KekBot.discoin.makeTransaction(event.getAuthor().getId(), amount, currencies.stream().filter(c -> !c.getId().equals("KEK")).sorted(Comparator.comparing(Discoin4J.Currency::getId)).collect(Collectors.toList()).get(currency - 1).getId()); - profile.spendTopKeks(amount); - profile.save(); - EmbedBuilder embedBuilder = new EmbedBuilder(); - embedBuilder.setDescription("Done! You should be receiving `" + transaction.getPayout() + "` in the currency you selected shortly." + - "\n[You can check your receipt by clicking on me!](" + url + "transactions/" + transaction.getId() + ")"); - event.getChannel().sendMessageEmbeds(embedBuilder.build()).queue(); - } catch (IOException e) { - e.printStackTrace(); - } catch (UnauthorizedException e) { - event.getChannel().sendMessage(unauthorized).queue(); - } catch (GenericErrorException e) { - event.getChannel().sendMessage("Yikes! I've found an error that shouldn't exist! Report this to the bot owner with the `ticket` command right away! `" + e.getMessage() + "`").queue(); - throwException(e, event); - } - }); - }); + discoinBuilder.setSelectionAction((me, currency) -> + Questionnaire.newQuestionnaire(event) + .addQuestion("How many topkeks do you want to convert?", QuestionType.DOUBLE) + .includeCancel(true) + .execute(results -> { + double amount = results.getAnswerAsType(0, double.class); + Profile profile = Profile.getProfile(event.getAuthor()); + if (!profile.canSpend(amount)) { + event.getChannel().sendMessage("You don't have that many topkeks.\n\nTransaction Canceled.").queue(); + return; + } + try { + Discoin4J.Transaction transaction = KekBot.discoin.makeTransaction(event.getAuthor().getId(), amount, currencies.stream().filter(c -> !c.getId().equals("KEK")).sorted(Comparator.comparing(Discoin4J.Currency::getId)).collect(Collectors.toList()).get(currency - 1).getId()); + profile.spendTopKeks(amount); + profile.save(); + EmbedBuilder embedBuilder = new EmbedBuilder(); + embedBuilder.setDescription("Done! You should be receiving `" + transaction.getPayout() + "` in the currency you selected shortly." + + "\n[You can check your receipt by clicking on me!](" + url + "transactions/" + transaction.getId() + ")"); + event.getChannel().sendMessageEmbeds(embedBuilder.build()).queue(); + } catch (IOException e) { + e.printStackTrace(); + } catch (UnauthorizedException e) { + event.getChannel().sendMessage(unauthorized).queue(); + } catch (GenericErrorException e) { + event.getChannel().sendMessage("Yikes! I've found an error that shouldn't exist! Report this to the bot owner with the `ticket` command right away! `" + e.getMessage() + "`").queue(); + throwException(e, event); + } + })); discoinBuilder.build().display(event.getChannel()); } catch (IOException e) { throwException(e, event); diff --git a/src/main/java/com/godson/kekbot/command/commands/general/Changelog.java b/src/main/java/com/godson/kekbot/command/commands/general/Changelog.java index 0d3b959..f485d72 100644 --- a/src/main/java/com/godson/kekbot/command/commands/general/Changelog.java +++ b/src/main/java/com/godson/kekbot/command/commands/general/Changelog.java @@ -6,7 +6,6 @@ public class Changelog extends Command { - public Changelog() { name = "changelog"; description = "Shows you the changelogs for this version of KekBot."; diff --git a/src/main/java/com/godson/kekbot/command/commands/general/GoogleSearch.java b/src/main/java/com/godson/kekbot/command/commands/general/GoogleSearch.java index cb6a2ba..aba018a 100644 --- a/src/main/java/com/godson/kekbot/command/commands/general/GoogleSearch.java +++ b/src/main/java/com/godson/kekbot/command/commands/general/GoogleSearch.java @@ -15,7 +15,7 @@ public GoogleSearch() { @Override public void onExecuted(CommandEvent event) { if (event.getArgs().length > 0) { - event.getChannel().sendMessage("http://google.com/#q=" + event.combineArgs().replace(" ", "+")).queue(); + event.getChannel().sendMessage("https://google.com/#q=" + event.combineArgs().replace(" ", "+")).queue(); } else event.getChannel().sendMessage(event.getString("command.general.google.noargs")).queue(); } } diff --git a/src/main/java/com/godson/kekbot/command/commands/general/Help.java b/src/main/java/com/godson/kekbot/command/commands/general/Help.java index 0079e71..c46737c 100644 --- a/src/main/java/com/godson/kekbot/command/commands/general/Help.java +++ b/src/main/java/com/godson/kekbot/command/commands/general/Help.java @@ -11,7 +11,6 @@ import java.util.*; import java.util.regex.Matcher; -import java.util.regex.Pattern; import java.util.stream.Collectors; public class Help extends Command { @@ -120,7 +119,7 @@ private String getCommandHelpPlain(CommandEvent event, Command command) { builder.append("\n\n--\n\n") .append("Pro Tip: Enable \"Embed Links\" for me, so I can send cleaner styled messages for commands like this one!\n\n") .append("--\n\n") - .append("KekBot v" + KekBot.version).append("\n") + .append("KekBot v").append(KekBot.version).append("\n") .append("```"); return builder.toString(); } diff --git a/src/main/java/com/godson/kekbot/command/commands/general/LMGTFY.java b/src/main/java/com/godson/kekbot/command/commands/general/LMGTFY.java index 9dd2368..82b846f 100644 --- a/src/main/java/com/godson/kekbot/command/commands/general/LMGTFY.java +++ b/src/main/java/com/godson/kekbot/command/commands/general/LMGTFY.java @@ -16,7 +16,7 @@ public LMGTFY() { @Override public void onExecuted(CommandEvent event) { if (event.getArgs().length > 0) { - event.getChannel().sendMessage("http://lmgtfy.com/?q=" + event.combineArgs().replace(" ", "+")).queue(); + event.getChannel().sendMessage("https://lmgtfy.com/?q=" + event.combineArgs().replace(" ", "+")).queue(); } else event.getChannel().sendMessage(event.getString("command.general.google.noargs")).queue(); } } diff --git a/src/main/java/com/godson/kekbot/command/commands/general/Ping.java b/src/main/java/com/godson/kekbot/command/commands/general/Ping.java index e1ceb64..4d45a6f 100644 --- a/src/main/java/com/godson/kekbot/command/commands/general/Ping.java +++ b/src/main/java/com/godson/kekbot/command/commands/general/Ping.java @@ -1,15 +1,9 @@ package com.godson.kekbot.command.commands.general; -import com.godson.kekbot.KekBot; import com.godson.kekbot.command.Command; import com.godson.kekbot.command.CommandEvent; -import java.time.Clock; -import java.time.OffsetDateTime; -import java.time.ZoneId; import java.time.temporal.ChronoUnit; -import java.time.temporal.TemporalField; -import java.util.TimeZone; public class Ping extends Command { diff --git a/src/main/java/com/godson/kekbot/command/commands/general/Poll.java b/src/main/java/com/godson/kekbot/command/commands/general/Poll.java index 6e14b6d..64cecf4 100644 --- a/src/main/java/com/godson/kekbot/command/commands/general/Poll.java +++ b/src/main/java/com/godson/kekbot/command/commands/general/Poll.java @@ -34,11 +34,11 @@ public void onExecuted(CommandEvent event) { if (!manager.guildHasPoll(event.getGuild())) { if (event.getArgs().length > 0) { String combinedArgs = event.combineArgs(); - String timeSplit[] = combinedArgs.split("\\u007c", 2); + String[] timeSplit = combinedArgs.split("\\u007c", 2); if (timeSplit.length == 1) { event.getChannel().sendMessage(event.getString("command.general.poll.notime")).queue(); } else { - String pollVariables[] = timeSplit[1].split("\\u007c"); + String[] pollVariables = timeSplit[1].split("\\u007c"); long time = 0; String timeStr = Utils.removeWhitespaceEdges(pollVariables[0]); String[] split = timeStr.split(":"); @@ -72,7 +72,7 @@ public void onExecuted(CommandEvent event) { if (!formattedOption.equals("")) list.add(formattedOption); } } - String options[] = list.toArray(EMPTY_STRING_ARRAY); + String[] options = list.toArray(EMPTY_STRING_ARRAY); if (options.length != 1) { PollManager.Poll poll = manager.createPoll(event, time, Utils.removeWhitespaceEdges(combinedArgs.substring(0, combinedArgs.indexOf("|"))), options); StringBuilder builder = new StringBuilder(); @@ -80,7 +80,7 @@ public void onExecuted(CommandEvent event) { builder.append(i + 1).append(". ").append("**").append(poll.getOptions()[i]).append("**").append("\n"); } event.getChannel().sendMessage(event.getString("command.general.poll.start", event.getAuthor().getName(), event.getClient().getPrefix(event.getGuild().getId()) + "vote !") + "\n\n" + - "__**" + poll.getTitle() + "**__\n\n" + builder.toString()).queue(); + "__**" + poll.getTitle() + "**__\n\n" + builder).queue(); } else { event.getChannel().sendMessage(event.getString("command.general.poll.oneoption")).queue(); } @@ -96,7 +96,7 @@ public void onExecuted(CommandEvent event) { builder.append(i+1).append(".").append("**").append(poll.getOptions()[i]).append("**").append("\n"); } event.getChannel().sendMessage( event.getString("command.general.poll.currentpoll", poll.getCreator().getName() + "#" + poll.getCreator().getDiscriminator()) + "\n\n" + - poll.getTitle() + "\n" + builder.toString()).queue(); + poll.getTitle() + "\n" + builder).queue(); } else { switch (event.getArgs()[0]) { case "stop": @@ -134,12 +134,12 @@ public void onExecuted(CommandEvent event) { if (event.getArgs().length == 0) return; PollManager.Poll poll = manager.getGuildsPoll(event.getGuild()); try { - poll.castVote(Integer.valueOf(event.getArgs()[0]) - 1, event.getAuthor()); + poll.castVote(Integer.parseInt(event.getArgs()[0]) - 1, event.getAuthor()); event.getMessage().addReaction("\u2705").queue(); } catch (NumberFormatException e) { event.getChannel().sendMessage(KekBot.respond(Action.NOT_A_NUMBER, event.getLocale(), "`" + event.getArgs()[0] + "`")).queue(); } catch (IllegalArgumentException e) { - event.getChannel().sendMessage(event.getString("command.general.poll.vote.samevote", event.getAuthor().getAsMention(), "`" + poll.getOptions()[Integer.valueOf(event.getArgs()[0]) - 1] + "`")).queue(); + event.getChannel().sendMessage(event.getString("command.general.poll.vote.samevote", event.getAuthor().getAsMention(), "`" + poll.getOptions()[Integer.parseInt(event.getArgs()[0]) - 1] + "`")).queue(); } catch (ArrayIndexOutOfBoundsException e) { event.getChannel().sendMessage(event.getString("command.general.poll.vote.invalidoption")).queue(); } diff --git a/src/main/java/com/godson/kekbot/command/commands/general/Strawpoll.java b/src/main/java/com/godson/kekbot/command/commands/general/Strawpoll.java index b1f5c62..13bffb4 100644 --- a/src/main/java/com/godson/kekbot/command/commands/general/Strawpoll.java +++ b/src/main/java/com/godson/kekbot/command/commands/general/Strawpoll.java @@ -30,7 +30,7 @@ public Strawpoll() { public void onExecuted(CommandEvent event) { if (event.getArgs().length > 0) { String combinedArgs = event.combineArgs(); - String pollVariables[] = combinedArgs.split("\\u007c"); + String[] pollVariables = combinedArgs.split("\\u007c"); if (pollVariables.length == 1) { event.getChannel().sendMessage(event.getString("command.general.poll.nooptions")).queue(); } else { @@ -42,7 +42,7 @@ public void onExecuted(CommandEvent event) { list.add(option); } } - String options[] = list.toArray(EMPTY_STRING_ARRAY); + String[] options = list.toArray(EMPTY_STRING_ARRAY); SPoll poll = new SPoll(pollVariables[0]).withOptions(options).isMulti(false); Gson gson = new GsonBuilder().setPrettyPrinting().create(); String json = gson.toJson(poll); diff --git a/src/main/java/com/godson/kekbot/command/commands/general/Support.java b/src/main/java/com/godson/kekbot/command/commands/general/Support.java index 0b7c1bc..7cc5d48 100644 --- a/src/main/java/com/godson/kekbot/command/commands/general/Support.java +++ b/src/main/java/com/godson/kekbot/command/commands/general/Support.java @@ -14,7 +14,7 @@ public Support() { cooldownScope = CooldownScope.USER_GUILD; } - private String invite = "https://discord.gg/3nbqavE"; + private final String invite = "https://discord.gg/3nbqavE"; @Override public void onExecuted(CommandEvent event) { diff --git a/src/main/java/com/godson/kekbot/command/commands/general/TicketCommand.java b/src/main/java/com/godson/kekbot/command/commands/general/TicketCommand.java index 798513a..55db73c 100644 --- a/src/main/java/com/godson/kekbot/command/commands/general/TicketCommand.java +++ b/src/main/java/com/godson/kekbot/command/commands/general/TicketCommand.java @@ -177,7 +177,7 @@ public void onExecuted(CommandEvent event) { break; default: String t = event.combineArgs(); - String ticketInfo[] = t.split("\\u007C", 2); + String[] ticketInfo = t.split("\\u007C", 2); ticketInfo[0] = Utils.removeWhitespaceEdges(ticketInfo[0]); if (ticketInfo.length == 1) { event.getChannel().sendMessage("Contents of your ticket must be seperated with the vertical line ( **|** ). `Example: \"Title|Contents\"`").queue(); diff --git a/src/main/java/com/godson/kekbot/command/commands/meme/DSXSays.java b/src/main/java/com/godson/kekbot/command/commands/meme/DSXSays.java index 6d54292..92d3881 100644 --- a/src/main/java/com/godson/kekbot/command/commands/meme/DSXSays.java +++ b/src/main/java/com/godson/kekbot/command/commands/meme/DSXSays.java @@ -2,20 +2,14 @@ import com.godson.kekbot.command.Command; import com.godson.kekbot.command.CommandEvent; -import com.godson.kekbot.command.TextImageCommand; import com.godson.kekbot.util.ImageUtils; -import com.godson.kekbot.util.Utils; import javax.imageio.ImageIO; -import javax.net.ssl.SSLHandshakeException; import java.awt.*; -import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.FileNotFoundException; import java.io.IOException; -import java.net.*; //Requested by a few friends I met in the sm4sh modding scene public class DSXSays extends Command { @@ -24,8 +18,6 @@ public DSXSays() { name = "dsxsays"; description = "Makes DSX say a thing. Who's DSX? Who knows?"; usage.add("dsxsays "); - - } @Override diff --git a/src/main/java/com/godson/kekbot/command/commands/meme/Doggo.java b/src/main/java/com/godson/kekbot/command/commands/meme/Doggo.java index d039feb..835182d 100644 --- a/src/main/java/com/godson/kekbot/command/commands/meme/Doggo.java +++ b/src/main/java/com/godson/kekbot/command/commands/meme/Doggo.java @@ -1,7 +1,6 @@ package com.godson.kekbot.command.commands.meme; import com.godson.kekbot.command.CommandCategories; -import com.godson.kekbot.command.ImageCommand; import com.godson.kekbot.command.TextImageCommand; import com.godson.kekbot.util.ImageUtils; diff --git a/src/main/java/com/godson/kekbot/command/commands/meme/Gabe.java b/src/main/java/com/godson/kekbot/command/commands/meme/Gabe.java index deeb17c..fbe4f6f 100644 --- a/src/main/java/com/godson/kekbot/command/commands/meme/Gabe.java +++ b/src/main/java/com/godson/kekbot/command/commands/meme/Gabe.java @@ -26,7 +26,7 @@ public Gabe() { public void onExecuted(CommandEvent event) throws Throwable { boolean reboot = (Arrays.stream(event.getArgs()).anyMatch(s -> s.equalsIgnoreCase("--reboot"))); - File gabes[] = Arrays.stream(new File(reboot ? "resources/sound/gabe/reboot" : "resources/sound/gabe").listFiles()).filter(file -> !file.isDirectory()).toArray(File[]::new); + File[] gabes = Arrays.stream(new File(reboot ? "resources/sound/gabe/reboot" : "resources/sound/gabe").listFiles()).filter(file -> !file.isDirectory()).toArray(File[]::new); Random random = new Random(); int index = random.nextInt(gabes.length); Optional voiceChannel = event.getGuild().getVoiceChannels().stream().filter(c -> c.getMembers().contains(event.getMember())).findFirst(); diff --git a/src/main/java/com/godson/kekbot/command/commands/meme/Granddad.java b/src/main/java/com/godson/kekbot/command/commands/meme/Granddad.java index 0ae9bf3..389ff74 100644 --- a/src/main/java/com/godson/kekbot/command/commands/meme/Granddad.java +++ b/src/main/java/com/godson/kekbot/command/commands/meme/Granddad.java @@ -25,7 +25,7 @@ public Granddad() { public void onExecuted(CommandEvent event) { boolean reboot = (Arrays.stream(event.getArgs()).anyMatch(s -> s.equalsIgnoreCase("--reboot"))); - File granddads[] = Arrays.stream(new File(reboot ? "resources/sound/granddad/reboot" : "resources/sound/granddad").listFiles()).filter(file -> !file.isDirectory()).toArray(File[]::new); + File[] granddads = Arrays.stream(new File(reboot ? "resources/sound/granddad/reboot" : "resources/sound/granddad").listFiles()).filter(file -> !file.isDirectory()).toArray(File[]::new); Random random = new Random(); int index = random.nextInt(granddads.length); Optional voiceChannel = event.getEvent().getGuild().getVoiceChannels().stream().filter(c -> c.getMembers().contains(event.getEvent().getMember())).findFirst(); diff --git a/src/main/java/com/godson/kekbot/command/commands/meme/Gru.java b/src/main/java/com/godson/kekbot/command/commands/meme/Gru.java index c7b52bb..f6faf3b 100644 --- a/src/main/java/com/godson/kekbot/command/commands/meme/Gru.java +++ b/src/main/java/com/godson/kekbot/command/commands/meme/Gru.java @@ -220,8 +220,8 @@ private byte[] generate(String string, boolean hyper, boolean egg) throws IOExce //WOO CENTERING THE TEXT VERTICALLY LIKE A BITCH! Rectangle2D r2D = graphics.getFont().getStringBounds(split[0], graphics.getFontRenderContext()); - int rWidth = (int) Math.round(270); - int rHeight = (int) Math.round(totalY); + int rWidth = Math.round(270); + int rHeight = Math.round(totalY); int rX = (int) Math.round(r2D.getX()); int rY = (int) Math.round(r2D.getY()); int a = (270 / 2) - (rWidth / 2) - rX; diff --git a/src/main/java/com/godson/kekbot/command/commands/meme/Jontron.java b/src/main/java/com/godson/kekbot/command/commands/meme/Jontron.java index b7966bf..c29d523 100644 --- a/src/main/java/com/godson/kekbot/command/commands/meme/Jontron.java +++ b/src/main/java/com/godson/kekbot/command/commands/meme/Jontron.java @@ -25,7 +25,7 @@ public Jontron() { public void onExecuted(CommandEvent event) { boolean reboot = (Arrays.stream(event.getArgs()).anyMatch(s -> s.equalsIgnoreCase("--reboot"))); - File jontrons[] = Arrays.stream(new File(reboot ? "resources/sound/jontron/reboot" : "resources/sound/jontron").listFiles()).filter(file -> !file.isDirectory()).toArray(File[]::new); + File[] jontrons = Arrays.stream(new File(reboot ? "resources/sound/jontron/reboot" : "resources/sound/jontron").listFiles()).filter(file -> !file.isDirectory()).toArray(File[]::new); Random random = new Random(); int index = random.nextInt(jontrons.length); Optional voiceChannel = event.getEvent().getGuild().getVoiceChannels().stream().filter(c -> c.getMembers().contains(event.getEvent().getMember())).findFirst(); diff --git a/src/main/java/com/godson/kekbot/command/commands/meme/JustRight.java b/src/main/java/com/godson/kekbot/command/commands/meme/JustRight.java index 4c7de41..80537af 100644 --- a/src/main/java/com/godson/kekbot/command/commands/meme/JustRight.java +++ b/src/main/java/com/godson/kekbot/command/commands/meme/JustRight.java @@ -20,7 +20,7 @@ public JustRight() { @Override public void onExecuted(CommandEvent event) { - File justRights[] = new File("resources/justright").listFiles(); + File[] justRights = new File("resources/justright").listFiles(); Random random = new Random(); int index = random.nextInt(justRights.length); event.getChannel().sendTyping().queue(); diff --git a/src/main/java/com/godson/kekbot/command/commands/meme/Kaede.java b/src/main/java/com/godson/kekbot/command/commands/meme/Kaede.java index 73ed17d..d272b13 100644 --- a/src/main/java/com/godson/kekbot/command/commands/meme/Kaede.java +++ b/src/main/java/com/godson/kekbot/command/commands/meme/Kaede.java @@ -1,7 +1,6 @@ package com.godson.kekbot.command.commands.meme; import com.godson.kekbot.util.ImageUtils; -import com.godson.kekbot.util.Utils; import com.godson.kekbot.command.*; import javax.imageio.ImageIO; @@ -11,12 +10,10 @@ import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.FileNotFoundException; import java.io.IOException; import java.net.*; import java.util.Arrays; - public class Kaede extends Command { public Kaede() { @@ -31,9 +28,7 @@ public Kaede() { @Override public void onExecuted(CommandEvent event) throws Throwable { String filename = "kaededab"; - boolean reboot = false; - - if (event.combineArgs().contains("--reboot")) reboot = true; + boolean reboot = event.combineArgs().contains("--reboot"); String[] args = event.getArgs(); @@ -68,15 +63,9 @@ public void onExecuted(CommandEvent event) throws Throwable { } event.getChannel().sendFile(generate(check, reboot), filename + ".png").queue(); - } catch (MalformedURLException | UnknownHostException | IllegalArgumentException | FileNotFoundException e) { - try { - event.getChannel().sendFile(generate(event.combineArgs().replace("--reboot", ""), reboot), filename + ".png").queue(); - } catch (IllegalArgumentException e1) { - event.getChannel().sendMessage(event.getString("command.textimage.texttoolong")).queue(); - } } catch (SSLHandshakeException | SocketException e) { event.getChannel().sendMessage(event.getString("command.textimage.unabletoconnect")).queue(); - } catch (IOException e) { + } catch (IllegalArgumentException | IOException e) { try { event.getChannel().sendFile(generate(event.combineArgs().replace("--reboot", ""), reboot), filename + ".png").queue(); } catch (IllegalArgumentException e1) { diff --git a/src/main/java/com/godson/kekbot/command/commands/meme/Kirb.java b/src/main/java/com/godson/kekbot/command/commands/meme/Kirb.java index 062f09e..a466635 100644 --- a/src/main/java/com/godson/kekbot/command/commands/meme/Kirb.java +++ b/src/main/java/com/godson/kekbot/command/commands/meme/Kirb.java @@ -21,7 +21,7 @@ public Kirb() { @Override public void onExecuted(CommandEvent event) { - File kirbs[] = new File("resources/kirb").listFiles(); + File[] kirbs = new File("resources/kirb").listFiles(); Random random = new Random(); int index = random.nextInt(kirbs.length); event.getChannel().sendTyping().queue(); diff --git a/src/main/java/com/godson/kekbot/command/commands/meme/Lean.java b/src/main/java/com/godson/kekbot/command/commands/meme/Lean.java index 150def2..341e246 100644 --- a/src/main/java/com/godson/kekbot/command/commands/meme/Lean.java +++ b/src/main/java/com/godson/kekbot/command/commands/meme/Lean.java @@ -18,7 +18,7 @@ public Lean() { @Override public void onExecuted(CommandEvent event) { - File leans[] = new File("resources/lean").listFiles(); + File[] leans = new File("resources/lean").listFiles(); Random random = new Random(); int index = random.nextInt(leans.length); event.getChannel().sendTyping().queue(); diff --git a/src/main/java/com/godson/kekbot/command/commands/meme/NotAllowed.java b/src/main/java/com/godson/kekbot/command/commands/meme/NotAllowed.java index 19dad69..eefa792 100644 --- a/src/main/java/com/godson/kekbot/command/commands/meme/NotAllowed.java +++ b/src/main/java/com/godson/kekbot/command/commands/meme/NotAllowed.java @@ -3,13 +3,11 @@ import com.godson.kekbot.command.Command; import com.godson.kekbot.command.CommandCategories; import com.godson.kekbot.command.CommandEvent; -import com.godson.kekbot.command.ImageCommand; import com.godson.kekbot.util.Utils; import net.dv8tion.jda.api.entities.User; import javax.imageio.ImageIO; import java.awt.*; -import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; diff --git a/src/main/java/com/godson/kekbot/command/commands/meme/YouTried.java b/src/main/java/com/godson/kekbot/command/commands/meme/YouTried.java index 6c75e19..4638fbd 100644 --- a/src/main/java/com/godson/kekbot/command/commands/meme/YouTried.java +++ b/src/main/java/com/godson/kekbot/command/commands/meme/YouTried.java @@ -20,7 +20,7 @@ public YouTried() { @Override public void onExecuted(CommandEvent event) { - File stars[] = new File("resources/youtried").listFiles(); + File[] stars = new File("resources/youtried").listFiles(); Random random = new Random(); int index = random.nextInt(stars.length); event.getChannel().sendTyping().queue(); diff --git a/src/main/java/com/godson/kekbot/games/BetManager.java b/src/main/java/com/godson/kekbot/games/BetManager.java index 7c41027..3ec59d3 100644 --- a/src/main/java/com/godson/kekbot/games/BetManager.java +++ b/src/main/java/com/godson/kekbot/games/BetManager.java @@ -12,12 +12,12 @@ import java.util.Map; public class BetManager { - private Map> spectators = new HashMap<>(); - private Map players = new HashMap<>(); + private final Map> spectators = new HashMap<>(); + private final Map players = new HashMap<>(); private final double spectatorMultiplier = 1.35; private double playerPot; - private boolean spectatorsEnabled; - private boolean playersEnabled; + private final boolean spectatorsEnabled; + private final boolean playersEnabled; public BetManager(boolean playersEnabled, boolean spectatorsEnabled) { this.playersEnabled = playersEnabled; diff --git a/src/main/java/com/godson/kekbot/games/Game.java b/src/main/java/com/godson/kekbot/games/Game.java index 226c242..0b16019 100644 --- a/src/main/java/com/godson/kekbot/games/Game.java +++ b/src/main/java/com/godson/kekbot/games/Game.java @@ -15,20 +15,20 @@ import java.util.Map; public abstract class Game { - private String gameName; + private final String gameName; private int minNumberOfPlayers = 0; - private int maxNumberOfPlayers; - private boolean hasAI; + private final int maxNumberOfPlayers; + private final boolean hasAI; private boolean isReady = false; private boolean reachedMinimum = false; boolean isTranslatable = true; boolean canQuit = true; private boolean betsEnabled; public List players = new ArrayList<>(); - private List winnerIDs = new ArrayList<>(); - private Map playerNumber = new HashMap<>(); + private final List winnerIDs = new ArrayList<>(); + private final Map playerNumber = new HashMap<>(); public TextChannel channel; - private BetManager bets; + private final BetManager bets; //This'll only be used in games that require the multiplier. See Snail Race and Russian Roulette as good examples. double multiplier = 1; @@ -138,7 +138,7 @@ public void endGame(User winner, double topkeks, int KXP) { builder.append(stateEarnings(winner, topkeks * multiplier, KXP, (bets.hasPlayerBets() ? new Bonus(betEarnings, "Won Bet") : null), (multiplier > 1 ? new Bonus(Precision.round(topkeks * (multiplier - 1), 2), multiplier + "x Multiplier") : null))).append("\n"); } profile.save(); - } else { + //} else { //Do nothing for now. This will be changed later. //profile.lostGame(); //profile.save(); @@ -161,7 +161,7 @@ public void endGame(List winners, double baseTopkeks, int baseKXP) { for (User player : players) { //Get player's profile. if (winners.contains(player)) break; - else ; //lose++ + //else ; //lose++ } for (int i = 0; i < winners.size(); i++) { Profile profile = Profile.getProfile(winners.get(i)); diff --git a/src/main/java/com/godson/kekbot/games/GameRegistry.java b/src/main/java/com/godson/kekbot/games/GameRegistry.java index 5626e56..6a88ae8 100644 --- a/src/main/java/com/godson/kekbot/games/GameRegistry.java +++ b/src/main/java/com/godson/kekbot/games/GameRegistry.java @@ -5,7 +5,7 @@ import java.util.*; public class GameRegistry { - private Map registeredGames = new HashMap<>(); + private final Map registeredGames = new HashMap<>(); /** * Ghetto way of getting game objects. @@ -24,11 +24,11 @@ public GameRegistry() { * @param aliases The name/aliases for the game. */ private void registerGame(int id, String... aliases) { - for (int i = 0; i < aliases.length; i++) { - if (registeredGames.containsKey(aliases[i])) { + for (String alias : aliases) { + if (registeredGames.containsKey(alias)) { throw new IllegalArgumentException("There is already a game registered with this name/alias."); } - registeredGames.put(aliases[i], id); + registeredGames.put(alias, id); } } diff --git a/src/main/java/com/godson/kekbot/games/GamesManager.java b/src/main/java/com/godson/kekbot/games/GamesManager.java index 24362a1..5cc84f0 100644 --- a/src/main/java/com/godson/kekbot/games/GamesManager.java +++ b/src/main/java/com/godson/kekbot/games/GamesManager.java @@ -14,8 +14,8 @@ import java.util.stream.Collectors; public class GamesManager extends ListenerAdapter { - private Map activeGames = new HashMap<>(); - private GameRegistry gameRegistry = new GameRegistry(); + private final Map activeGames = new HashMap<>(); + private final GameRegistry gameRegistry = new GameRegistry(); public Game getGame(TextChannel channel) { return activeGames.get(Long.valueOf(channel.getId())); @@ -107,11 +107,7 @@ public void shutdown() { } public void shutdown(String reason) { - Iterator> itr = activeGames.entrySet().iterator(); - - while(itr.hasNext()) - { - Map.Entry entry = itr.next(); + for (Map.Entry entry : activeGames.entrySet()) { entry.getValue().getBets().declareTie(); entry.getValue().channel.sendMessage("This game was ended due to KekBot shutting down with the reason: `" + reason + "` (Don't worry, any bets made were all returned.)").queue(); } diff --git a/src/main/java/com/godson/kekbot/games/Hangman.java b/src/main/java/com/godson/kekbot/games/Hangman.java index a8cdd31..dcc4b53 100644 --- a/src/main/java/com/godson/kekbot/games/Hangman.java +++ b/src/main/java/com/godson/kekbot/games/Hangman.java @@ -1,6 +1,5 @@ package com.godson.kekbot.games; -import net.dv8tion.jda.api.MessageBuilder; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.entities.User; @@ -21,18 +20,18 @@ import java.util.regex.Pattern; public class Hangman extends Game { - private List words = new ArrayList<>(); - private List guessedLetters = new ArrayList<>(); - private List eliminatedPlayers = new ArrayList<>(); - private Map playerPoints = new HashMap<>(); + private final List words = new ArrayList<>(); + private final List guessedLetters = new ArrayList<>(); + private final List eliminatedPlayers = new ArrayList<>(); + private final Map playerPoints = new HashMap<>(); private String word; private char[] letters; private char[] board; private int penalty = 0; private int turn; - private Random random = new Random(); + private final Random random = new Random(); - private Font font = new Font("Calibri", Font.BOLD, 63); + private final Font font = new Font("Calibri", Font.BOLD, 63); public Hangman(TextChannel channel) { diff --git a/src/main/java/com/godson/kekbot/games/RussianRoulette.java b/src/main/java/com/godson/kekbot/games/RussianRoulette.java index 9c6ae65..26051e3 100644 --- a/src/main/java/com/godson/kekbot/games/RussianRoulette.java +++ b/src/main/java/com/godson/kekbot/games/RussianRoulette.java @@ -17,10 +17,10 @@ public class RussianRoulette extends Game { - private List alive = new ArrayList<>(); - private List bullets = new ArrayList<>(); - private Random random = new Random(); - private ScheduledExecutorService timer = new ScheduledThreadPoolExecutor(1); + private final List alive = new ArrayList<>(); + private final List bullets = new ArrayList<>(); + private final Random random = new Random(); + private final ScheduledExecutorService timer = new ScheduledThreadPoolExecutor(1); private int round = 0; private int noDeaths = 0; @@ -98,18 +98,12 @@ private void prepareRound() { if (round % players.size() == 0) Precision.round(multiplier += (players.size() > 5 ? .4 : .2), 2); //Let's list our remaining players, and start the round. channel.sendMessage("Round " + round + "!\nPlayers remaining:\n\n" + StringUtils.join(alive.stream().map(User::getAsMention).collect(Collectors.toList()), ", ") + "\n\nRound starting in 5 seconds...") - .queue(s -> { - timer.schedule(this::startRound, 5, TimeUnit.SECONDS); - }); + .queue(s -> timer.schedule(this::startRound, 5, TimeUnit.SECONDS)); } private void startRound() { channel.sendMessage((noDeaths > 0 ? "We've gone " + noDeaths + (noDeaths > 1 ? " rounds" : " round") + " without a death.\n\n" : "") + starts[random.nextInt(starts.length)] + (multiplier > 1 ? " **" + getString("game.multiplier", multiplier) + "**" : "") - + "\n\n" + getPrepMessage(0)).queue(m -> { - timer.schedule(() -> { - shoot(0, m); - }, 3, TimeUnit.SECONDS); - }); + + "\n\n" + getPrepMessage(0)).queue(m -> timer.schedule(() -> shoot(0, m), 3, TimeUnit.SECONDS)); } private String getPrepMessage(int player) { @@ -124,9 +118,8 @@ private void shoot(int player, Message message) { timer.schedule(this::prepareRound, 5, TimeUnit.SECONDS); }); } else { - message.editMessage(message.getContentRaw() + " *click.* " + misfires[random.nextInt(misfires.length)]).queue(m -> { - timer.schedule(() -> nextShot(player, m), 3, TimeUnit.SECONDS); - }); + message.editMessage(message.getContentRaw() + " *click.* " + misfires[random.nextInt(misfires.length)]) + .queue(m -> timer.schedule(() -> nextShot(player, m), 3, TimeUnit.SECONDS)); } @@ -142,11 +135,7 @@ private void nextShot(int player, Message message) { } loadGun(); - message.editMessage(message.getContentRaw() + "\n" + getPrepMessage(nextPlayer)).queue(m -> { - timer.schedule(() -> { - shoot(nextPlayer, m); - }, 3, TimeUnit.SECONDS); - }); + message.editMessage(message.getContentRaw() + "\n" + getPrepMessage(nextPlayer)).queue(m -> timer.schedule(() -> shoot(nextPlayer, m), 3, TimeUnit.SECONDS)); } private void loadGun() { diff --git a/src/main/java/com/godson/kekbot/games/SnailRace.java b/src/main/java/com/godson/kekbot/games/SnailRace.java index f145928..01029ff 100644 --- a/src/main/java/com/godson/kekbot/games/SnailRace.java +++ b/src/main/java/com/godson/kekbot/games/SnailRace.java @@ -1,7 +1,6 @@ package com.godson.kekbot.games; import com.godson.kekbot.CustomEmote; -import com.godson.kekbot.util.LocaleUtils; import com.godson.kekbot.util.Utils; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.TextChannel; @@ -14,13 +13,13 @@ public class SnailRace extends Game { private Message race; private int[] snails; - private int[] movements = {-1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3}; + private final int[] movements = {-1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3}; private int[] move; - private Timer timer = new Timer(); - private Random random = new Random(); + private final Timer timer = new Timer(); + private final Random random = new Random(); private long startTime; private boolean finished = false; - private List winners = new ArrayList<>(); + private final List winners = new ArrayList<>(); private final String snail = "\uD83D\uDC0C"; private final String flag = "\uD83C\uDFF4"; @@ -59,7 +58,7 @@ public void run() { private String positionSnail(int pos, int placement) { String line = "------------------------------------------------------------"; - return line.substring(0, pos) + snail + line.substring(pos, line.length()) + (placement == 0 ? flag : CustomEmote.getTrophy(placement - 1)); + return line.substring(0, pos) + snail + line.substring(pos) + (placement == 0 ? flag : CustomEmote.getTrophy(placement - 1)); } private int getPlacement(User player) { diff --git a/src/main/java/com/godson/kekbot/games/TicTacToe.java b/src/main/java/com/godson/kekbot/games/TicTacToe.java index abbe8d9..9a2b469 100644 --- a/src/main/java/com/godson/kekbot/games/TicTacToe.java +++ b/src/main/java/com/godson/kekbot/games/TicTacToe.java @@ -22,21 +22,21 @@ import java.util.concurrent.ThreadLocalRandom; public class TicTacToe extends Game { - private int[] board = {0, 0, 0, 0, 0, 0, 0, 0, 0}; + private final int[] board = {0, 0, 0, 0, 0, 0, 0, 0, 0}; private int turn; - private Random random = new Random(); + private final Random random = new Random(); //AI STUFF - private HashMap secondarySlots = new HashMap<>(); - private HashMap> tertiarySlots = new HashMap<>(); - private int[] primarySlots = { + private final HashMap secondarySlots = new HashMap<>(); + private final HashMap> tertiarySlots = new HashMap<>(); + private final int[] primarySlots = { 0, /* skipping 1 */ 2, /* skipping 3*/ 4, /* skipping 5 */ 6, /* skipping 7 */ 8 }; //Board Drawing Stuff - private BufferedImage[] tokens = new BufferedImage[3]; + private final BufferedImage[] tokens = new BufferedImage[3]; private BufferedImage player1; private BufferedImage player2; @@ -102,7 +102,7 @@ public void startGame() { public void acceptInputFromMessage(Message message) { String contents = message.getContentRaw(); try { - int slot = Integer.valueOf(contents); + int slot = Integer.parseInt(contents); fillSlot(slot-1, message.getAuthor()); } catch (NumberFormatException e) { //do nothing. diff --git a/src/main/java/com/godson/kekbot/games/Trivia.java b/src/main/java/com/godson/kekbot/games/Trivia.java index a18d998..e2d8d3a 100644 --- a/src/main/java/com/godson/kekbot/games/Trivia.java +++ b/src/main/java/com/godson/kekbot/games/Trivia.java @@ -13,18 +13,18 @@ public class Trivia extends Game { - private Map> questions = new HashMap<>(); - private Map playerPoints = new HashMap<>(); - private Random random = new Random(); + private final Map> questions = new HashMap<>(); + private final Map playerPoints = new HashMap<>(); + private final Random random = new Random(); private boolean roundActive = false; private int round = 0; - private int maxRounds = 15; - private int roundDuration = 10; + private final int maxRounds = 15; + private final int roundDuration = 10; private TriviaQuestion currentQuestion; - private List previousQuestions = new ArrayList<>(); + private final List previousQuestions = new ArrayList<>(); - private ScheduledExecutorService timer = Executors.newSingleThreadScheduledExecutor(); + private final ScheduledExecutorService timer = Executors.newSingleThreadScheduledExecutor(); private ScheduledFuture scheduledFuture = null; public Trivia(TextChannel channel) { @@ -105,7 +105,7 @@ private void endRound(String result) { .append(":` ").append(playerPoints.get(player)); builder.append("\n"); } - channel.sendMessage(result + "\n\nGame over! Here are the results:\n\n" + builder.toString()).queue(); + channel.sendMessage(result + "\n\nGame over! Here are the results:\n\n" + builder).queue(); endGame(winners.get(0), playerPoints.get(winners.get(0)), playerPoints.get(winners.get(0)) / 2); return; } diff --git a/src/main/java/com/godson/kekbot/menu/PagedSelectionMenu.java b/src/main/java/com/godson/kekbot/menu/PagedSelectionMenu.java index a09a5ea..c28f05d 100644 --- a/src/main/java/com/godson/kekbot/menu/PagedSelectionMenu.java +++ b/src/main/java/com/godson/kekbot/menu/PagedSelectionMenu.java @@ -2,7 +2,6 @@ import com.jagrosh.jdautilities.commons.waiter.EventWaiter; import com.jagrosh.jdautilities.menu.Menu; -import com.jagrosh.jdautilities.menu.Paginator; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.MessageBuilder; import net.dv8tion.jda.api.entities.Message; @@ -97,7 +96,7 @@ private Message renderPage(int pageNum) { StringBuilder sbuilder = new StringBuilder(); for(k = start; k < end; ++k) { - sbuilder.append("\n").append("`" + (k + 1) + ".` ").append(this.choices.get(k)); + sbuilder.append("\n").append("`").append(k + 1).append(".` ").append(this.choices.get(k)); } ebuilder.setDescription(sbuilder.toString()); @@ -186,9 +185,7 @@ private void initializeSelection(Message msg, int pageNum) { } private void waitReaction(Message m, int pageNum) { - this.waiter.waitForEvent(MessageReactionAddEvent.class, (e) -> { - return this.isValidReaction(m, e, pageNum); - }, (e) -> { + this.waiter.waitForEvent(MessageReactionAddEvent.class, (e) -> this.isValidReaction(m, e, pageNum), (e) -> { if (e.getReaction().getReactionEmote().getName().equals(SELECTION_CANCEL)) { this.finalAction.accept(m); m.clearReactions().queue(); @@ -197,9 +194,7 @@ private void waitReaction(Message m, int pageNum) { selectionAction.accept(m, this.getNumber(e.getReaction().getReactionEmote().getName()) + (itemsPerPage * (pageNum - 1))); } - }, this.timeout, this.unit, () -> { - this.finalAction.accept(m); - }); + }, this.timeout, this.unit, () -> this.finalAction.accept(m)); } private boolean isValidReaction(Message m, MessageReactionAddEvent e, int pageNum) { diff --git a/src/main/java/com/godson/kekbot/menu/ShopMenu.java b/src/main/java/com/godson/kekbot/menu/ShopMenu.java index 4057367..5ac98b9 100644 --- a/src/main/java/com/godson/kekbot/menu/ShopMenu.java +++ b/src/main/java/com/godson/kekbot/menu/ShopMenu.java @@ -11,7 +11,6 @@ import net.dv8tion.jda.api.requests.RestAction; import net.dv8tion.jda.internal.utils.Checks; -import java.util.Arrays; import java.util.LinkedList; import java.util.List; import java.util.Set; @@ -149,9 +148,7 @@ private void initializeSelection(Message msg, int pageNum) { } private void waitReaction(Message m, int pageNum) { - this.waiter.waitForEvent(MessageReactionAddEvent.class, (e) -> { - return this.isValidReaction(m, e, pageNum); - }, (e) -> { + this.waiter.waitForEvent(MessageReactionAddEvent.class, (e) -> this.isValidReaction(m, e, pageNum), (e) -> { if (e.getReaction().getReactionEmote().getName().equals(SELECTION_CANCEL)) { m.clearReactions().queue(); } else { @@ -159,9 +156,7 @@ private void waitReaction(Message m, int pageNum) { m.delete().queue(); } - }, this.timeout, this.unit, () -> { - this.finalAction.accept(m); - }); + }, this.timeout, this.unit, () -> this.finalAction.accept(m)); } private boolean isValidReaction(Message m, MessageReactionAddEvent e, int pageNum) { diff --git a/src/main/java/com/godson/kekbot/music/ErrorScheduler.java b/src/main/java/com/godson/kekbot/music/ErrorScheduler.java index d379d27..d616ca8 100644 --- a/src/main/java/com/godson/kekbot/music/ErrorScheduler.java +++ b/src/main/java/com/godson/kekbot/music/ErrorScheduler.java @@ -7,8 +7,6 @@ import com.sedmelluq.discord.lavaplayer.track.AudioTrackEndReason; import net.dv8tion.jda.api.entities.Guild; -import java.util.concurrent.*; - public class ErrorScheduler extends AudioEventAdapter { private final AudioPlayer player; private final Guild guild; diff --git a/src/main/java/com/godson/kekbot/music/GuildMusicManager.java b/src/main/java/com/godson/kekbot/music/GuildMusicManager.java index acc0aff..0e5959e 100644 --- a/src/main/java/com/godson/kekbot/music/GuildMusicManager.java +++ b/src/main/java/com/godson/kekbot/music/GuildMusicManager.java @@ -1,6 +1,5 @@ package com.godson.kekbot.music; -import com.godson.kekbot.KekBot; import com.godson.kekbot.command.CommandEvent; import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager; @@ -8,7 +7,6 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; public class GuildMusicManager { diff --git a/src/main/java/com/godson/kekbot/music/Playlist.java b/src/main/java/com/godson/kekbot/music/Playlist.java index d01acc2..abf1059 100644 --- a/src/main/java/com/godson/kekbot/music/Playlist.java +++ b/src/main/java/com/godson/kekbot/music/Playlist.java @@ -9,7 +9,7 @@ public class Playlist { private String name; - private List tracks = new ArrayList<>(); + private final List tracks = new ArrayList<>(); private boolean hidden = false; public Playlist(String name) { diff --git a/src/main/java/com/godson/kekbot/objects/DiscoinManager.java b/src/main/java/com/godson/kekbot/objects/DiscoinManager.java index 20cdc73..b0ed012 100644 --- a/src/main/java/com/godson/kekbot/objects/DiscoinManager.java +++ b/src/main/java/com/godson/kekbot/objects/DiscoinManager.java @@ -19,7 +19,7 @@ public class DiscoinManager { private ScheduledExecutorService service = Executors.newScheduledThreadPool(5); String url = "https://dash.discoin.zws.im/#/"; - private Runnable completeTransactions = () -> { + private final Runnable completeTransactions = () -> { try { List transactions = KekBot.discoin.getPendingTransactions("KEK"); for (Discoin4J.Transaction transaction : transactions) { diff --git a/src/main/java/com/godson/kekbot/objects/MarkovChain.java b/src/main/java/com/godson/kekbot/objects/MarkovChain.java index 418d6ad..2a1572a 100644 --- a/src/main/java/com/godson/kekbot/objects/MarkovChain.java +++ b/src/main/java/com/godson/kekbot/objects/MarkovChain.java @@ -1,8 +1,5 @@ package com.godson.kekbot.objects; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Paths; import java.text.BreakIterator; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/com/godson/kekbot/objects/PollManager.java b/src/main/java/com/godson/kekbot/objects/PollManager.java index 4a17d63..132fd4e 100644 --- a/src/main/java/com/godson/kekbot/objects/PollManager.java +++ b/src/main/java/com/godson/kekbot/objects/PollManager.java @@ -11,9 +11,9 @@ import java.util.TimerTask; public class PollManager { - private Map polls = new HashMap<>(); - private Map pollTriggers = new HashMap<>(); - private Timer timer = new Timer(); + private final Map polls = new HashMap<>(); + private final Map pollTriggers = new HashMap<>(); + private final Timer timer = new Timer(); public PollManager() {} @@ -32,7 +32,7 @@ public void run() { for (int i = 0; i < poll.getOptions().length; i++) { builder.append("**").append(poll.getOptions()[i]).append(":** ").append(poll.getVotes()[i]).append("\n"); } - channel.sendMessage(event.getString("poll.finished") + "\n\n" + builder.toString()).queue(); + channel.sendMessage(event.getString("poll.finished") + "\n\n" + builder).queue(); polls.remove(guild); pollTriggers.remove(guild); } diff --git a/src/main/java/com/godson/kekbot/objects/TwitterManager.java b/src/main/java/com/godson/kekbot/objects/TwitterManager.java index c12f046..120a59d 100644 --- a/src/main/java/com/godson/kekbot/objects/TwitterManager.java +++ b/src/main/java/com/godson/kekbot/objects/TwitterManager.java @@ -31,9 +31,9 @@ public class TwitterManager extends ListenerAdapter { private final List> statuses = new ArrayList<>(); private final Map currentTweets = new HashMap<>(); - TwitterStream twitterStream = new TwitterStreamFactory().getInstance(); + private final TwitterStream twitterStream = new TwitterStreamFactory().getInstance(); long[] ids = new long[]{958176875108593664L, 610103342L, 2996678026L, 624995324L, 1475679589L, 845418771896524801L, 762996861447860224L}; - StatusListener listener = new StatusListener() { + private final StatusListener listener = new StatusListener() { @Override public void onStatus(Status status) { //We do need this tho diff --git a/src/main/java/com/godson/kekbot/objects/WaifuManager.java b/src/main/java/com/godson/kekbot/objects/WaifuManager.java index bdfd288..6110333 100644 --- a/src/main/java/com/godson/kekbot/objects/WaifuManager.java +++ b/src/main/java/com/godson/kekbot/objects/WaifuManager.java @@ -4,8 +4,8 @@ import java.util.concurrent.TimeUnit; public class WaifuManager { - private Map waifus = new HashMap<>(); - private Random random = new Random(); + private final Map waifus = new HashMap<>(); + private final Random random = new Random(); public WaifuManager() { Timer timer = new Timer(); diff --git a/src/main/java/com/godson/kekbot/profile/Profile.java b/src/main/java/com/godson/kekbot/profile/Profile.java index 1bbeb8e..78f51cd 100644 --- a/src/main/java/com/godson/kekbot/profile/Profile.java +++ b/src/main/java/com/godson/kekbot/profile/Profile.java @@ -35,7 +35,7 @@ public class Profile { @SerializedName("Tokens") private List tokens = new ArrayList<>(); @SerializedName("Backgrounds") - private List backgrounds = new ArrayList(); + private List backgrounds = new ArrayList<>(); @SerializedName("Current Background ID") private String currentBackgroundID; @SerializedName("Badge") @@ -191,10 +191,10 @@ public byte[] drawCard() throws IOException { card.setFont(ProfileUtils.topBarBio); String tempBio = bio; while (card.getFont().getStringBounds(tempBio, card.getFontRenderContext()).getWidth() > 736) { - tempBio = tempBio.substring(0, tempBio.lastIndexOf(" ", tempBio.length())); + tempBio = tempBio.substring(0, tempBio.lastIndexOf(" ")); } card.drawString(Utils.removeWhitespaceEdges(tempBio), 249, 175); - if (bio.length() > tempBio.length()) card.drawString(Utils.removeWhitespaceEdges(bio.substring(tempBio.length(), bio.length())), 249, 175 + card.getFontMetrics().getHeight()); + if (bio.length() > tempBio.length()) card.drawString(Utils.removeWhitespaceEdges(bio.substring(tempBio.length())), 249, 175 + card.getFontMetrics().getHeight()); } //Draw Levels, XP, topkeks, playlists and their badge (if they have one). card.setFont(ProfileUtils.sideBar); diff --git a/src/main/java/com/godson/kekbot/profile/ProfileUtils.java b/src/main/java/com/godson/kekbot/profile/ProfileUtils.java index d31647f..9820ea6 100644 --- a/src/main/java/com/godson/kekbot/profile/ProfileUtils.java +++ b/src/main/java/com/godson/kekbot/profile/ProfileUtils.java @@ -20,11 +20,11 @@ public static boolean testBio(String bio) { String tempBio = bio; try { while (test.getFont().getStringBounds(tempBio, test.getFontRenderContext()).getWidth() > 736) { - tempBio = tempBio.substring(0, tempBio.lastIndexOf(" ", tempBio.length())); + tempBio = tempBio.substring(0, tempBio.lastIndexOf(" ")); } } catch (StringIndexOutOfBoundsException e) { return false; } - return tempBio.length() == bio.length() || test.getFont().getStringBounds(Utils.removeWhitespaceEdges(bio.substring(tempBio.length(), bio.length())), test.getFontRenderContext()).getWidth() < 736; + return tempBio.length() == bio.length() || test.getFont().getStringBounds(Utils.removeWhitespaceEdges(bio.substring(tempBio.length())), test.getFontRenderContext()).getWidth() < 736; } } diff --git a/src/main/java/com/godson/kekbot/profile/item/BackgroundManager.java b/src/main/java/com/godson/kekbot/profile/item/BackgroundManager.java index 435caed..14879ab 100644 --- a/src/main/java/com/godson/kekbot/profile/item/BackgroundManager.java +++ b/src/main/java/com/godson/kekbot/profile/item/BackgroundManager.java @@ -1,6 +1,5 @@ package com.godson.kekbot.profile.item; -import com.godson.kekbot.profile.item.Background; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; diff --git a/src/main/java/com/godson/kekbot/profile/rewards/lottery/Lottery.java b/src/main/java/com/godson/kekbot/profile/rewards/lottery/Lottery.java index 012c31e..cc9bb24 100644 --- a/src/main/java/com/godson/kekbot/profile/rewards/lottery/Lottery.java +++ b/src/main/java/com/godson/kekbot/profile/rewards/lottery/Lottery.java @@ -14,15 +14,15 @@ import java.util.stream.Collectors; public class Lottery { - private int ticketPrice = 10; - private int ticketMax = 10; + private final int ticketPrice = 10; + private final int ticketMax = 10; private int pot = 0; private int ticketsCount = 0; - private long lengthOfLottery = TimeUnit.HOURS.toMillis(4); - private List ballot = new ArrayList<>(); - private List> winners = new ArrayList<>(); + private final long lengthOfLottery = TimeUnit.HOURS.toMillis(4); + private final List ballot = new ArrayList<>(); + private final List> winners = new ArrayList<>(); - private Random random = new Random(); + private final Random random = new Random(); private Timer timer = new Timer(); private TimerTask draw; private long nextExecutionTime; @@ -44,11 +44,11 @@ public void run() { } private boolean canUserPurchaseTicket(User gambler) { - return ballot.stream().filter(ticket -> !ticket.isJackpot() && ticket.getGambler().equals(gambler)).collect(Collectors.toList()).size() < ticketMax; + return ballot.stream().filter(ticket -> !ticket.isJackpot() && ticket.getGambler().equals(gambler)).count() < ticketMax; } private int getOwnedTickets(User gambler) { - return this.ballot.stream().filter(ticket -> !ticket.isJackpot() && ticket.getGambler().equals(gambler)).collect(Collectors.toList()).size(); + return (int) this.ballot.stream().filter(ticket -> !ticket.isJackpot() && ticket.getGambler().equals(gambler)).count(); } public String printStats(User gambler, Guild guild) { diff --git a/src/main/java/com/godson/kekbot/questionaire/Questionnaire.java b/src/main/java/com/godson/kekbot/questionaire/Questionnaire.java index 3cf96f9..2f505f7 100644 --- a/src/main/java/com/godson/kekbot/questionaire/Questionnaire.java +++ b/src/main/java/com/godson/kekbot/questionaire/Questionnaire.java @@ -120,7 +120,7 @@ public Questionnaire useRawInput() { public Questionnaire addQuestion(String message, QuestionType type) { //Allows addition of other "Types" that require more params. - if (type.equals(QuestionType.CHOICE_STRING)) { + if (type.equals(QuestionType.CHOICE_STRING) || type.equals(QuestionType.YES_NO_STRING)) { String method = ""; //Add any new "types" to this switch, as well as the method used to create questions of that type. switch (type) { @@ -252,13 +252,11 @@ private void finish() { } public class Results { - private Questionnaire questionnaire; - private List answers; - private Guild guild; - private TextChannel channel; - private User user; - private CommandEvent event; - + private final Questionnaire questionnaire; + private final List answers; + private final Guild guild; + private final TextChannel channel; + private final User user; Results(Questionnaire questionnaire) { this.questionnaire = questionnaire; diff --git a/src/main/java/com/godson/kekbot/responses/Action.java b/src/main/java/com/godson/kekbot/responses/Action.java index ed93bb9..474fd42 100644 --- a/src/main/java/com/godson/kekbot/responses/Action.java +++ b/src/main/java/com/godson/kekbot/responses/Action.java @@ -55,8 +55,8 @@ public enum Action { this.unlocalizedMessage = unlocalizedMessage; } - private int blanks; - private String unlocalizedMessage; + private final int blanks; + private final String unlocalizedMessage; public int getBlanksNeeded() { return blanks; diff --git a/src/main/java/com/godson/kekbot/responses/Responder.java b/src/main/java/com/godson/kekbot/responses/Responder.java index dff8fb5..1cf6e0b 100644 --- a/src/main/java/com/godson/kekbot/responses/Responder.java +++ b/src/main/java/com/godson/kekbot/responses/Responder.java @@ -5,9 +5,6 @@ import com.google.gson.GsonBuilder; import com.google.gson.annotations.SerializedName; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/com/godson/kekbot/responses/ResponseSuggestion.java b/src/main/java/com/godson/kekbot/responses/ResponseSuggestion.java index 596270a..cd15cad 100644 --- a/src/main/java/com/godson/kekbot/responses/ResponseSuggestion.java +++ b/src/main/java/com/godson/kekbot/responses/ResponseSuggestion.java @@ -3,9 +3,9 @@ import net.dv8tion.jda.api.entities.User; public class ResponseSuggestion { - private String suggesterID; - private String actionName; - private String suggestedResponse; + private final String suggesterID; + private final String actionName; + private final String suggestedResponse; public ResponseSuggestion(User suggester, Action action, String response) { suggesterID = suggester.getId(); diff --git a/src/main/java/com/godson/kekbot/settings/Config.java b/src/main/java/com/godson/kekbot/settings/Config.java index 0a8980d..db61b9d 100644 --- a/src/main/java/com/godson/kekbot/settings/Config.java +++ b/src/main/java/com/godson/kekbot/settings/Config.java @@ -22,8 +22,7 @@ public class Config { private String dbPassword; //Tokens for bot lists private String dApiToken; - private String dListBotsToken; - private String dBotsListToken; + private String topGGToken; private String carbonToken; private String dcoinToken; //Bot Owner's User ID @@ -45,10 +44,10 @@ public class Config { private String twAccessTokenSecret; private boolean twitter = false; - private List botAdmins = new ArrayList<>(); - private List botMods = new ArrayList<>(); - private Map blockedUsers = new HashMap<>(); - private List patrons = new ArrayList<>(); + private final List botAdmins = new ArrayList<>(); + private final List botMods = new ArrayList<>(); + private final Map blockedUsers = new HashMap<>(); + private final List patrons = new ArrayList<>(); public String getDatabase() { if (database != null) return database; @@ -160,20 +159,12 @@ public String getdApiToken() { return dApiToken; } - /** - * Gets token for the DiscordList Bots website. - * @return The token. - */ - public String getdListBotsToken() { - return dListBotsToken; - } - /** * Gets token for the Discord Bots List website. * @return The token. */ - public String getdBotsListToken() { - return dBotsListToken; + public String getTopGGToken() { + return topGGToken; } /** @@ -248,6 +239,8 @@ public void save() { public static Config getConfig() { Config config = new Config(); try { + File configDir = new File("config"); + if (!configDir.exists()) configDir.mkdir(); BufferedReader br = new BufferedReader(new FileReader("config/config.json")); Gson gson = new Gson(); config = gson.fromJson(br, Config.class); @@ -265,8 +258,7 @@ public static Config getConfig() { temp.dbUser = "db user name"; temp.dbPassword = "db password"; temp.dApiToken = "(optional) discord bot list token"; - temp.dBotsListToken = "(optional) another bot list token"; - temp.dListBotsToken = "(optional) yet another bot list token"; + temp.topGGToken = "(optional) another bot list token"; temp.carbonToken = "(optional) carbon bot list token"; temp.dcoinToken = "(optional) discoin token"; temp.botOwner = "your discord id"; diff --git a/src/main/java/com/godson/kekbot/settings/Ticket.java b/src/main/java/com/godson/kekbot/settings/Ticket.java index 1c3d598..b8ba890 100644 --- a/src/main/java/com/godson/kekbot/settings/Ticket.java +++ b/src/main/java/com/godson/kekbot/settings/Ticket.java @@ -4,10 +4,6 @@ import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.User; -import java.text.SimpleDateFormat; -import java.time.OffsetDateTime; -import java.time.ZoneId; -import java.time.ZonedDateTime; import java.util.*; public class Ticket { @@ -128,7 +124,7 @@ public String getAttachment() { public enum TicketStatus { OPEN("Open"), AWAITING_REPLY("Sent Reply"), RECEIVED_REPLY("Recieved Reply"); - private String name; + private final String name; TicketStatus(String name) { this.name = name; @@ -140,10 +136,10 @@ public String getName() { } public class TicketReply { - private String userID; - private String message; - private long timeCreated; - private boolean adminReply; + private final String userID; + private final String message; + private final long timeCreated; + private final boolean adminReply; private TicketReply(String userID, String message, boolean adminReply) { this.userID = userID; diff --git a/src/main/java/com/godson/kekbot/shop/BackgroundShop.java b/src/main/java/com/godson/kekbot/shop/BackgroundShop.java index ce0c908..084c55b 100644 --- a/src/main/java/com/godson/kekbot/shop/BackgroundShop.java +++ b/src/main/java/com/godson/kekbot/shop/BackgroundShop.java @@ -47,7 +47,7 @@ public List draw(Profile profile) throws IOException { int maxPages = getNumberOfPages(); - BufferedImage images[] = new BufferedImage[maxPages]; + BufferedImage[] images = new BufferedImage[maxPages]; List entireShop = new ArrayList<>(); diff --git a/src/main/java/com/godson/kekbot/shop/Shop.java b/src/main/java/com/godson/kekbot/shop/Shop.java index 1c99b7e..131a28f 100644 --- a/src/main/java/com/godson/kekbot/shop/Shop.java +++ b/src/main/java/com/godson/kekbot/shop/Shop.java @@ -12,8 +12,8 @@ import java.util.Map; public abstract class Shop { - protected List inventory = new ArrayList(); - private Map limitedQuantity = new HashMap<>(); + protected List inventory = new ArrayList<>(); + private final Map limitedQuantity = new HashMap<>(); protected final ShelfType shelfType; protected final int height; @@ -71,8 +71,8 @@ public int getItemsPerPage() { protected enum ShelfType { SHELF_3("resources/shop/3shelf.png", 3); - private String file; - private int shelves; + private final String file; + private final int shelves; ShelfType(String file, int shelves) { this.file = file; diff --git a/src/main/java/com/godson/kekbot/shop/TokenShop.java b/src/main/java/com/godson/kekbot/shop/TokenShop.java index c7babec..bc73c9c 100644 --- a/src/main/java/com/godson/kekbot/shop/TokenShop.java +++ b/src/main/java/com/godson/kekbot/shop/TokenShop.java @@ -45,7 +45,7 @@ public List draw(Profile profile) throws IOException { int maxPages = getNumberOfPages(); - BufferedImage images[] = new BufferedImage[maxPages]; + BufferedImage[] images = new BufferedImage[maxPages]; List entireShop = new ArrayList<>(); diff --git a/src/main/java/com/godson/kekbot/util/ImageUtils.java b/src/main/java/com/godson/kekbot/util/ImageUtils.java index e1f7436..3de0978 100644 --- a/src/main/java/com/godson/kekbot/util/ImageUtils.java +++ b/src/main/java/com/godson/kekbot/util/ImageUtils.java @@ -16,13 +16,11 @@ public static boolean drawCenteredString(Graphics2D graphics, String str, int po if (graphics.getFont().getStringBounds(word, graphics.getFontRenderContext()).getWidth() > maxWidth) { return false; } - if (graphics.getFont().getStringBounds(test + " " + word, graphics.getFontRenderContext()).getWidth() <= maxWidth) - test.append(word).append(" "); - else { + if (graphics.getFont().getStringBounds(test + " " + word, graphics.getFontRenderContext()).getWidth() > maxWidth) { text.append(test).append("\n"); test.delete(0, test.length()); - test.append(word).append(" "); } + test.append(word).append(" "); } text.append(test); @@ -36,9 +34,9 @@ public static boolean drawCenteredString(Graphics2D graphics, String str, int po String[] split = text.toString().split("\n"); //For loop to determine total height of all text. - for (int i = 0; i < split.length; i++) { + for (String s : split) { totalHeight += graphics.getFontMetrics().getHeight(); - Rectangle2D temp = graphics.getFontMetrics().getStringBounds(split[i], graphics); + Rectangle2D temp = graphics.getFontMetrics().getStringBounds(s, graphics); if (temp.getWidth() > highestWidth) highestWidth = (int) Math.round(temp.getWidth()); } diff --git a/src/main/java/com/godson/kekbot/util/LocaleUtils.java b/src/main/java/com/godson/kekbot/util/LocaleUtils.java index 37a5947..b166507 100644 --- a/src/main/java/com/godson/kekbot/util/LocaleUtils.java +++ b/src/main/java/com/godson/kekbot/util/LocaleUtils.java @@ -2,7 +2,7 @@ import net.dv8tion.jda.internal.utils.tuple.Pair; -import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.util.*; public class LocaleUtils { @@ -17,15 +17,15 @@ public class LocaleUtils { public static String getString(String unlocalizedMessage, String locale, Object... objects) { try { - String parts[] = locale.split("_"); + String[] parts = locale.split("_"); Locale.Builder builder = new Locale.Builder(); builder.setLanguage(parts[0]); if (parts.length > 1) builder.setRegion(parts[1]); if (parts.length > 2) builder.setVariant(parts[2]); ResourceBundle bundle = ResourceBundle.getBundle(LocaleUtils.bundle, builder.build()); - return new String(String.format(bundle.getString(unlocalizedMessage), objects).getBytes("ISO-8859-1"), "UTF-8"); - } catch (MissingResourceException | UnsupportedEncodingException e) { + return new String(String.format(bundle.getString(unlocalizedMessage), objects).getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); + } catch (MissingResourceException e) { //In case of the event that there's a localized message missing in both the locale and default properties file, throw the unlocalized message at chat instead. //This'll also happen is an error happens. return unlocalizedMessage; @@ -34,15 +34,15 @@ public static String getString(String unlocalizedMessage, String locale, Object. public static String getPluralString(long amount, String unlocalizedMessage, String locale, Object... objects) { try { - String parts[] = locale.split("_"); + String[] parts = locale.split("_"); Locale.Builder builder = new Locale.Builder(); builder.setLanguage(parts[0]); if (parts.length > 1) builder.setRegion(parts[1]); if (parts.length > 2) builder.setVariant(parts[2]); ResourceBundle bundle = ResourceBundle.getBundle(LocaleUtils.bundle, builder.build()); - return new String(String.format(bundle.getString(unlocalizedMessage + (amount != 1 ? ".plural" : ".single")), objects).getBytes("ISO-8859-1"), "UTF-8"); - } catch (MissingResourceException | UnsupportedEncodingException e) { + return new String(String.format(bundle.getString(unlocalizedMessage + (amount != 1 ? ".plural" : ".single")), objects).getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); + } catch (MissingResourceException e) { //In case of the event that there's a localized message missing in both the locale and default properties file, throw the unlocalized message at chat instead. //This'll also happen is an error happens. return unlocalizedMessage; diff --git a/src/main/java/com/godson/kekbot/util/RandomCollection.java b/src/main/java/com/godson/kekbot/util/RandomCollection.java index 0fc1ab2..86d471a 100644 --- a/src/main/java/com/godson/kekbot/util/RandomCollection.java +++ b/src/main/java/com/godson/kekbot/util/RandomCollection.java @@ -5,7 +5,7 @@ import java.util.TreeMap; public class RandomCollection { - private final NavigableMap map = new TreeMap(); + private final NavigableMap map = new TreeMap<>(); private final Random random; private double total = 0; diff --git a/src/main/java/com/godson/kekbot/util/Utils.java b/src/main/java/com/godson/kekbot/util/Utils.java index bc674fd..06f090e 100644 --- a/src/main/java/com/godson/kekbot/util/Utils.java +++ b/src/main/java/com/godson/kekbot/util/Utils.java @@ -8,7 +8,6 @@ import com.mashape.unirest.http.exceptions.UnirestException; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.*; -import net.dv8tion.jda.internal.JDAImpl; import net.dv8tion.jda.internal.requests.Requester; import okhttp3.*; import org.json.JSONObject; @@ -127,13 +126,13 @@ public static boolean deleteDirectory(File directory) { * @param jda The instance of JDA (or shard) to send stats from. */ public static void sendStats(JDA jda) { - OkHttpClient client = ((JDAImpl) jda).getHttpClient(); + OkHttpClient client = jda.getHttpClient(); Config config = Config.getConfig(); String carbonToken = config.getCarbonToken(); - String botsListToken = config.getdBotsListToken(); + String topGGToken = config.getTopGGToken(); String botsToken = config.getdApiToken(); - String dListBotsToken = config.getdListBotsToken(); + // Carbonitex if (carbonToken != null) { FormBody.Builder bodyBuilder = new FormBody.Builder().add("key", carbonToken).add("servercount", Integer.toString(jda.getGuilds().size())); @@ -158,15 +157,16 @@ public void onFailure(Call call, IOException e) { }); } - if (botsListToken != null) { + // Top.gg + if (topGGToken != null) { JSONObject body = new JSONObject().put("server_count", jda.getGuilds().size()); if (jda.getShardInfo() != null) body.put("shard_id", jda.getShardInfo().getShardId()).put("shard_count", jda.getShardInfo().getShardTotal()); Request.Builder builder = new Request.Builder() .post(RequestBody.create(Requester.MEDIA_TYPE_JSON, body.toString())) - .url("https://discordbots.org/api/bots/" + jda.getSelfUser().getId() + "/stats") - .header("Authorization", botsListToken) + .url("https://top.gg/api/bots/" + jda.getSelfUser().getId() + "/stats") + .header("Authorization", topGGToken) .header("Content-Type", "application/json"); client.newCall(builder.build()).enqueue(new Callback() { @@ -182,14 +182,16 @@ public void onFailure(Call call, IOException e) { }); } + // Discord Bots if (botsToken != null) { JSONObject body = new JSONObject().put("server_count", jda.getGuilds().size()); - if (jda.getShardInfo() != null) body.put("shard_id", jda.getShardInfo().getShardId()).put("shard_count", jda.getShardInfo().getShardTotal()); + if (jda.getShardInfo() != null) + body.put("shard_id", jda.getShardInfo().getShardId()).put("shard_count", jda.getShardInfo().getShardTotal()); Request.Builder builder = new Request.Builder() .post(RequestBody.create(Requester.MEDIA_TYPE_JSON, body.toString())) - .url("https://bots.discord.pw/api/bots/" + jda.getSelfUser().getId() + "/stats") + .url("https://discord.bots.gg/api/v1/bots/" + jda.getSelfUser().getId() + "/stats") .header("Authorization", botsToken) .header("Content-Type", "application/json"); @@ -204,26 +206,6 @@ public void onFailure(Call call, IOException e) { } }); } - - if (dListBotsToken != null) { - JSONObject body = new JSONObject().put("token", dListBotsToken).put("servers", KekBot.jda.getGuilds()); - - Request.Builder builder = new Request.Builder().post(RequestBody.create(Requester.MEDIA_TYPE_JSON, body.toString())) - .url("https://bots.discordlist.net/api") - .header("Content-Tytpe", "application/json"); - - client.newCall(builder.build()).enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) throws IOException { - response.close(); - } - - @Override - public void onFailure(Call call, IOException e) { - //Do nothing for now. - } - }); - } } /** @@ -391,14 +373,12 @@ public static String emojify(String word) { } @SuppressWarnings("unchecked") - public static T[] increaseArraySize(T original[], int newLength) { + public static T[] increaseArraySize(T[] original, int newLength) { //Assuming original[0] isn't null. T[] t = (T[]) Array.newInstance(original[0].getClass(), newLength); - for (int i = 0; i < original.length; i++){ - t[i] = original[i]; - } + System.arraycopy(original, 0, t, 0, original.length); return t; } diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index ebd5602..cc75280 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -20,11 +20,10 @@ 10MB - - - + + \ No newline at end of file From 282a627fd4032bdd5b0424306cc8e4a83e42d33a Mon Sep 17 00:00:00 2001 From: Terrence S <22570455+Diamondman121314@users.noreply.github.com> Date: Sat, 30 Oct 2021 14:46:29 -0400 Subject: [PATCH 6/7] Update TopGG --- pom.xml | 2 +- src/main/java/com/godson/kekbot/KekBot.java | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 0109fab..86c108e 100644 --- a/pom.xml +++ b/pom.xml @@ -141,7 +141,7 @@ com.github.DiscordBotList DBL-Java-Wrapper - 4b27930 + 19abf1 diff --git a/src/main/java/com/godson/kekbot/KekBot.java b/src/main/java/com/godson/kekbot/KekBot.java index 2dc0b11..e046a68 100644 --- a/src/main/java/com/godson/kekbot/KekBot.java +++ b/src/main/java/com/godson/kekbot/KekBot.java @@ -44,7 +44,6 @@ import net.dv8tion.jda.api.utils.MemberCachePolicy; import org.apache.commons.lang3.StringUtils; import org.discordbots.api.client.DiscordBotListAPI; -import org.glassfish.grizzly.http.server.HttpServer; import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory; import org.glassfish.jersey.server.ResourceConfig; import twitter4j.conf.ConfigurationBuilder; @@ -76,7 +75,6 @@ public class KekBot { public static boolean dev; public static WeebApi weebApi; public static DiscordBotListAPI dbl; - private static HttpServer server; //Twitter config public static ConfigurationBuilder twitterConfig; @@ -111,13 +109,13 @@ public class KekBot { } // Base URI the Grizzly HTTP server will listen on - private static HttpServer startServer(int mode) { + private static void startServer(int mode) { String BASE_URI = Config.getConfig().getAPIip(); if (mode == 1) BASE_URI = Config.getConfig().getAPIip() + "test/"; if (mode == 2) BASE_URI = "http://localhost:8081/myapp/"; final ResourceConfig rc = new ResourceConfig().packages("com.godson.kekbot.api"); - return GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), rc); + GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), rc); } public static void main(String[] args) throws LoginException { @@ -132,7 +130,7 @@ public static void main(String[] args) throws LoginException { KekBot.dev = true; } } - server = startServer(mode); + startServer(mode); setupOptionalResources(mode); startBot(mode); } @@ -142,7 +140,6 @@ private static void setupOptionalResources(int mode) { Config config = Config.getConfig(); if (config.getTopGGToken() != null) dbl = new DiscordBotListAPI.Builder().token(config.getTopGGToken()).build(); -// if (config.getWeebToken() != null) weebApi = new WeebApiBuilder(TokenType.WOLKETOKENS, "KekBot/" + version.toString()).setToken(config.getWeebToken()).build(); if (config.getWeebToken() != null) weebApi = new WeebApiBuilder(TokenType.WOLKETOKENS).setBotInfo("KekBot", version.toString(), "").setToken(config.getWeebToken()).build(); if (config.usingTwitter()) { System.out.println("Using Twitter. Checking for missing values..."); From 7e659453265b149688ed7e635c6fd86a08fa40f8 Mon Sep 17 00:00:00 2001 From: Terrence S <22570455+Diamondman121314@users.noreply.github.com> Date: Sat, 30 Oct 2021 17:11:48 -0400 Subject: [PATCH 7/7] Make config comment clearer --- src/main/java/com/godson/kekbot/settings/Config.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/godson/kekbot/settings/Config.java b/src/main/java/com/godson/kekbot/settings/Config.java index db61b9d..8c68031 100644 --- a/src/main/java/com/godson/kekbot/settings/Config.java +++ b/src/main/java/com/godson/kekbot/settings/Config.java @@ -258,7 +258,7 @@ public static Config getConfig() { temp.dbUser = "db user name"; temp.dbPassword = "db password"; temp.dApiToken = "(optional) discord bot list token"; - temp.topGGToken = "(optional) another bot list token"; + temp.topGGToken = "(optional) top.gg bot list token"; temp.carbonToken = "(optional) carbon bot list token"; temp.dcoinToken = "(optional) discoin token"; temp.botOwner = "your discord id"; @@ -269,7 +269,7 @@ public static Config getConfig() { temp.weebToken = "(optional) weeb sh token"; temp.twitter = false; temp.twAccessToken = "(optional) twitter access token"; - temp.twConsumerKey = "(optional) twitter consumerkey"; + temp.twConsumerKey = "(optional) twitter consumer key"; temp.twConsumerSecret = "(optional) twitter consumer secret"; temp.twAccessTokenSecret = "(optional) twitter access secret token"; temp.botAdmins.add("(optional) id of bot admin");