Skip to content

Commit 16c5567

Browse files
committed
Toggleable chat formatting
1 parent 35587cf commit 16c5567

File tree

6 files changed

+40
-11
lines changed

6 files changed

+40
-11
lines changed

API/src/main/java/me/innectic/permissify/api/PermissifyConstants.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public class PermissifyConstants {
7878
public static final String PLAYER_REMOVED_FROM_GROUP = PERMISSIFY_PREFIX + "&e&lRemoved <PLAYER> from <GROUP>";
7979
public static final String FORMATTER_SET = PERMISSIFY_PREFIX + "&e&lFormatter <FORMATTER> set!";
8080
public static final String MAIN_GROUP_SET = PERMISSIFY_PREFIX + "&e&lSet main group for <PLAYER> to <GROUP>!";
81+
public static final String TOGGLED_CHAT_HANDLE = PERMISSIFY_PREFIX + "&e&l<STATE> chat formatting.";
8182

8283
public static final String EMPTY_DEFAULT_GROUP_NAME = "&c&lNONE";
8384
public static final String DEFAULT_GROUP_RESPONSE = PERMISSIFY_PREFIX + "&e&lThe current default group is '<GROUP>&e&l'.";
@@ -95,7 +96,7 @@ public class PermissifyConstants {
9596
public static final String NOT_ENOUGH_ARGUMENTS_PLAYER_ADD_GROUP= PERMISSIFY_PREFIX + "&c&lNot enough arguments! &e&l/permissify player addgroup [group] [player]";
9697
public static final String NOT_ENOUGH_ARGUMENTS_PLAYER_REMOVE_GROUP= PERMISSIFY_PREFIX + "&c&lNot enough arguments! &e&l/permissify player removegroup [group] [player]";
9798
public static final String NOT_ENOUGH_ARGUMENTS_PLAYER_LIST_GROUP = PERMISSIFY_PREFIX + "&c&lNot enough arguments! &e&l/permissify player listgroup [player]";
98-
public static final String NOT_ENOUGH_ARGUMENTS_SET_FORMAT = PERMISSIFY_PREFIX + "&c&lNot enough arguments! &e&l/permissify format [whisper|chat] [format...]";
99+
public static final String NOT_ENOUGH_ARGUMENTS_SET_FORMAT = PERMISSIFY_PREFIX + "&c&lNot enough arguments! &e&l/permissify format [whisper|chat|disable|enable] [format?...]";
99100
public static final String NOT_ENOUGH_ARGUMENTS_SET_MAIN_GROUP = PERMISSIFY_PREFIX + "&c&lNot enough arguments! &e&l/permissify player setmain [player] [group]";
100101

101102
public static final String INVALID_CHATCOLOR = PERMISSIFY_PREFIX + "&c&lInvalid chat color <COLOR>";
@@ -124,20 +125,24 @@ public class PermissifyConstants {
124125
"&a&l/permissify cache purge",
125126
"&a&l/permissify format chat [format]",
126127
"&a&l/permissify format whisper [format]",
128+
"&a&l/permissify format enable",
129+
"&a&l/permissify format disable",
127130
"&a&l/permissify group create [name] [prefix] [suffix] [chatcolor]",
128-
"&a&l/permissify group remove [name]",
129-
"&a&l/permissify group addpermission [group] [permissions...]",
130-
"&a&l/permissify group removepermission [group] [permissions...]"
131+
"&a&l/permissify group remove [name]"
131132
), Arrays.asList(
133+
"&a&l/permissify group addpermission [group] [permissions...]",
134+
"&a&l/permissify group removepermission [group] [permissions...]",
132135
"&a&l/permissify group listpermissions [group]",
133136
"&a&l/permissify group list",
134137
"&a&l/permissify player addpermission [permission] [player]",
135138
"&a&l/permissify player removepermission [permission] [player]",
136139
"&a&l/permissify player addgroup [player] [group]",
137140
"&a&l/permissify player listpermissions [player]",
138141
"&a&l/permissify player listgroups [player]",
139-
"&a&l/permissify player removegroup [player] [group]",
140-
"&a&l/permissify player setmain [player] [group]"
142+
"&a&l/permissify player removegroup [player] [group]"
143+
), Arrays.asList(
144+
"&a&l/permissify player setmain [player] [group]",
145+
"&a&l/permissify group default [group?]"
141146
)));
142147

143148
// Error response

Spigot/src/main/java/me/innectic/permissify/spigot/PermissifyMain.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
package me.innectic.permissify.spigot;
2626

