diff --git a/README.md b/README.md index db85607..34413f0 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ Hadder Discord is a multi-purpose Discord bot with 100% uptime. [![Discord Bots](https://top.gg/api/widget/637002314162372639.svg)](https://top.gg/bot/637002314162372639) [![Hadder's Widget](https://api.botlist.space/widget/637002314162372639/2 "Hadder's Widget")](https://botlist.space/bot/637002314162372639?utm_source=bls&utm_medium=widget&utm_campaign=637002314162372639) [![Discord Bots](https://discordbotlist.com/bots/637002314162372639/widget)](https://discordbotlist.com/bots/637002314162372639) +[![Arcane Bot Center](https://arcane-botcenter.xyz/api/widget/637002314162372639.svg)](https://arcane-botcenter.xyz/bot/637002314162372639) ## Hadder Team ### Developer diff --git a/pom.xml b/pom.xml index 8fc48d9..4b3ac33 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 Hadder Hadder - 1.1.3 + 1.3.3 Hadder 2019 Hadder is a multi-purpose Discord bot. @@ -66,7 +66,7 @@ net.dv8tion JDA - 4.1.1_113 + 4.1.1_149 org.json @@ -76,7 +76,7 @@ com.rethinkdb rethinkdb-driver - 2.4.0 + 2.4.2 org.slf4j @@ -86,22 +86,22 @@ club.minnced discord-webhooks - 0.2.0 + 0.3.1 org.kohsuke github-api - 1.108 + 1.111 com.sedmelluq lavaplayer - 1.3.34 + 1.3.48 com.fasterxml.jackson.core jackson-annotations - 2.10.3 + 2.11.0 diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 0d93dd7..2fe8cf3 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -29,6 +29,7 @@ import com.bbn.hadder.core.*; import com.bbn.hadder.listener.*; import net.dv8tion.jda.api.OnlineStatus; import net.dv8tion.jda.api.entities.Activity; +import net.dv8tion.jda.api.requests.GatewayIntent; import net.dv8tion.jda.api.sharding.DefaultShardManagerBuilder; import net.dv8tion.jda.api.sharding.ShardManager; import net.dv8tion.jda.api.utils.ChunkingFilter; @@ -51,11 +52,11 @@ public class Hadder { Rethink rethink = new Rethink(config); rethink.connect(); - DefaultShardManagerBuilder builder = new DefaultShardManagerBuilder(); + DefaultShardManagerBuilder builder = DefaultShardManagerBuilder.create(GatewayIntent.getIntents(GatewayIntent.ALL_INTENTS)); builder.setAutoReconnect(true); builder.setShardsTotal(1); - builder.setChunkingFilter(ChunkingFilter.ALL); + builder.setChunkingFilter(ChunkingFilter.NONE); builder.setBulkDeleteSplittingEnabled(true); builder.setActivity(Activity.listening("to h.help")); builder.setStatus(OnlineStatus.DO_NOT_DISTURB); @@ -127,7 +128,8 @@ public class Hadder { new ServerStatsCommand(), new ProfileCommand(), new CodeCommand(), - new MoveAllCommand()), config, helpCommand); + new MoveAllCommand(), + new CoronaCommand()), config, helpCommand); builder.addEventListeners( new MentionListener(rethink), diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index aeaaf58..5f8ee59 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -22,6 +22,7 @@ import com.rethinkdb.gen.exc.ReqlNonExistenceError; import com.rethinkdb.gen.exc.ReqlOpFailedError; import com.rethinkdb.net.Connection; import org.json.JSONArray; +import org.json.JSONException; import org.json.JSONObject; import java.lang.reflect.Field; @@ -72,13 +73,18 @@ public class Rethink { else return null; } - public Object getByID(String table, String wherevalue, String column) { - return r.table(table).get(wherevalue).getField(column).run(conn); + public Object getByID(String table, String where, String column) { + return r.table(table).get(where).getField(column).run(conn); } public JSONObject getObjectByID(String table, String id) { String response = r.table(table).get(id).toJson().run(conn); - return new JSONObject(response); + try { + return new JSONObject(response); + } catch (JSONException e) { + System.out.println(response); + return null; + } } public void insert(String table, Object object) { diff --git a/src/main/java/com/bbn/hadder/commands/misc/CodeCommand.java b/src/main/java/com/bbn/hadder/commands/misc/CodeCommand.java index a154bb2..9f22e89 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/CodeCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/CodeCommand.java @@ -31,7 +31,7 @@ public class CodeCommand implements Command { public void executed(String[] args, CommandEvent e) { if (args.length > 0) { OkHttpClient client = new OkHttpClient(); - Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invite/" + args[0]).addHeader("Authorization", "Bot " + e.getConfig().getBotToken()).build(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invite/" + args[0] + "?with_counts=true").addHeader("Authorization", "Bot " + e.getConfig().getBotToken()).build(); try { Response response = client.newCall(request).execute(); @@ -45,6 +45,9 @@ public class CodeCommand implements Command { .addField("Verification Level", String.valueOf(json.getJSONObject("guild").getInt("verification_level")), true) .addField("Guild ID", json.getJSONObject("guild").getString("id"), true) .addBlankField(true) + .addField("Members", String.valueOf(json.get("approximate_member_count")), true) + .addBlankField(true) + .addBlankField(true) .setThumbnail("https://cdn.discordapp.com/icons/" + json.getJSONObject("guild").getString("id") + "/" + json.getJSONObject("guild").getString("icon") + ".png") .build()).queue(); } catch (JSONException ex) { diff --git a/src/main/java/com/bbn/hadder/commands/misc/CoronaCommand.java b/src/main/java/com/bbn/hadder/commands/misc/CoronaCommand.java new file mode 100644 index 0000000..a09a087 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/misc/CoronaCommand.java @@ -0,0 +1,76 @@ +/* + * Copyright 2019-2020 GregTCLTK and Schlauer-Hax + * + * Licensed under the GNU Affero General Public License, Version 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.gnu.org/licenses/agpl-3.0.en.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.bbn.hadder.commands.misc; + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.MessageEditor; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import org.json.JSONObject; + +import java.io.IOException; + +public class CoronaCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent e) { + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://corona.lmao.ninja/v2/all").build(); + + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder + .append("`Confirmed cases:` **").append(json.get("cases")).append("**\n") + .append("`Deaths:` **").append(json.get("deaths")).append("** \n") + .append("`Recovered:` **").append(json.get("recovered")).append("** \n") + .append("`Active cases:` **").append(json.get("active")).append("**"); + e.getTextChannel().sendMessage(e.getMessageEditor() + .getMessage(MessageEditor.MessageType.INFO) + .setDescription(stringBuilder) + .build()).queue(); + } catch (IOException ex) { + e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR) + .setTitle("API Error") + .setDescription("Try again later!") + .build()).queue(); + } + } + + @Override + public String[] labels() { + return new String[]{"corona"}; + } + + @Override + public String description() { + return "commands.misc.corona.help.description"; + } + + @Override + public String usage() { + return null; + } + + @Override + public String example() { + return null; + } +} diff --git a/src/main/java/com/bbn/hadder/commands/misc/MoveAllCommand.java b/src/main/java/com/bbn/hadder/commands/misc/MoveAllCommand.java index bf8fc95..3dbf7c0 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/MoveAllCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/MoveAllCommand.java @@ -1,52 +1,76 @@ /* - * @author Hax / Hax6775 / Schlauer_Hax + * Copyright 2019-2020 GregTCLTK and Schlauer-Hax + * + * Licensed under the GNU Affero General Public License, Version 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.gnu.org/licenses/agpl-3.0.en.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package com.bbn.hadder.commands.misc; - import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.core.Perm; import com.bbn.hadder.core.Perms; -import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.Permission; -import net.dv8tion.jda.api.entities.Member; - -import java.util.ArrayList; -import java.util.Objects; +import com.bbn.hadder.utils.MessageEditor; +import org.apache.commons.lang3.StringUtils; +@Perms(Perm.VOICE_MOVE_OTHERS) public class MoveAllCommand implements Command { - @Perms(Perm.VOICE_MOVE_OTHERS) @Override public void executed(String[] args, CommandEvent e) { if (args.length == 2) { - int count = Objects.requireNonNull(e.getGuild().getVoiceChannelById(args[0])).getMembers().size(); - Objects.requireNonNull(e.getGuild().getVoiceChannelById(args[0])).getMembers().forEach( - member -> { - e.getGuild().moveVoiceMember(member, e.getGuild().getVoiceChannelById(args[1])).queue(); + if (StringUtils.isNumeric(args[0]) && args[0].length() == 18) { + if (StringUtils.isNumeric(args[1]) && args[1].length() == 18) { + if (!args[0].equals(args[1])) { + int count = e.getGuild().getVoiceChannelById(args[0]).getMembers().size(); + e.getGuild().getVoiceChannelById(args[0]).getMembers().forEach( + member -> e.getGuild().moveVoiceMember(member, e.getGuild().getVoiceChannelById(args[1])).queue() + ); + e.getChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + "commands.misc.moveall.success.title", "", + "commands.misc.moveall.success.description", String.valueOf(count)) + .build()).queue(); + } else { + e.getChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, + "commands.misc.moveall.error.equals.title", + "commands.misc.moveall.error.equals.description") + .build()).queue(); } - ); - e.getChannel().sendMessage(new EmbedBuilder().setTitle("Successfully Moved!").setDescription("I moved " + - count + " Members. Have fun!").build()).queue(); - } else { - e.getHelpCommand().sendHelp(this, e); - } + } else { + e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, + "commands.misc.moveall.error.target.int.title", + "commands.misc.moveall.error.target.int.description").build()).queue(); + } + } else { + e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, + "commands.misc.moveall.error.source.int.title", + "commands.misc.moveall.error.source.int.description").build()).queue(); + } + } else e.getHelpCommand().sendHelp(this, e); } @Override public String[] labels() { - return new String[]{"moveall", "move-all"}; + return new String[]{"moveall", "move-all", "ma"}; } @Override public String description() { - return "Moves All users in channel1 to channel2"; + return "commands.misc.moveall.help.description"; } @Override public String usage() { - return "[channel1] [channel2]"; + return "[source-channel] [target-channel]"; } @Override diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java index 5e7efcf..cd81ab1 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java @@ -86,16 +86,13 @@ public class RegionChangeCommand implements Command { case "us-south": setRegion(Region.US_SOUTH, "US South", e); break; - case "south-korea": - setRegion(Region.SOUTH_KOREA, "South Korea", e); - break; default: e.getTextChannel().sendMessage( e.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.regionchange.regions.title", "") - .setDescription("**LOCKED:**\n`amsterdam` `frankfurt` `eu-west` `eu-central` `london` `south korea`\n\n**UNLOCKED:**\n`europe` `brazil` `hongkong` `india` `japan` `singapore` `south-africa` `sydney` `us-central` `us-east` `us-west` `us-south`") + .setDescription("**LOCKED:**\n`amsterdam` `frankfurt` `eu-west` `eu-central` `london`\n\n**UNLOCKED:**\n`europe` `brazil` `hongkong` `india` `japan` `singapore` `south-africa` `sydney` `us-central` `us-east` `us-west` `us-south`") .build()).queue(); break; } diff --git a/src/main/java/com/bbn/hadder/commands/music/PauseCommand.java b/src/main/java/com/bbn/hadder/commands/music/PauseCommand.java index baf55b0..3dcf47e 100644 --- a/src/main/java/com/bbn/hadder/commands/music/PauseCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/PauseCommand.java @@ -34,8 +34,8 @@ public class PauseCommand implements Command { .build()).queue(); } else { e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, - "commands.music.pause.error.paused.title", - "commands.music.pause.error.paused.description") + "commands.music.pause.error.paused.title", "", + "commands.music.pause.error.paused.description", e.getRethinkServer().getPrefix()) .build()).queue(); } } else { diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/AnalCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/AnalCommand.java index da0baa4..b760ceb 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/AnalCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/AnalCommand.java @@ -26,7 +26,7 @@ public class AnalCommand implements Command { @Override public void executed(String[] args, CommandEvent e) { if (e.getTextChannel().isNSFW()) { - String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/anal/"); + String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/anal"); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setAuthor(e.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url) .setImage(url) diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/BoobsCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/BoobsCommand.java index 50c43df..f47c0ef 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/BoobsCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/BoobsCommand.java @@ -27,7 +27,7 @@ public class BoobsCommand implements Command { public void executed(String[] args, CommandEvent e) { if (e.getTextChannel().isNSFW()) { - String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/tits/"); + String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/tits"); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setAuthor(e.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url) diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/CumCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/CumCommand.java index 95c291b..9207c05 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/CumCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/CumCommand.java @@ -27,7 +27,7 @@ public class CumCommand implements Command { public void executed(String[] args, CommandEvent e) { if (e.getTextChannel().isNSFW()) { - String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/cum/"); + String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/cum"); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setAuthor(e.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url) diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/FeetCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/FeetCommand.java index f304f29..a46af5c 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/FeetCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/FeetCommand.java @@ -27,7 +27,7 @@ public class FeetCommand implements Command { public void executed(String[] args, CommandEvent e) { if (e.getTextChannel().isNSFW()) { - String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/feet/"); + String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/feet"); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setAuthor(e.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url) diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/FingeringCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/FingeringCommand.java index cf1d3c5..3eba6d1 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/FingeringCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/FingeringCommand.java @@ -27,7 +27,7 @@ public class FingeringCommand implements Command { public void executed(String[] args, CommandEvent e) { if (e.getTextChannel().isNSFW()) { - String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/pussy_wank/"); + String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/pussy_wank"); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setAuthor(e.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url) diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/LickingCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/LickingCommand.java index 4bc70be..3e199ff 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/LickingCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/LickingCommand.java @@ -27,7 +27,7 @@ public class LickingCommand implements Command { public void executed(String[] args, CommandEvent e) { if (e.getTextChannel().isNSFW()) { - String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/kuni/"); + String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/kuni"); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setAuthor(e.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url) diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/PornCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/PornCommand.java index 6b9f037..9c181b1 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/PornCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/PornCommand.java @@ -27,7 +27,7 @@ public class PornCommand implements Command { public void executed(String[] args, CommandEvent e) { if (e.getTextChannel().isNSFW()) { - String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/classic/"); + String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/classic"); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setAuthor(e.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url) diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/PussyCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/PussyCommand.java index b2896d3..5a395b4 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/PussyCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/PussyCommand.java @@ -27,7 +27,7 @@ public class PussyCommand implements Command { public void executed(String[] args, CommandEvent e) { if (e.getTextChannel().isNSFW()) { - String url = Http.getNSFW("https://nekos.life/api/v2/img/pussy/"); + String url = Http.getNSFW("https://nekos.life/api/v2/img/pussy"); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setAuthor(e.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url) diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/RandomPornCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/RandomPornCommand.java index 15a8be7..7c1518c 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/RandomPornCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/RandomPornCommand.java @@ -27,7 +27,7 @@ public class RandomPornCommand implements Command { public void executed(String[] args, CommandEvent e) { if (e.getTextChannel().isNSFW()) { - String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/all_tags/"); + String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/all_tags"); e.getTextChannel() .sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/SoloCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/SoloCommand.java index 7ad6e49..d3f8a28 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/SoloCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/SoloCommand.java @@ -27,7 +27,7 @@ public class SoloCommand implements Command { public void executed(String[] args, CommandEvent e) { if (e.getTextChannel().isNSFW()) { - String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/girls_solo/"); + String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/girls_solo"); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setAuthor(e.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url) diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/SpankCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/SpankCommand.java index 8f6535a..59805b0 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/SpankCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/SpankCommand.java @@ -27,7 +27,7 @@ public class SpankCommand implements Command { public void executed(String[] args, CommandEvent e) { if (e.getTextChannel().isNSFW()) { - String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/spank/"); + String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/gif/spank"); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setAuthor(e.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url) diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/TransCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/TransCommand.java index e72db47..439f284 100644 --- a/src/main/java/com/bbn/hadder/commands/nsfw/TransCommand.java +++ b/src/main/java/com/bbn/hadder/commands/nsfw/TransCommand.java @@ -27,7 +27,7 @@ public class TransCommand implements Command { public void executed(String[] args, CommandEvent e) { if (e.getTextChannel().isNSFW()) { - String url = Http.getNSFW("https://nekos.life/api/v2/img/trap/"); + String url = Http.getNSFW("https://nekos.life/api/v2/img/trap"); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setAuthor(e.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url) diff --git a/src/main/java/com/bbn/hadder/utils/BotList.java b/src/main/java/com/bbn/hadder/utils/BotList.java index 3abfe8d..04374c8 100644 --- a/src/main/java/com/bbn/hadder/utils/BotList.java +++ b/src/main/java/com/bbn/hadder/utils/BotList.java @@ -33,14 +33,13 @@ public class BotList { private static String MythicalBotList = "https://mythicalbots.xyz/api/bot/637002314162372639"; private static String BotsForDiscord = "https://botsfordiscord.com/api/bot/637002314162372639"; private static String DiscordBotList = "https://discordbotlist.com/api/bots/637002314162372639/stats"; - private static String DiscordBoats = "https://discord.boats/api/bot/637002314162372639"; + private static String DiscordBoats = "https://discord.boats/api/v2/bot/637002314162372639"; private static String YetAnotherBotList = "https://yabl.xyz/api/bot/637002314162372639/stats"; private static String DiscordExtremeList = "https://api.discordextremelist.xyz/v1/bot/637002314162372639"; private static String DiscordBots = "https://top.gg/api/bots/637002314162372639/stats"; private static String BotListSpace = "https://api.botlist.space/v1/bots/637002314162372639"; private static String DiscordBots2 = "https://discord.bots.gg/api/v1/bots/637002314162372639/stats"; - private static String CloudList = "https://www.cloudlist.xyz/api/stats/637002314162372639"; - private static String ArcaneBotCenter = "https://arcane-botcenter.xyz/api/637002314162372639/stats"; + private static String ArcaneBotCenter = "https://arcane-center.xyz/api/637002314162372639/stats"; private Config config; @@ -197,21 +196,6 @@ public class BotList { e.printStackTrace(); } - // CloudList - - Request cloudlist = new Request.Builder() - .url(CloudList) - .post(body) - .addHeader("Authorization", config.getCloudListToken()) - .build(); - - try { - new OkHttpClient().newCall(cloudlist).execute().close(); - System.out.println("Successfully posted count to the CloudList!"); - } catch (IOException e) { - e.printStackTrace(); - } - // Arcane Bot Center Request arcane = new Request.Builder() diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index bda82bd..8d5f954 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -98,6 +98,10 @@ commands.misc.code.success.description = Diese Nachricht enthält einige Informa commands.misc.code.error.title = Code nicht gefunden commands.misc.code.error.description = Ich kann den angegebenen Einladungscode nicht finden. commands.misc.code.help.description = Shows information about a invite code. +commands.misc.moveall.success.title = Successfully moved +commands.misc.moveall.success.description = I successfully moved %extra% members. Have fun\! +commands.misc.moveall.help.description = Moves all users in the source channel to the target channel. +commands.misc.corona.help.description = Show the newest stats about COVID-19 commands.moderation.ban.success.title = Erfolgreich gebannt commands.moderation.ban.success.description = Ich habe %extra% erfolgreich gebannt diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 01d2f6e..4ae304a 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -98,6 +98,16 @@ commands.misc.code.success.description = This message contains some information commands.misc.code.error.title = Code not found commands.misc.code.error.description = I can't find the specified invite code. commands.misc.code.help.description = Shows information about a invite code. +commands.misc.moveall.success.title = Successfully moved +commands.misc.moveall.success.description = I successfully moved %extra% members. Have fun\! +commands.misc.moveall.error.equals.title = Not twice +commands.misc.moveall.error.equals.description = The first voice channel equals the second. You have to specify two different voice channels. +commands.misc.moveall.error.source.int.title = Invalid ID +commands.misc.moveall.error.source.int.description = You didn't specified a ID as the source channel. +commands.misc.moveall.error.target.int.title = Invalid ID +commands.misc.moveall.error.target.int.description = You didn't specified a ID as the target channel. +commands.misc.moveall.help.description = Moves all users in the source channel to the target channel. +commands.misc.corona.help.description = Show the newest stats about COVID-19 commands.moderation.ban.success.title = Successfully banned commands.moderation.ban.success.description = I successfully baned %extra% @@ -266,7 +276,7 @@ commands.music.volume.help.description = Change the volume of the music. commands.music.pause.success.title = Successfully paused commands.music.pause.success.description = I successfully paused the played song. commands.music.pause.error.paused.title = Already paused -commands.music.pause.error.paused.description = The song is already paused. +commands.music.pause.error.paused.description = The song is already paused. You can continue playing it with %extra%play commands.music.pause.error.connected.title = No channel commands.music.pause.error.connected.description = You have to be in the same voice channel as the bot to pause the song. commands.music.pause.help.description = Pause the playing song. diff --git a/src/main/resources/Translations/Translations_es.properties b/src/main/resources/Translations/Translations_es.properties index 01d2f6e..1f07242 100644 --- a/src/main/resources/Translations/Translations_es.properties +++ b/src/main/resources/Translations/Translations_es.properties @@ -98,6 +98,10 @@ commands.misc.code.success.description = This message contains some information commands.misc.code.error.title = Code not found commands.misc.code.error.description = I can't find the specified invite code. commands.misc.code.help.description = Shows information about a invite code. +commands.misc.moveall.success.title = Successfully moved +commands.misc.moveall.success.description = I successfully moved %extra% members. Have fun\! +commands.misc.moveall.help.description = Moves all users in the source channel to the target channel. +commands.misc.corona.help.description = Show the newest stats about COVID-19 commands.moderation.ban.success.title = Successfully banned commands.moderation.ban.success.description = I successfully baned %extra% diff --git a/src/main/resources/Translations/Translations_fr.properties b/src/main/resources/Translations/Translations_fr.properties index 01d2f6e..1f07242 100644 --- a/src/main/resources/Translations/Translations_fr.properties +++ b/src/main/resources/Translations/Translations_fr.properties @@ -98,6 +98,10 @@ commands.misc.code.success.description = This message contains some information commands.misc.code.error.title = Code not found commands.misc.code.error.description = I can't find the specified invite code. commands.misc.code.help.description = Shows information about a invite code. +commands.misc.moveall.success.title = Successfully moved +commands.misc.moveall.success.description = I successfully moved %extra% members. Have fun\! +commands.misc.moveall.help.description = Moves all users in the source channel to the target channel. +commands.misc.corona.help.description = Show the newest stats about COVID-19 commands.moderation.ban.success.title = Successfully banned commands.moderation.ban.success.description = I successfully baned %extra% diff --git a/src/main/resources/Translations/Translations_ru.properties b/src/main/resources/Translations/Translations_ru.properties index 01d2f6e..1f07242 100644 --- a/src/main/resources/Translations/Translations_ru.properties +++ b/src/main/resources/Translations/Translations_ru.properties @@ -98,6 +98,10 @@ commands.misc.code.success.description = This message contains some information commands.misc.code.error.title = Code not found commands.misc.code.error.description = I can't find the specified invite code. commands.misc.code.help.description = Shows information about a invite code. +commands.misc.moveall.success.title = Successfully moved +commands.misc.moveall.success.description = I successfully moved %extra% members. Have fun\! +commands.misc.moveall.help.description = Moves all users in the source channel to the target channel. +commands.misc.corona.help.description = Show the newest stats about COVID-19 commands.moderation.ban.success.title = Successfully banned commands.moderation.ban.success.description = I successfully baned %extra% diff --git a/src/main/resources/Translations/Translations_tr.properties b/src/main/resources/Translations/Translations_tr.properties index 01d2f6e..1f07242 100644 --- a/src/main/resources/Translations/Translations_tr.properties +++ b/src/main/resources/Translations/Translations_tr.properties @@ -98,6 +98,10 @@ commands.misc.code.success.description = This message contains some information commands.misc.code.error.title = Code not found commands.misc.code.error.description = I can't find the specified invite code. commands.misc.code.help.description = Shows information about a invite code. +commands.misc.moveall.success.title = Successfully moved +commands.misc.moveall.success.description = I successfully moved %extra% members. Have fun\! +commands.misc.moveall.help.description = Moves all users in the source channel to the target channel. +commands.misc.corona.help.description = Show the newest stats about COVID-19 commands.moderation.ban.success.title = Successfully banned commands.moderation.ban.success.description = I successfully baned %extra% diff --git a/src/main/resources/Translations/Translations_zh.properties b/src/main/resources/Translations/Translations_zh.properties index 01d2f6e..1f07242 100644 --- a/src/main/resources/Translations/Translations_zh.properties +++ b/src/main/resources/Translations/Translations_zh.properties @@ -98,6 +98,10 @@ commands.misc.code.success.description = This message contains some information commands.misc.code.error.title = Code not found commands.misc.code.error.description = I can't find the specified invite code. commands.misc.code.help.description = Shows information about a invite code. +commands.misc.moveall.success.title = Successfully moved +commands.misc.moveall.success.description = I successfully moved %extra% members. Have fun\! +commands.misc.moveall.help.description = Moves all users in the source channel to the target channel. +commands.misc.corona.help.description = Show the newest stats about COVID-19 commands.moderation.ban.success.title = Successfully banned commands.moderation.ban.success.description = I successfully baned %extra%