forked from SteamWar/SteamWar
add parsing for chat prefix mode configuration
This commit is contained in:
@@ -175,6 +175,9 @@ class SteamwarUser(id: EntityID<Int>) : IntEntity(id) {
|
|||||||
leaderInternal = false
|
leaderInternal = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun hasTeam() =
|
||||||
|
team != 0
|
||||||
|
|
||||||
private var leaderInternal by SteamwarUserTable.leader
|
private var leaderInternal by SteamwarUserTable.leader
|
||||||
var leader: Boolean
|
var leader: Boolean
|
||||||
get() = leaderInternal
|
get() = leaderInternal
|
||||||
|
|||||||
@@ -60,6 +60,9 @@ public class ChatListener extends BasicListener {
|
|||||||
|
|
||||||
private static final Set<String> noLogCommands = Set.of("webpw", "webpassword", "web");
|
private static final Set<String> noLogCommands = Set.of("webpw", "webpassword", "web");
|
||||||
|
|
||||||
|
private static final String PREFIX_MODE_CONFIG = "chatprefix";
|
||||||
|
private static final String PREFIX_MODE_SW = "SW";
|
||||||
|
|
||||||
@Subscribe(order = PostOrder.FIRST)
|
@Subscribe(order = PostOrder.FIRST)
|
||||||
public void fixCommands(CommandExecuteEvent e) {
|
public void fixCommands(CommandExecuteEvent e) {
|
||||||
String command = e.getCommand();
|
String command = e.getCommand();
|
||||||
@@ -241,18 +244,54 @@ public class ChatListener extends BasicListener {
|
|||||||
|
|
||||||
private static void chatToReciever(Chatter receiver, Chatter msgReceiver, SteamwarUser sender, String format, String message) {
|
private static void chatToReciever(Chatter receiver, Chatter msgReceiver, SteamwarUser sender, String format, String message) {
|
||||||
UserPerm.Prefix prefix = sender.prefix();
|
UserPerm.Prefix prefix = sender.prefix();
|
||||||
|
boolean useSwPrefix = useSwPrefix(sender);
|
||||||
|
|
||||||
|
String teamPrefix = "";
|
||||||
|
String swPrefix = prefix.getChatPrefix().length() == 0 ? "§f" : prefix.getChatPrefix() + " ";
|
||||||
|
String nameColor = prefix == UserPerm.emptyPrefix ? "§f" : prefix.getColorCode();
|
||||||
|
|
||||||
|
if (sender.hasPerm(UserPerm.TEAM)) {
|
||||||
|
swPrefix = "§f";
|
||||||
|
|
||||||
|
if (useSwPrefix) {
|
||||||
|
swPrefix = "§eS§8W ";
|
||||||
|
} else if (sender.getTeam() != 0) {
|
||||||
|
Team team = Team.byId(sender.getTeam());
|
||||||
|
teamPrefix = "§" + team.getTeamColor() + team.getTeamKuerzel() + " ";
|
||||||
|
}
|
||||||
|
} else if (sender.getTeam() != 0) {
|
||||||
|
Team team = Team.byId(sender.getTeam());
|
||||||
|
teamPrefix = "§" + team.getTeamColor() + team.getTeamKuerzel() + " ";
|
||||||
|
}
|
||||||
|
|
||||||
String chatColorCode = sender.hasPerm(UserPerm.TEAM) ? "§f" : "§7";
|
String chatColorCode = sender.hasPerm(UserPerm.TEAM) ? "§f" : "§7";
|
||||||
receiver.prefixless(format,
|
receiver.prefixless(format,
|
||||||
sender,
|
sender,
|
||||||
msgReceiver == null ? receiver : msgReceiver,
|
msgReceiver == null ? receiver : msgReceiver,
|
||||||
highlightMentions(message, chatColorCode, receiver),
|
highlightMentions(message, chatColorCode, receiver),
|
||||||
sender.getTeam() == 0 ? "" : "§" + Team.byId(sender.getTeam()).getTeamColor() + Team.byId(sender.getTeam()).getTeamKuerzel() + " ",
|
teamPrefix,
|
||||||
"",
|
"",
|
||||||
prefix.getColorCode(),
|
nameColor,
|
||||||
prefix.getChatPrefix().length() == 0 ? "§f" : prefix.getChatPrefix() + " ",
|
swPrefix,
|
||||||
chatColorCode);
|
chatColorCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static boolean useSwPrefix(SteamwarUser user) {
|
||||||
|
if (!user.hasPerm(UserPerm.TEAM)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
UserPerm.Prefix prefix = user.prefix();
|
||||||
|
|
||||||
|
boolean hasTeamPrefix = user.getTeam() != 0;
|
||||||
|
boolean hasSwPrefix = prefix != UserPerm.emptyPrefix;
|
||||||
|
|
||||||
|
if (!hasSwPrefix) return false;
|
||||||
|
if (!hasTeamPrefix) return true;
|
||||||
|
|
||||||
|
return PREFIX_MODE_SW.equals(UserConfig.getConfig(user.getId(), PREFIX_MODE_CONFIG));
|
||||||
|
}
|
||||||
|
|
||||||
private static boolean filteredCommand(Chatter sender, String message) {
|
private static boolean filteredCommand(Chatter sender, String message) {
|
||||||
String command = message.split(" ", 2)[0];
|
String command = message.split(" ", 2)[0];
|
||||||
if (command.startsWith("/") && command.contains(":")) {
|
if (command.startsWith("/") && command.contains(":")) {
|
||||||
|
|||||||
Reference in New Issue
Block a user