Saber-Factions/src/main/java/com/massivecraft/factions/cmd/CmdChat.java

80 lines
2.4 KiB
Java
Raw Normal View History

2011-10-09 21:57:43 +02:00
package com.massivecraft.factions.cmd;
import com.massivecraft.factions.Conf;
2011-09-24 12:04:49 +02:00
import com.massivecraft.factions.struct.ChatMode;
import com.massivecraft.factions.struct.Permission;
import com.massivecraft.factions.struct.Role;
import com.massivecraft.factions.zcore.util.TL;
2014-04-04 20:55:21 +02:00
public class CmdChat extends FCommand {
public CmdChat() {
2014-07-01 22:10:18 +02:00
super();
this.aliases.add("c");
this.aliases.add("chat");
2014-04-04 20:55:21 +02:00
//this.requiredArgs.add("");
this.optionalArgs.put("mode", "next");
2014-07-01 22:10:18 +02:00
this.permission = Permission.CHAT.node;
this.disableOnLock = false;
2014-04-04 20:55:21 +02:00
2018-12-21 22:46:10 +01:00
2014-07-01 22:10:18 +02:00
senderMustBePlayer = true;
senderMustBeMember = true;
senderMustBeModerator = false;
2018-03-26 23:43:15 +02:00
senderMustBeColeader = false;
2014-07-01 22:10:18 +02:00
senderMustBeAdmin = false;
2014-04-04 20:55:21 +02:00
}
@Override
public void perform() {
if (!Conf.factionOnlyChat) {
msg(TL.COMMAND_CHAT_DISABLED.toString());
2014-07-01 22:10:18 +02:00
return;
2014-04-04 20:55:21 +02:00
}
2014-07-01 22:10:18 +02:00
String modeString = this.argAsString(0);
ChatMode modeTarget = fme.getChatMode().getNext();
2014-04-04 20:55:21 +02:00
if (modeString != null) {
modeString = modeString.toLowerCase();
// Only allow Mods and higher rank to switch to this channel.
if (modeString.startsWith("m")) {
if (!fme.getRole().isAtLeast(Role.MODERATOR))
{
msg(TL.COMMAND_CHAT_MOD_ONLY);
return;
}
else modeTarget = ChatMode.MOD;
} else if (modeString.startsWith("p")) {
2014-04-04 20:55:21 +02:00
modeTarget = ChatMode.PUBLIC;
2014-07-01 21:52:40 +02:00
} else if (modeString.startsWith("a")) {
2014-04-04 20:55:21 +02:00
modeTarget = ChatMode.ALLIANCE;
2014-07-01 21:52:40 +02:00
} else if (modeString.startsWith("f")) {
2014-04-04 20:55:21 +02:00
modeTarget = ChatMode.FACTION;
} else if (modeString.startsWith("t")) {
modeTarget = ChatMode.TRUCE;
2014-07-01 21:52:40 +02:00
} else {
msg(TL.COMMAND_CHAT_INVALIDMODE);
2014-07-01 22:10:18 +02:00
return;
2014-04-04 20:55:21 +02:00
}
}
fme.setChatMode(modeTarget);
switch (fme.getChatMode())
{
case MOD: msg(TL.COMMAND_CHAT_MODE_MOD); break;
case PUBLIC: msg(TL.COMMAND_CHAT_MODE_PUBLIC); break;
case ALLIANCE: msg(TL.COMMAND_CHAT_MODE_ALLIANCE); break;
case TRUCE: msg(TL.COMMAND_CHAT_MODE_TRUCE); break;
default: msg(TL.COMMAND_CHAT_MODE_FACTION); break;
2014-04-04 20:55:21 +02:00
}
}
@Override
public TL getUsageTranslation() {
return TL.COMMAND_CHAT_DESCRIPTION;
}
2018-03-26 23:43:15 +02:00
}