Skip to content

Commit

Permalink
Add bypass permission for moderation
Browse files Browse the repository at this point in the history
  • Loading branch information
Brikster committed Jul 6, 2024
1 parent bdbac89 commit 8c81970
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import org.jetbrains.annotations.NotNull;
import ru.brikster.chatty.api.chat.message.context.MessageContext;
import ru.brikster.chatty.api.chat.message.strategy.result.MessageTransformResult;
import ru.brikster.chatty.chat.message.transform.result.MessageTransformResultBuilder;
import ru.brikster.chatty.config.file.MessagesConfig;
import ru.brikster.chatty.config.file.ModerationConfig;
import ru.brikster.chatty.config.file.ModerationConfig.AdvertisementModerationConfig;
Expand Down Expand Up @@ -44,12 +45,19 @@ public AdModerationStrategyModeration(BukkitAudiences audiences, MessagesConfig

@Override
public @NotNull MessageTransformResult<String> handle(MessageContext<String> context) {
if (context.getSender().hasPermission("chatty.moderation.ads.bypass")
|| context.getSender().hasPermission("chatty.moderation.bypass")) {
return MessageTransformResultBuilder
.<String>fromContext(context)
.build();
}

String message = context.getMessage();
String matchedMessage = match(message, ipPattern);
matchedMessage = match(matchedMessage, webPattern);

boolean hasViolations = !message.equals(matchedMessage);
MessageTransformResult<String> messageTransformResult = getMatcherResult(context, matchedMessage, !hasViolations, useBlock);
MessageTransformResult<String> messageTransformResult = getMatcherResult(context, matchedMessage, hasViolations, useBlock);

if (hasViolations) {
audiences.player(context.getSender()).sendMessage(messages.getAdvertisementFound());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,13 @@ public CapsModerationStrategy(BukkitAudiences audiences, MessagesConfig messages

@Override
public @NotNull MessageTransformResult<String> handle(MessageContext<String> context) {
if (context.getSender().hasPermission("chatty.moderation.caps.bypass")
|| context.getSender().hasPermission("chatty.moderation.bypass")) {
return MessageTransformResultBuilder
.<String>fromContext(context)
.build();
}

String message = context.getMessage();

if (message.length() >= length
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,9 @@ public interface ModerationMatcherStrategy extends MessageTransformStrategy<Stri

default MessageTransformResult<String> getMatcherResult(MessageContext<String> context,
String matchedMessage,
boolean messageMatches,
boolean hasViolations,
boolean useBlock) {
if (messageMatches) {
return MessageTransformResultBuilder.<String>fromContext(context).build();
} else {
if (hasViolations) {
if (useBlock) {
return MessageTransformResultBuilder.<String>fromContext(context)
.withMessage(matchedMessage)
Expand All @@ -26,6 +24,8 @@ default MessageTransformResult<String> getMatcherResult(MessageContext<String> c
.withMessage(matchedMessage)
.build();
}
} else {
return MessageTransformResultBuilder.<String>fromContext(context).build();
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import org.jetbrains.annotations.Nullable;
import ru.brikster.chatty.api.chat.message.context.MessageContext;
import ru.brikster.chatty.api.chat.message.strategy.result.MessageTransformResult;
import ru.brikster.chatty.chat.message.transform.result.MessageTransformResultBuilder;
import ru.brikster.chatty.config.file.MessagesConfig;
import ru.brikster.chatty.config.file.ModerationConfig;
import ru.brikster.chatty.config.file.ModerationConfig.SwearModerationConfig;
Expand Down Expand Up @@ -52,11 +53,18 @@ public SwearModerationStrategyModeration(BukkitAudiences audiences, MessagesConf

@Override
public @NotNull MessageTransformResult<String> handle(MessageContext<String> context) {
if (context.getSender().hasPermission("chatty.moderation.swear.bypass")
|| context.getSender().hasPermission("chatty.moderation.bypass")) {
return MessageTransformResultBuilder
.<String>fromContext(context)
.build();
}

String message = context.getMessage();
String matchedMessage = match(message, swearPattern);

boolean hasViolations = !message.equals(matchedMessage);
MessageTransformResult<String> messageTransformResult = getMatcherResult(context, matchedMessage, !hasViolations, useBlock);
MessageTransformResult<String> messageTransformResult = getMatcherResult(context, matchedMessage, hasViolations, useBlock);

if (hasViolations) {
audiences.player(context.getSender()).sendMessage(messages.getSwearFound());
Expand Down

0 comments on commit 8c81970

Please sign in to comment.