2727
import lombok.Getter;
28+
import lombok.Setter;
2829
import me.innectic.permissify.spigot.commands.PermissifyCommand;
2930
import me.innectic.permissify.spigot.commands.permissify.CacheCommand;
3031
import me.innectic.permissify.spigot.commands.permissify.FormatCommand;
@@ -59,6 +60,8 @@ public class PermissifyMain extends JavaPlugin {
5960
@Getter private FormatCommand formatCommand;
6061
@Getter private CacheCommand cacheCommand;
6162

63+
@Getter @Setter private boolean handleChat = false;
64+
6265
@Override
6366
public void onEnable() {
6467
createConfig();
@@ -69,9 +72,10 @@ public void onEnable() {
6972
// Initialize the API
7073
permissifyAPI = new PermissifyAPI();
7174
if (!handler.isPresent() || !handler.get().getHandlerType().isPresent()) {
72-
System.out.println("Internal Permission Error: No handler / type present!");
75+
System.out.println("Internal Permissify Error: No handler / type present!");
7376
return;
7477
}
78+
handleChat = getConfig().getBoolean("handleChat");
7579
try {
7680
permissifyAPI.initialize(handler.get().getHandlerType().get(), handler.get().getConnectionInformation(), new DisplayUtil());
7781
} catch (Exception e) {

Spigot/src/main/java/me/innectic/permissify/spigot/commands/permissify/FormatCommand.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,18 @@ public class FormatCommand {
4141
public CommandResponse handleSetFormat(CommandSender sender, String[] args) {
4242
if (!PermissionUtil.hasPermissionOrSuperAdmin((Player) sender, PermissifyConstants.PERMISSIFY_FORMAT))
4343
return new CommandResponse(PermissifyConstants.INSUFFICIENT_PERMISSIONS, false);
44-
if (args.length < 2) return new CommandResponse(PermissifyConstants.NOT_ENOUGH_ARGUMENTS_SET_FORMAT, false);
45-
if (args[0].equals("chat")) return handleSetChatFormat(sender, ArgumentUtil.getRemainingArgs(1, args));
46-
else if (args[0].equals("whisper")) return handleWhisperFormat(sender, ArgumentUtil.getRemainingArgs(1, args));
44+
if (args.length < 1) return new CommandResponse(PermissifyConstants.NOT_ENOUGH_ARGUMENTS_SET_FORMAT, false);
45+
if (args[0].equalsIgnoreCase("chat")) return handleSetChatFormat(sender, ArgumentUtil.getRemainingArgs(1, args));
46+
else if (args[0].equalsIgnoreCase("whisper")) return handleWhisperFormat(sender, ArgumentUtil.getRemainingArgs(1, args));
47+
else if (args[0].equalsIgnoreCase("enable")) return handleEnableFormat(sender, ArgumentUtil.getRemainingArgs(1, args));
48+
else if (args[0].equalsIgnoreCase("disable")) return handleDisableFormat(sender, ArgumentUtil.getRemainingArgs(1, args));
4749
return new CommandResponse(PermissifyConstants.INVALID_ARGUMENT.replace("<ARGUMENT>", args[0]), true);
4850
}
4951

5052
private CommandResponse handleSetChatFormat(CommandSender sender, String[] args) {
5153
if (!PermissifyMain.getInstance().getPermissifyAPI().getDatabaseHandler().isPresent())
5254
return new CommandResponse(PermissifyConstants.UNABLE_TO_SET.replace("<REASON>", "No database handler"), false);
55+
if (args.length < 1) return new CommandResponse(PermissifyConstants.NOT_ENOUGH_ARGUMENTS_SET_FORMAT, false);
5356
String format = String.join(" ", args).trim();
5457
PermissifyMain.getInstance().getPermissifyAPI().getDatabaseHandler().get().setChatFormat(format);
5558
return new CommandResponse(PermissifyConstants.FORMATTER_SET.replace("<FORMATTER>", "chat"), true);
@@ -58,8 +61,21 @@ private CommandResponse handleSetChatFormat(CommandSender sender, String[] args)
5861
private CommandResponse handleWhisperFormat(CommandSender sender, String[] args) {
5962
if (!PermissifyMain.getInstance().getPermissifyAPI().getDatabaseHandler().isPresent())
6063
return new CommandResponse(PermissifyConstants.UNABLE_TO_SET.replace("<REASON>", "No database handler"), false);
64+
if (args.length < 1) return new CommandResponse(PermissifyConstants.NOT_ENOUGH_ARGUMENTS_SET_FORMAT, false);
6165
String format = String.join(" ", args).trim();
6266
PermissifyMain.getInstance().getPermissifyAPI().getDatabaseHandler().get().setWhisperFormat(format);
6367
return new CommandResponse(PermissifyConstants.FORMATTER_SET.replace("<FORMATTER>", "whisper"), true);
6468
}
69+
70+
private CommandResponse handleDisableFormat(CommandSender sender, String[] args) {
71+
PermissifyMain.getInstance().getConfig().set("handleChat", false);
72+
PermissifyMain.getInstance().setHandleChat(false);
73+
return new CommandResponse(PermissifyConstants.TOGGLED_CHAT_HANDLE.replace("<STATE>", "Disabled"), true);
74+
}
75+
76+
private CommandResponse handleEnableFormat(CommandSender sender, String[] args) {
77+
PermissifyMain.getInstance().getConfig().set("handleChat", true);
78+
PermissifyMain.getInstance().setHandleChat(true);
79+
return new CommandResponse(PermissifyConstants.TOGGLED_CHAT_HANDLE.replace("<STATE>", "Enabled"), true);
80+
}
6581
}

Spigot/src/main/java/me/innectic/permissify/spigot/events/PlayerChat.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public class PlayerChat implements Listener {
4545
@EventHandler
4646
public void onPlayerChat(AsyncPlayerChatEvent e) {
4747
PermissifyMain plugin = PermissifyMain.getInstance();
48+
if (!plugin.isHandleChat()) return;
4849
if (!plugin.getPermissifyAPI().getDatabaseHandler().isPresent()) return;
4950
Player player = e.getPlayer();
5051
if (player == null) return;

Spigot/src/main/java/me/innectic/permissify/spigot/utils/ConfigVerifier.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ public Optional<FullHandler> verifyConnectionInformation() {
5454
Optional<HandlerType> type = HandlerType.findType(plugin.getConfig().getString("storage"));
5555
if (!type.isPresent()) return Optional.empty();
5656

57+
if (plugin.getConfig().get("handleChat") == null) return Optional.empty();
58+
5759
Optional<ConnectionInformation> connectionInformation = Optional.empty();
5860
if (type.get().getHandler() == MySQLHandler.class) {
5961
if (plugin.getConfig().getString("connection.host") == null) return Optional.empty();
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
storage: mysql
2+
handleChat: false
23
connection:
34
host: localhost
45
port: 3306
5-
database: db
6+
database: permissify
67
username: permissify
78
password: magicalpassword

0 commit comments

Comments
 (0)