Merge remote-tracking branch 'origin/master' into hax-dev

This commit is contained in:
Hax 2020-01-28 14:21:32 +01:00
commit 9940454f7e
35 changed files with 242 additions and 200 deletions

View file

@ -5,7 +5,7 @@
<groupId>Hadder</groupId>
<artifactId>Hadder</artifactId>
<version>0.1-BETA</version>
<version>1.0.0</version>
<name>Hadder</name>
@ -27,7 +27,7 @@
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>4.1.0_99</version>
<version>4.1.1_101</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
@ -52,7 +52,7 @@
<dependency>
<groupId>org.kohsuke</groupId>
<artifactId>github-api</artifactId>
<version>1.102</version>
<version>1.103</version>
</dependency>
<dependency>
<groupId>com.sedmelluq</groupId>

View file

@ -48,19 +48,19 @@ public class RethinkServer {
this.rethink = rethink;
}
public String getAccept_emote() {
public String getAcceptEmote() {
return accept_emote;
}
public void setAccept_emote(String accept_emote) {
public void setAcceptEmote(String accept_emote) {
this.accept_emote = accept_emote;
}
public String getDecline_emote() {
public String getDeclineEmote() {
return decline_emote;
}
public void setDecline_emote(String decline_emote) {
public void setDeclineEmote(String decline_emote) {
this.decline_emote = decline_emote;
}
@ -68,27 +68,27 @@ public class RethinkServer {
return id;
}
public boolean isInvite_detect() {
public boolean isInviteDetect() {
return invite_detect;
}
public void setInvite_detect(boolean invite_detect) {
public void setInviteDetect(boolean invite_detect) {
this.invite_detect = invite_detect;
}
public String getMessage_id() {
public String getMessageID() {
return message_id;
}
public void setMessage_id(String message_id) {
public void setMessageID(String message_id) {
this.message_id = message_id;
}
public String getNeededstars() {
public String getNeededStars() {
return neededstars;
}
public void setNeededstars(String neededstars) {
public void setNeededStars(String neededstars) {
this.neededstars = neededstars;
}
@ -100,11 +100,11 @@ public class RethinkServer {
this.prefix = prefix;
}
public String getRole_id() {
public String getRoleID() {
return role_id;
}
public void setRole_id(String role_id) {
public void setRoleID(String role_id) {
this.role_id = role_id;
}
@ -117,10 +117,10 @@ public class RethinkServer {
}
public void updateRules(String message_id, String role_id, String accept_emote, String decline_emote) {
this.setMessage_id(message_id);
this.setRole_id(role_id);
this.setAccept_emote(accept_emote);
this.setDecline_emote(decline_emote);
this.setMessageID(message_id);
this.setRoleID(role_id);
this.setAcceptEmote(accept_emote);
this.setDeclineEmote(decline_emote);
}
public void push() {

View file

@ -130,6 +130,8 @@ public class AudioManager {
});
}
/*
TODO: DJ integration
public boolean isDj(Member member) {
return member.getRoles().stream().anyMatch(r -> r.getName().equals("DJ"));
}
@ -137,22 +139,18 @@ public class AudioManager {
public boolean isCurrentDj(Member member) {
return getTrackManager(member.getGuild()).getTrackInfo(getPlayer(member.getGuild()).getPlayingTrack()).getAuthor().equals(member);
}
*/
public void forceSkipTrack(CommandEvent event) {
getPlayer(event.getGuild()).stopTrack();
}
public String getTimestamp(long milis) {
long seconds = milis / 1000;
long hours = Math.floorDiv(seconds, 3600);
seconds = seconds - (hours * 3600);
long mins = Math.floorDiv(seconds, 60);
seconds = seconds - (mins * 60);
return (hours == 0 ? "" : hours + ":") + String.format("%02d", mins) + ":" + String.format("%02d", seconds);
}
public String getOrNull(String s) {
return s.isEmpty() ? "N/A" : s;
public String getTimestamp(long m) {
long s = m / 1000;
long hours = Math.floorDiv(s, 3600);
s = s - (hours * 3600);
long minutes = Math.floorDiv(s, 60);
s = s - (minutes * 60);
return (hours == 0 ? "" : hours + ":") + String.format("%02d", minutes) + ":" + String.format("%02d", s);
}
}

View file

@ -32,7 +32,7 @@ public class TrackManager extends AudioEventAdapter {
private final AudioPlayer player;
private final AudioManager manager;
private final Queue<AudioInfo> queue;
AudioTrack lastTrack;
private AudioTrack lastTrack;
private boolean loop = false;
public TrackManager(AudioPlayer player, AudioManager manager) {

View file

@ -28,7 +28,7 @@ public class EditRulesCommand implements Command {
@Override
public void executed(String[] args, CommandEvent e) {
if (e.getRethinkServer().getMessage_id().length() == 18) {
if (e.getRethinkServer().getMessageID().length() == 18) {
e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
"commands.moderation.editrules.message.title",
"commands.moderation.editrules.message.description").build()).queue();
@ -74,7 +74,7 @@ public class EditRulesCommand implements Command {
public void checkChannel(CommandEvent e, String rules, TextChannel channel) {
try {
channel.retrieveMessageById(e.getRethinkServer().getMessage_id()).queue();
channel.retrieveMessageById(e.getRethinkServer().getMessageID()).queue();
setRules(e, rules, channel);
e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
"commands.moderation.editrules.success.title",
@ -87,7 +87,7 @@ public class EditRulesCommand implements Command {
}
public void setRules(CommandEvent e, String rules, TextChannel channel) {
channel.retrieveMessageById(e.getRethinkServer().getMessage_id()).complete().editMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO)
channel.retrieveMessageById(e.getRethinkServer().getMessageID()).complete().editMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO)
.setTitle("Rules")
.setDescription(rules)
.build()).queue();

View file

@ -31,8 +31,8 @@ public class InviteDetectCommand implements Command {
String opinion = args[0].toLowerCase();
switch (opinion) {
case "on":
if (!e.getRethinkServer().isInvite_detect()) {
e.getRethinkServer().setInvite_detect(true);
if (!e.getRethinkServer().isInviteDetect()) {
e.getRethinkServer().setInviteDetect(true);
e.getTextChannel().sendMessage(
e.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO,
@ -50,8 +50,8 @@ public class InviteDetectCommand implements Command {
break;
case "off":
if (e.getRethinkServer().isInvite_detect()) {
e.getRethinkServer().setInvite_detect(false);
if (e.getRethinkServer().isInviteDetect()) {
e.getRethinkServer().setInviteDetect(false);
e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO,
"commands.moderation.invitedetect.deactivate.success.title",

View file

@ -86,6 +86,10 @@ 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;
TODO: Publish when JDA v4.2.0 is released*/
default:
e.getTextChannel().sendMessage(
e.getMessageEditor().getMessage(
@ -97,7 +101,6 @@ public class RegionChangeCommand implements Command {
break;
}
//TODO: Maybe South Korea. Check the geo restricted discussion
} else
e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
} else e.getTextChannel().sendMessage(

View file

@ -56,13 +56,15 @@ public class RulesCommand implements Command {
try {
TextChannel channel = e1.getGuild().getTextChannelsByName(e1.getMessage().getContentRaw(), true).get(0);
createRules(e, e1, channel);
} catch (Exception ex) {
} catch (NullPointerException ex) {
e.getTextChannel().sendMessage(
e.getMessageEditor().getMessage(
MessageEditor.MessageType.ERROR,
"commands.moderation.rules.channel.error.title",
"commands.moderation.rules.channel.error.description")
.build()).queue();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}, e.getJDA(), e.getAuthor());

View file

@ -45,7 +45,7 @@ public class StarboardCommand implements Command {
}
if (args.length==2) {
e.getRethinkServer().setNeededstars(args[1]);
e.getRethinkServer().setNeededStars(args[1]);
}
e.getRethinkServer().push();

View file

@ -1,5 +1,17 @@
/*
* @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.music;

View file

@ -10,31 +10,23 @@ import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import net.dv8tion.jda.api.audio.AudioReceiveHandler;
import net.dv8tion.jda.api.audio.AudioSendHandler;
import net.dv8tion.jda.api.audio.CombinedAudio;
import net.dv8tion.jda.api.audio.UserAudio;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.managers.AudioManager;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.sound.sampled.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;
import java.util.Queue;
import java.util.UUID;
import java.util.concurrent.ConcurrentLinkedQueue;
@Perms(Perm.BOT_OWNER)
public class RecordCommand implements Command {
private final HashMap<String, Queue<byte[]>> queue = new HashMap<String, Queue<byte[]>>();
private final HashMap<String, Queue<byte[]>> queue = new HashMap<>();
@Override
public void executed(String[] args, CommandEvent event) {

View file

@ -19,14 +19,14 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class AnalCommand implements Command {
@Override
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("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)

View file

@ -19,7 +19,7 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class BDSMCommand implements Command {
@ -27,7 +27,7 @@ public class BDSMCommand implements Command {
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("https://api.nekos.dev/api/v3/images/nsfw/img/bdsm_lewd");
String url = Http.getNSFW("https://api.nekos.dev/api/v3/images/nsfw/img/bdsm_lewd");
e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO)
.setAuthor(e.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url)

View file

@ -19,7 +19,7 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class BlowjobCommand implements Command {
@ -27,7 +27,7 @@ public class BlowjobCommand implements Command {
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("https://nekos.life/api/v2/img/blowjob");
String url = Http.getNSFW("https://nekos.life/api/v2/img/blowjob");
e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO)
.setAuthor(e.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url)

View file

@ -19,7 +19,7 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class BoobsCommand implements Command {
@ -27,7 +27,7 @@ public class BoobsCommand implements Command {
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("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)

View file

@ -19,7 +19,7 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class CumCommand implements Command {
@ -27,7 +27,7 @@ public class CumCommand implements Command {
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("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)

View file

@ -19,7 +19,7 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class EroticCommand implements Command {
@ -27,7 +27,7 @@ public class EroticCommand implements Command {
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("https://nekos.life/api/v2/img/erok");
String url = Http.getNSFW("https://nekos.life/api/v2/img/erok");
e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO)
.setAuthor(e.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url)

View file

@ -19,7 +19,7 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class FeetCommand implements Command {
@ -27,7 +27,7 @@ public class FeetCommand implements Command {
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("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)

View file

@ -19,7 +19,7 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class FingeringCommand implements Command {
@ -27,7 +27,7 @@ public class FingeringCommand implements Command {
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("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)

View file

@ -19,7 +19,7 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class LickingCommand implements Command {
@ -27,7 +27,7 @@ public class LickingCommand implements Command {
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("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)

View file

@ -19,7 +19,7 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class PornCommand implements Command {
@ -27,7 +27,7 @@ public class PornCommand implements Command {
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("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)

View file

@ -19,7 +19,7 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class PussyCommand implements Command {
@ -27,7 +27,7 @@ public class PussyCommand implements Command {
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("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)

View file

@ -19,7 +19,7 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class RandomPornCommand implements Command {
@ -27,7 +27,7 @@ public class RandomPornCommand implements Command {
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("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)
@ -38,8 +38,7 @@ public class RandomPornCommand implements Command {
} else {
e.getTextChannel()
.sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.NO_NSFW).build())
.queue();
.sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.NO_NSFW).build()).queue();
}
}

View file

@ -19,7 +19,7 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class SoloCommand implements Command {
@ -27,7 +27,7 @@ public class SoloCommand implements Command {
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("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)

View file

@ -19,7 +19,7 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class SpankCommand implements Command {
@ -27,7 +27,7 @@ public class SpankCommand implements Command {
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("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)
@ -36,9 +36,7 @@ public class SpankCommand implements Command {
.build()).queue();
} else {
e.getTextChannel()
.sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.NO_NSFW).build())
.queue();
e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.NO_NSFW).build()).queue();
}
}

View file

@ -19,7 +19,7 @@ package com.bbn.hadder.commands.nsfw;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import com.bbn.hadder.utils.Request;
import com.bbn.hadder.utils.Http;
public class TransCommand implements Command {
@ -27,7 +27,7 @@ public class TransCommand implements Command {
public void executed(String[] args, CommandEvent e) {
if (e.getTextChannel().isNSFW()) {
String url = Request.get("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)
@ -37,8 +37,7 @@ public class TransCommand implements Command {
} else {
e.getTextChannel()
.sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.NO_NSFW).build())
.queue();
.sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.NO_NSFW).build()).queue();
}
}

View file

@ -40,7 +40,6 @@ public class BlacklistCommand implements Command {
switch (args[0].toLowerCase()) {
case "add":
if (args.length == 3) {
Member member = e.getMessage().getMentionedMembers().get(0);
String blacklisted = e.getRethinkUser().getBlacklisted();
List<String> commands = new ArrayList<>();
if (!"none".equals(blacklisted)) commands.addAll(Arrays.asList(blacklisted.split(",")));
@ -61,7 +60,6 @@ public class BlacklistCommand implements Command {
case "remove":
if (args.length == 3) {
Member member = e.getMessage().getMentionedMembers().get(0);
String blacklisted = e.getRethinkUser().getBlacklisted();
List<String> commands = new ArrayList<>();
if (!"none".equals(blacklisted)) commands.addAll(Arrays.asList(blacklisted.split(",")));

View file

@ -19,6 +19,7 @@ package com.bbn.hadder.commands.settings;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
public class LanguageCommand implements Command {
@ -47,6 +48,12 @@ public class LanguageCommand implements Command {
case "zh":
setLanguage("zh", "Chinese", e);
break;
default:
e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
"List",
"`de`, `en`, `es`, `fr`, `ru`, `tr`, `zh`")
.build()).queue();
break;
}
} else {
e.getHelpCommand().sendHelp(this, e);
@ -60,8 +67,7 @@ public class LanguageCommand implements Command {
e.getMessageEditor()
.getMessage(MessageEditor.MessageType.INFO, "commands.settings.language.success.title",
"", "commands.settings.language.success.description", language)
.build())
.queue();
.build()).queue();
e.getRethinkUser().push();
}

View file

@ -21,10 +21,15 @@ import com.bbn.hadder.RethinkServer;
import com.bbn.hadder.RethinkUser;
import com.bbn.hadder.audio.AudioManager;
import com.bbn.hadder.core.CommandHandler;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import java.awt.*;
import java.time.Instant;
public class CommandListener extends ListenerAdapter {
private Rethink rethink;
@ -38,24 +43,44 @@ public class CommandListener extends ListenerAdapter {
}
@Override
public void onMessageReceived(MessageReceivedEvent event) {
if (event.isFromType(ChannelType.TEXT) && !event.getAuthor().isBot()) {
RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", event.getAuthor().getId()), rethink);
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
public void onMessageReceived(MessageReceivedEvent e) {
if (e.isFromType(ChannelType.TEXT) && !e.getAuthor().isBot()) {
if (e.getGuild().getSelfMember().hasPermission(Permission.MESSAGE_WRITE)) {
if (e.getGuild().getSelfMember().hasPermission(Permission.MESSAGE_EMBED_LINKS)) {
RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", e.getAuthor().getId()), rethink);
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", e.getGuild().getId()), rethink);
rethinkUser.push();
rethinkServer.push();
String[] prefixes = {
rethinkUser.getPrefix(), rethinkServer.getPrefix(),
event.getGuild().getSelfMember().getAsMention() + " ", event.getGuild().getSelfMember().getAsMention(),
event.getGuild().getSelfMember().getAsMention().replace("@", "@!") + " ",
event.getGuild().getSelfMember().getAsMention().replace("@", "@!")
e.getGuild().getSelfMember().getAsMention() + " ", e.getGuild().getSelfMember().getAsMention(),
e.getGuild().getSelfMember().getAsMention().replace("@", "@!") + " ",
e.getGuild().getSelfMember().getAsMention().replace("@", "@!")
};
for (String prefix : prefixes) {
if (event.getMessage().getContentRaw().startsWith(prefix)) {
handler.handle(event, rethink, prefix, audioManager, rethinkUser, rethinkServer);
if (e.getMessage().getContentRaw().startsWith(prefix)) {
handler.handle(e, rethink, prefix, audioManager, rethinkUser, rethinkServer);
return;
}
}
} else {
e.getAuthor().openPrivateChannel().complete().sendMessage(new EmbedBuilder()
.setTitle("No permission")
.setDescription("I need the `MESSAGE EMBED LINKS` permission in order to work!")
.setColor(Color.RED)
.setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png")
.setTimestamp(Instant.now())
.build()).queue();
}
} else {
e.getAuthor().openPrivateChannel().complete().sendMessage(new EmbedBuilder()
.setTitle("No permission")
.setDescription("I need the `MESSAGE WRITE` permission in order to work!")
.setColor(Color.RED)
.setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png")
.setTimestamp(Instant.now())
.build()).queue();
}
}
}
}

View file

@ -40,13 +40,13 @@ public class InviteLinkListener extends ListenerAdapter {
}
@Override
public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
if (event.isFromType(ChannelType.TEXT)) {
if (event.getMessage().getContentRaw().contains("discord.gg/") && (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect())) {
checkInvite(event.getMessage(), "discord.gg/");
} else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect())) {
checkInvite(event.getMessage(), "discordapp.com/invite/");
public void onMessageReceived(@Nonnull MessageReceivedEvent e) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", e.getGuild().getId()), rethink);
if (e.isFromType(ChannelType.TEXT)) {
if (e.getMessage().getContentRaw().contains("discord.gg/") && (!e.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInviteDetect())) {
checkInvite(e.getMessage(), "discord.gg/");
} else if (e.getMessage().getContentRaw().contains("discordapp.com/invite") && (!e.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInviteDetect())) {
checkInvite(e.getMessage(), "discordapp.com/invite/");
}
}
}
@ -68,13 +68,13 @@ public class InviteLinkListener extends ListenerAdapter {
}
@Override
public void onMessageUpdate(@Nonnull MessageUpdateEvent event) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
if (event.isFromType(ChannelType.TEXT)) {
if (event.getMessage().getContentRaw().contains("discord.gg/") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect()) {
checkInvite(event.getMessage(), "discord.gg/");
} else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect()) {
checkInvite(event.getMessage(), "discordapp.com/invite/");
public void onMessageUpdate(@Nonnull MessageUpdateEvent e) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", e.getGuild().getId()), rethink);
if (e.isFromType(ChannelType.TEXT)) {
if (e.getMessage().getContentRaw().contains("discord.gg/") && !e.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInviteDetect()) {
checkInvite(e.getMessage(), "discord.gg/");
} else if (e.getMessage().getContentRaw().contains("discordapp.com/invite") && !e.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInviteDetect()) {
checkInvite(e.getMessage(), "discordapp.com/invite/");
}
}
}

View file

@ -36,24 +36,24 @@ public class MentionListener extends ListenerAdapter {
}
@Override
public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
if (!event.getAuthor().isBot()) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", event.getAuthor().getId()), rethink);
if (event.isFromType(ChannelType.TEXT) && (event.getMessage().getContentRaw().equals(event.getGuild().getSelfMember().getAsMention()) ||
event.getMessage().getContentRaw().equals(event.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) {
event.getChannel().sendMessage(new MessageEditor(rethinkUser, event.getAuthor()).getMessage(MessageEditor.MessageType.INFO)
public void onMessageReceived(@Nonnull MessageReceivedEvent e) {
if (!e.getAuthor().isBot()) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", e.getGuild().getId()), rethink);
RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", e.getAuthor().getId()), rethink);
if (e.isFromType(ChannelType.TEXT) && (e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention()) ||
e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) {
e.getChannel().sendMessage(new MessageEditor(rethinkUser, e.getAuthor()).getMessage(MessageEditor.MessageType.INFO)
.setTitle("Hello I'm Hadder.")
.setAuthor(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl(), event.getJDA().getSelfUser().getAvatarUrl())
.addField("Users", String.valueOf(event.getJDA().getUsers().size()), false)
.addField("Guilds", String.valueOf(event.getJDA().getGuilds().size()), false)
.setAuthor(e.getJDA().getSelfUser().getName(), e.getJDA().getSelfUser().getAvatarUrl(), e.getJDA().getSelfUser().getAvatarUrl())
.addField("Users", String.valueOf(e.getJDA().getUsers().size()), false)
.addField("Guilds", String.valueOf(e.getJDA().getGuilds().size()), false)
.addField("Prefix (User)", rethinkUser.getPrefix(), false)
.addField("Prefix (Guild)", rethinkServer.getPrefix(), false)
.build()).queue();
} else if (event.getMessage().getContentRaw().equalsIgnoreCase("@someone")) {
int member = new Random().nextInt(event.getGuild().getMembers().size() - 1);
if (member > 0 && member < event.getGuild().getMembers().size()) {
event.getChannel().sendMessage(event.getGuild().getMembers().get(member).getAsMention() + " (Executed by: " + event.getAuthor().getAsTag() + ")").queue();
} else if (e.getMessage().getContentRaw().equalsIgnoreCase("@someone")) {
int member = new Random().nextInt(e.getGuild().getMembers().size() - 1);
if (member > 0 && member < e.getGuild().getMembers().size()) {
e.getChannel().sendMessage(e.getGuild().getMembers().get(member).getAsMention() + " (Executed by: " + e.getAuthor().getAsTag() + ")").queue();
}
}
}

View file

@ -19,11 +19,13 @@ package com.bbn.hadder.listener;
import com.bbn.hadder.Rethink;
import com.bbn.hadder.RethinkUser;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.entities.PrivateChannel;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import java.awt.*;
import java.time.Instant;
public class PrivateMessageListener extends ListenerAdapter {
@ -34,22 +36,30 @@ public class PrivateMessageListener extends ListenerAdapter {
this.rethink = rethink;
}
public void onMessageReceived(MessageReceivedEvent event) {
if (event.isFromType(ChannelType.PRIVATE) && !event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) {
PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete();
PrivateChannel Hax = event.getJDA().getUserById("261083609148948488").openPrivateChannel().complete();
public void onMessageReceived(MessageReceivedEvent e) {
if (e.isFromType(ChannelType.PRIVATE) && !e.getAuthor().getId().equals(e.getJDA().getSelfUser().getId())) {
PrivateChannel Skidder = e.getJDA().getUserById("477141528981012511").openPrivateChannel().complete();
PrivateChannel Hax = e.getJDA().getUserById("261083609148948488").openPrivateChannel().complete();
RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", "261083609148948488"), rethink);
Skidder.sendMessage(new MessageEditor(rethinkUser, event.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO)
.setTitle("New DM by " + event.getAuthor().getAsTag())
.setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl())
.setDescription(event.getMessage().getContentRaw())
Skidder.sendMessage(new MessageEditor(rethinkUser, e.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO)
.setTitle("New DM by " + e.getAuthor().getAsTag())
.setAuthor(e.getAuthor().getName(), e.getAuthor().getAvatarUrl(), e.getAuthor().getAvatarUrl())
.setDescription(e.getMessage().getContentRaw())
.setTimestamp(Instant.now())
.build()).queue();
Hax.sendMessage(new MessageEditor(rethinkUser, event.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO)
.setTitle("New DM by " + event.getAuthor().getAsTag())
.setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl())
.setDescription(event.getMessage().getContentRaw())
Hax.sendMessage(new MessageEditor(rethinkUser, e.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO)
.setTitle("New DM by " + e.getAuthor().getAsTag())
.setAuthor(e.getAuthor().getName(), e.getAuthor().getAvatarUrl(), e.getAuthor().getAvatarUrl())
.setDescription(e.getMessage().getContentRaw())
.setTimestamp(Instant.now())
.build()).queue();
e.getChannel().sendMessage(new EmbedBuilder()
.setTitle("No DM support")
.setDescription("You have to execute your commands on a guild!")
.setColor(Color.RED)
.setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png")
.setTimestamp(Instant.now())
.build()).queue();
}

View file

@ -31,43 +31,43 @@ public class RulesListener extends ListenerAdapter {
}
@Override
public void onMessageReactionAdd(MessageReactionAddEvent event) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
if (event.getMessageId().equals(rethinkServer.getMessage_id()) && !event.getMember().getUser().isBot()) {
if (event.getReactionEmote().isEmote()) {
if (rethinkServer.getAccept_emote().equals(event.getReactionEmote().getId())) {
addRole(event);
} else if (rethinkServer.getDecline_emote().equals(event.getReactionEmote().getId())) {
event.getReaction().removeReaction(event.getUser()).queue();
if (event.getGuild().getSelfMember().canInteract(event.getMember())) {
event.getMember().kick().reason("Declined the rules");
public void onMessageReactionAdd(MessageReactionAddEvent e) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", e.getGuild().getId()), rethink);
if (e.getMessageId().equals(rethinkServer.getMessageID()) && !e.getUser().isBot()) {
if (e.getReactionEmote().isEmote()) {
if (rethinkServer.getAcceptEmote().equals(e.getReactionEmote().getId())) {
addRole(e);
} else if (rethinkServer.getDeclineEmote().equals(e.getReactionEmote().getId())) {
e.getReaction().removeReaction(e.getUser()).queue();
if (e.getGuild().getSelfMember().canInteract(e.getMember())) {
e.getMember().kick().reason("Declined the rules");
}
}
} else if (event.getReactionEmote().isEmoji()) {
if (rethinkServer.getAccept_emote().equals(event.getReactionEmote().getEmoji())) {
addRole(event);
} else if (rethinkServer.getDecline_emote().equals(event.getReactionEmote().getEmoji())) {
event.getReaction().removeReaction(event.getUser()).queue();
if (event.getGuild().getSelfMember().canInteract(event.getMember())) {
event.getMember().kick().reason("Declined the rules");
} else if (e.getReactionEmote().isEmoji()) {
if (rethinkServer.getAcceptEmote().equals(e.getReactionEmote().getEmoji())) {
addRole(e);
} else if (rethinkServer.getDeclineEmote().equals(e.getReactionEmote().getEmoji())) {
e.getReaction().removeReaction(e.getUser()).queue();
if (e.getGuild().getSelfMember().canInteract(e.getMember())) {
e.getMember().kick().reason("Declined the rules");
}
}
}
}
}
private void addRole(MessageReactionAddEvent event) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
if (event.getMember().getRoles().contains(event.getGuild().getRoleById(rethinkServer.getMessage_id()))) {
event.getGuild().removeRoleFromMember(event.getMember(), event.getGuild().getRoleById(rethinkServer.getMessage_id())).reason("Accepted rules").queue();
} else event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethinkServer.getRole_id())).reason("Accepted rules").queue();
private void addRole(MessageReactionAddEvent e) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", e.getGuild().getId()), rethink);
if (e.getMember().getRoles().contains(e.getGuild().getRoleById(rethinkServer.getRoleID()))) {
e.getGuild().removeRoleFromMember(e.getMember(), e.getGuild().getRoleById(rethinkServer.getRoleID())).reason("Accepted rules").queue();
} else e.getGuild().addRoleToMember(e.getMember(), e.getGuild().getRoleById(rethinkServer.getRoleID())).reason("Accepted rules").queue();
}
@Override
public void onMessageReactionRemove(MessageReactionRemoveEvent event) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
if (event.getMessageId().equals(rethinkServer.getMessage_id()) && !event.getMember().getUser().isBot()) {
event.getGuild().removeRoleFromMember(event.getMember(), event.getGuild().getRoleById(rethinkServer.getRole_id())).reason("Withdrawal of the acceptance of the rules").queue();
public void onMessageReactionRemove(MessageReactionRemoveEvent e) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", e.getGuild().getId()), rethink);
if (e.getMessageId().equals(rethinkServer.getMessageID()) && !e.getUser().isBot()) {
e.getGuild().removeRoleFromMember(e.getMember(), e.getGuild().getRoleById(rethinkServer.getRoleID())).reason("Withdrawal of the acceptance of the rules").queue();
}
}
}

View file

@ -60,7 +60,7 @@ public class StarboardListener extends ListenerAdapter {
}
}
if (Integer.parseInt(rethinkServer.getNeededstars()) <= stars) {
if (Integer.parseInt(rethinkServer.getNeededStars()) <= stars) {
e.getGuild().getTextChannelById(rethinkServer.getStarboard())
.sendMessage(new MessageBuilder()
.setContent("⭐ 1" + " " + e.getTextChannel().getAsMention())
@ -94,7 +94,7 @@ public class StarboardListener extends ListenerAdapter {
.retrieveMessageById(rethink.getStarboardMessage(e.getMessageId())).queue(
msg2 -> {
if (Integer.parseInt(rethinkServer.getNeededstars()) <= finalStars) {
if (Integer.parseInt(rethinkServer.getNeededStars()) <= finalStars) {
msg2.editMessage(new MessageBuilder()
.setContent("" + finalStars + " " + e.getTextChannel().getAsMention())
.setEmbed(

View file

@ -22,9 +22,9 @@ import org.json.JSONObject;
import java.io.IOException;
public class Request {
public class Http {
public static String get(String url) {
public static String getNSFW(String url) {
OkHttpClient caller = new OkHttpClient();
okhttp3.Request request = new okhttp3.Request.Builder().url(url).build();