Skip to content

Commit cfaa1fc

Browse files
committed
updated mod pack
1 parent b5dbdd7 commit cfaa1fc

File tree

10 files changed

+231
-88
lines changed

10 files changed

+231
-88
lines changed

src/main/java/tech/goodquestion/lembot/command/impl/ParserCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public String getName() {
4848

4949
@Override
5050
public String getDescription() {
51-
return "`p`: Parst den Input in DateTime";
51+
return "`p <input>`: Parst den Input in DateTime";
5252
}
5353

5454
@Override

src/main/java/tech/goodquestion/lembot/command/impl/moderation/BanCommand.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ public final class BanCommand extends UserBanishment {
2323
public void banishUser(final User toBanish, final Sanction sanction, final Message originMessage) {
2424

2525
final String performedSanction = SanctionType.BAN.getVerbalizedSanctionTyp();
26-
final SanctionType sanctionType = SanctionType.BAN;
2726

2827
final EmbedBuilder embedBuilder = new EmbedBuilder();
2928

@@ -40,21 +39,21 @@ public void banishUser(final User toBanish, final Sanction sanction, final Messa
4039

4140
Helper.sendEmbed(embedBuilder,originMessage,false);
4241

43-
notifyBannedUser(toBanish,sanctionType, performedSanction, sanction.reason, Objects.requireNonNull(originMessage.getMember()));
42+
notifyBannedUser(toBanish, performedSanction, sanction.reason, Objects.requireNonNull(originMessage.getMember()));
4443

45-
originMessage.getGuild().ban(toBanish,0, sanction.reason).complete();
44+
Config.getInstance().getGuild().ban(toBanish,0,sanction.reason).queue();
4645

4746
CommandHelper.logUserBan(sanction);
4847
}
4948

5049

51-
private void notifyBannedUser(final User sanctionedUser, final SanctionType sanctionType, final String performedSanction, final String reason, final Member sanctionAuthor) {
50+
private void notifyBannedUser(final User sanctionedUser, final String performedSanction, final String reason, final Member sanctionAuthor) {
5251

5352
final EmbedBuilder embedBuilder = new EmbedBuilder();
5453

5554
try {
5655

57-
Helper.createEmbed(embedBuilder, ":no_entry: " + sanctionType, "Du wurdest auf **GoodQuestion** " + " **" + performedSanction + "**", EmbedColorHelper.BAN);
56+
Helper.createEmbed(embedBuilder, ":no_entry: " + SanctionType.BAN, "Du wurdest auf **GoodQuestion** " + " **" + performedSanction + "**", EmbedColorHelper.BAN);
5857
embedBuilder.addField("Dauer", "permanent", true);
5958
embedBuilder.addField("Gebannt von", sanctionAuthor.getAsMention(), true);
6059
embedBuilder.addField("Grund", "```" + reason + "```", false);

src/main/java/tech/goodquestion/lembot/command/impl/moderation/ClearCommand.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void dispatch(final Message message, final TextChannel channel, final Mem
3131
embedBuilder.setColor(Color.decode(EmbedColorHelper.SUCCESS));
3232

3333
channel.sendMessageEmbeds(embedBuilder.build())
34-
.queue( m -> m.delete().queueAfter(3, TimeUnit.HOURS));
34+
.queue( m -> m.delete().queueAfter(1, TimeUnit.HOURS));
3535

3636
} catch (IllegalArgumentException illegalArgumentException) {
3737

src/main/java/tech/goodquestion/lembot/command/impl/moderation/MuteCommand.java

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,30 @@ public final class MuteCommand implements IBotCommand {
3131
@Override
3232
public void dispatch(Message message, TextChannel channel, Member sender, String[] args) throws IOException {
3333

34-
if (args.length < 1) return;
34+
if (args.length < 3) {
35+
final EmbedBuilder embedBuilder = new EmbedBuilder();
36+
final String embedDescription = ":x: Gebe eine Dauer und einen Grund an!";
37+
Helper.createEmbed(embedBuilder, "Fehler", embedDescription, EmbedColorHelper.ERROR);
38+
Helper.sendEmbed(embedBuilder, message, true);
39+
return;
40+
}
3541

3642
final EmbedBuilder embedBuilder = new EmbedBuilder();
3743
final String performedSanction = SanctionType.MUTE.getVerbalizedSanctionTyp();
38-
final SanctionType sanctionType = SanctionType.MUTE;
3944

40-
Member sanctionedMember = getMemberFromCommandInput(message, args);
45+
Member sanctionedMember;
46+
try {
47+
48+
sanctionedMember = getMemberFromCommandInput(message, args);
49+
50+
} catch (ErrorResponseException errorResponseException){
51+
52+
final EmbedBuilder embedBuilder1 = new EmbedBuilder();
53+
Helper.createEmbed(embedBuilder1, "Error", ":x: Kein Member gefunden", EmbedColorHelper.ERROR);
54+
Helper.sendEmbed(embedBuilder1, message, true);
55+
return;
56+
57+
}
4158

4259
Sanction sanction = new Sanction();
4360
sanction.author = sender.getUser().getAsTag();
@@ -86,7 +103,7 @@ public void dispatch(Message message, TextChannel channel, Member sender, String
86103

87104
Helper.sendEmbed(embedBuilder, message, false);
88105

89-
notifyMutedUser(sanctionedMember, sanctionType, performedSanction, sanction.reason, sanction.duration, sender);
106+
notifyMutedUser(sanctionedMember, performedSanction, sanction.reason, sanction.duration, sender);
90107

91108
CommandHelper.logMemberMute(sanction);
92109

@@ -97,21 +114,16 @@ public void dispatch(Message message, TextChannel channel, Member sender, String
97114
public void scheduleReminder(final long delay, final TimeUnit timeUnit, Member sanctionedMember) {
98115

99116
final Runnable runnable = () -> {
100-
unmute(sanctionedMember);
117+
101118
notifyStaff(sanctionedMember);
119+
sanctionedMember.getGuild().removeRoleFromMember(sanctionedMember,Config.getInstance().getRoleConfig().getMuteRole()).queue();
120+
102121
};
103122

123+
104124
scheduledExecutorService.schedule(runnable, delay, timeUnit);
105125
}
106126

107-
private void unmute(Member sanctionedMember) {
108-
109-
Objects.requireNonNull(Config.getInstance()
110-
.getGuild()
111-
.getTextChannelById(Config.getInstance().getChannelConfig().getAutoModerationChannel().getIdLong()))
112-
.sendMessage("?unmute " + sanctionedMember.getIdLong())
113-
.queue(message -> message.delete().queueAfter(30, TimeUnit.SECONDS));
114-
}
115127

116128
private void notifyStaff(Member sanctionedMember) {
117129

@@ -121,20 +133,21 @@ private void notifyStaff(Member sanctionedMember) {
121133
embedBuilder.setTitle(" :mute: Member automatisch ungemutet");
122134
embedBuilder.setAuthor(sanctionedMember.getUser().getAsTag(), null, sanctionedMember.getUser().getEffectiveAvatarUrl());
123135
embedBuilder.addField("Ungemuteter Member", sanctionedMember.getAsMention(), true);
136+
embedBuilder.addField("Ungemuteter Member ID", String.valueOf(sanctionedMember.getIdLong()), true);
124137
embedBuilder.addField("Grund", "```Ende der Mutedauer```", false);
125138
embedBuilder.setTimestamp(Instant.now());
126139

127140
Config.getInstance().getChannelConfig().getAutoModerationChannel().sendMessageEmbeds(embedBuilder.build()).queue();
128141
}
129142

130143

131-
private void notifyMutedUser(final Member sanctionedMember, final SanctionType sanctionType, final String performedSanction, final String reason, final String duration, final Member sanctionAuthor) {
144+
private void notifyMutedUser(final Member sanctionedMember, final String performedSanction, final String reason, final String duration, final Member sanctionAuthor) {
132145

133146
final EmbedBuilder embedBuilder = new EmbedBuilder();
134147

135148
try {
136149

137-
Helper.createEmbed(embedBuilder, ":mute: " + sanctionType, "Du wurdest auf **GoodQuestion** " + " **" + performedSanction + "**", EmbedColorHelper.MUTE);
150+
Helper.createEmbed(embedBuilder, ":mute: " + SanctionType.MUTE, "Du wurdest auf **GoodQuestion** " + " **" + performedSanction + "**", EmbedColorHelper.MUTE);
138151
embedBuilder.addField("Dauer", duration, true);
139152
embedBuilder.addField("Gemutet von", sanctionAuthor.getAsMention(), true);
140153
embedBuilder.addField("Grund", "```" + reason + "```", false);
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package tech.goodquestion.lembot.command.impl.moderation;
22

3-
import tech.goodquestion.lembot.command.IBotCommand;
4-
5-
public abstract sealed class RemovalBanishment implements IBotCommand permits UnbanCommand,UnmuteCommand,UnwarnCommand{
6-
3+
import net.dv8tion.jda.api.entities.Message;
74

5+
public interface RemovalBanishment {
86

7+
void removeSanction(Message message, String[] args);
98

109
}
Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,69 @@
11
package tech.goodquestion.lembot.command.impl.moderation;
22

3+
import net.dv8tion.jda.api.EmbedBuilder;
34
import net.dv8tion.jda.api.entities.Member;
45
import net.dv8tion.jda.api.entities.Message;
56
import net.dv8tion.jda.api.entities.TextChannel;
7+
import net.dv8tion.jda.api.entities.User;
68
import tech.goodquestion.lembot.command.IBotCommand;
9+
import tech.goodquestion.lembot.config.Config;
10+
import tech.goodquestion.lembot.library.EmbedColorHelper;
11+
import tech.goodquestion.lembot.library.Helper;
712

13+
import java.awt.*;
814
import java.io.IOException;
15+
import java.time.Instant;
916

10-
public final class UnbanCommand extends RemovalBanishment implements IBotCommand {
17+
public final class UnbanCommand implements IBotCommand, RemovalBanishment {
1118
@Override
1219
public void dispatch(Message message, TextChannel channel, Member sender, String[] args) throws IOException {
1320

1421

22+
if (args.length < 1) return;
23+
24+
removeSanction(message, args);
1525

26+
Member member = MuteCommand.getMemberFromCommandInput(message,args);
27+
28+
final EmbedBuilder embedBuilder = new EmbedBuilder();
29+
embedBuilder.setColor(Color.decode(EmbedColorHelper.SUCCESS));
30+
embedBuilder.setTitle("Bestätigung");
31+
embedBuilder.setAuthor(member.getUser().getAsTag(), null,member.getUser().getEffectiveAvatarUrl());
32+
embedBuilder.setDescription("**" + ":no_entry: Ban rückgängig gemacht" + "**");
33+
embedBuilder.addField("Member",member.getAsMention() , true);
34+
embedBuilder.addField("Rückgängig gemacht von",sender.getAsMention(), true);
35+
embedBuilder.setFooter(sender.getUser().getAsTag(),sender.getEffectiveAvatarUrl());
36+
embedBuilder.setTimestamp(Instant.now());
37+
38+
Helper.sendEmbed(embedBuilder,message,false);
39+
40+
41+
//TODO delete the ban from the database
42+
43+
}
44+
45+
@Override
46+
public void removeSanction(Message message, String [] args) {
47+
48+
User user = Helper.getUserFromCommandInput(message, args);
49+
50+
Config.getInstance().getGuild().unban(user).queue();
1651
}
1752

53+
1854
@Override
1955
public String getName() {
2056
return "unban";
2157
}
2258

2359
@Override
2460
public String getDescription() {
25-
return "`unban <user> <reason>`: Entfernt den Ban";
61+
return "`unban <user>`: Entfernt den Ban";
2662
}
2763

2864
@Override
2965
public String getHelpList() {
3066
return "staff";
3167
}
68+
3269
}

src/main/java/tech/goodquestion/lembot/command/impl/moderation/UnmuteCommand.java

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import net.dv8tion.jda.api.entities.Member;
55
import net.dv8tion.jda.api.entities.Message;
66
import net.dv8tion.jda.api.entities.TextChannel;
7-
import net.dv8tion.jda.api.entities.User;
87
import tech.goodquestion.lembot.command.IBotCommand;
98
import tech.goodquestion.lembot.config.Config;
109
import tech.goodquestion.lembot.database.CommandHelper;
@@ -18,38 +17,52 @@
1817
import java.sql.PreparedStatement;
1918
import java.sql.ResultSet;
2019
import java.sql.SQLException;
20+
import java.time.Instant;
2121

22-
public final class UnmuteCommand extends RemovalBanishment implements IBotCommand {
22+
public final class UnmuteCommand implements IBotCommand, RemovalBanishment{
2323

2424

2525
@Override
2626
public void dispatch(final Message message, final TextChannel channel, final Member sender, final String[] args) {
2727

28-
if (args.length < 1) {
29-
return;
30-
}
31-
32-
User user;
33-
34-
user = Helper.getUserFromCommandInput(message, args);
28+
if (args.length < 1) return;
3529

30+
removeSanction(message, args);
3631

37-
Config.getInstance().getGuild().removeRoleFromMember(user.getIdLong(), Config.getInstance().getRoleConfig().getMuteRole()).queue();
32+
Member member = MuteCommand.getMemberFromCommandInput(message,args);
3833

3934
final EmbedBuilder embedBuilder = new EmbedBuilder();
4035
embedBuilder.setColor(Color.decode(EmbedColorHelper.SUCCESS));
4136
embedBuilder.setTitle("Bestätigung");
42-
embedBuilder.setDescription("User " + user.getAsMention() + " wurde durch " + message.getAuthor().getAsMention() + " erfolgreich **" + " ungemutet." + "**");
37+
embedBuilder.setAuthor(member.getUser().getAsTag(), null,member.getUser().getEffectiveAvatarUrl());
38+
embedBuilder.setDescription("**" + ":mute: Mute rückgängig gemacht" + "**");
39+
embedBuilder.addField("Member",member.getAsMention() , true);
40+
embedBuilder.addField("Rückgängig gemacht von",sender.getAsMention(), true);
41+
embedBuilder.setFooter(sender.getUser().getAsTag(),sender.getEffectiveAvatarUrl());
42+
embedBuilder.setTimestamp(Instant.now());
43+
44+
Helper.sendEmbed(embedBuilder,message,false);
45+
46+
47+
//TODO delete the mute from the database
48+
}
49+
50+
@Override
51+
public void removeSanction(Message message, String[] args) {
4352

44-
Helper.sendEmbed(embedBuilder, message, false);
53+
54+
Member member = MuteCommand.getMemberFromCommandInput(message, args);
55+
56+
57+
Config.getInstance().getGuild().removeRoleFromMember(member.getIdLong(), Config.getInstance().getRoleConfig().getMuteRole()).queue();
4558

4659
Connection connection = DatabaseConnector.openConnection();
4760

4861
String userMuted = "SELECT activ FROM muted_user WHERE id_discord = ?;";
4962

5063
try (PreparedStatement preparedStatement = connection.prepareStatement(userMuted)) {
5164

52-
preparedStatement.setLong(1, user.getIdLong());
65+
preparedStatement.setLong(1, member.getIdLong());
5366

5467
ResultSet resultSet = preparedStatement.executeQuery();
5568

@@ -61,32 +74,31 @@ public void dispatch(final Message message, final TextChannel channel, final Mem
6174
PreparedStatement preparedStatementOne = connection.prepareStatement(userUnmute);
6275

6376
preparedStatementOne.setString(1, "0");
64-
preparedStatementOne.setLong(2, user.getIdLong());
77+
preparedStatementOne.setLong(2, member.getIdLong());
6578

6679
preparedStatementOne.executeUpdate();
6780
}
6881

6982
} catch (SQLException sqlException) {
7083
System.out.println(sqlException.getMessage());
71-
7284
CommandHelper.logException(OccurredException.getOccurredExceptionData(sqlException, this.getClass().getName()));
7385
}
74-
7586
}
7687

88+
7789
@Override
7890
public String getName() {
7991
return "unmute";
8092
}
8193

8294
@Override
8395
public String getDescription() {
84-
return "`unmute <user> <reason>`: Entfernt" + Config.getInstance().getRoleConfig().getMuteRole().getAsMention();
96+
return "`unmute <member>`: Entfernt" + Config.getInstance().getRoleConfig().getMuteRole().getAsMention();
8597
}
8698

87-
8899
@Override
89100
public String getHelpList() {
90101
return "staff";
91102
}
103+
92104
}

0 commit comments

Comments
 (0)