Merge branch '1.6.x' of https://github.com/vemacs/Factions into vemacs

This commit is contained in:
drtshock 2015-03-06 16:32:20 -07:00
commit 6d6b63ba19
9 changed files with 73 additions and 4 deletions

View File

@ -66,6 +66,10 @@ public interface FPlayer extends EconomyParticipator {
public ChatMode getChatMode();
public void setIgnoreAllianceChat(boolean ignore);
public boolean isIgnoreAllianceChat();
public void setSpyingChat(boolean chatSpying);
public boolean isSpyingChat();

View File

@ -66,6 +66,7 @@ public class CmdHelp extends FCommand {
pageLines.add(p.cmdBase.cmdJoin.getUseageTemplate(true));
pageLines.add(p.cmdBase.cmdLeave.getUseageTemplate(true));
pageLines.add(p.cmdBase.cmdChat.getUseageTemplate(true));
pageLines.add(p.cmdBase.cmdToggleAllianceChat.getUseageTemplate(true));
pageLines.add(p.cmdBase.cmdHome.getUseageTemplate(true));
pageLines.add(p.txt.parse(TL.COMMAND_HELP_NEXTCREATE.toString()));
helpPages.add(pageLines);

View File

@ -0,0 +1,43 @@
package com.massivecraft.factions.cmd;
import com.massivecraft.factions.Conf;
import com.massivecraft.factions.struct.Permission;
import com.massivecraft.factions.zcore.util.TL;
public class CmdToggleAllianceChat extends FCommand {
public CmdToggleAllianceChat() {
super();
this.aliases.add("tac");
this.aliases.add("togglealliancechat");
this.aliases.add("ac");
this.disableOnLock = false;
this.permission = Permission.TOGGLE_ALLIANCE_CHAT.node;
this.disableOnLock = false;
senderMustBePlayer = true;
senderMustBeMember = true;
senderMustBeModerator = false;
senderMustBeAdmin = false;
}
@Override
public TL getUsageTranslation() {
return TL.COMMAND_TOGGLEALLIANCECHAT_DESCRIPTION;
}
@Override
public void perform() {
if (!Conf.factionOnlyChat) {
msg(TL.COMMAND_CHAT_DISABLED.toString());
return;
}
boolean ignoring = fme.isIgnoreAllianceChat();
msg(ignoring ? TL.COMMAND_TOGGLEALLIANCECHAT_UNIGNORE : TL.COMMAND_TOGGLEALLIANCECHAT_IGNORE);
fme.setIgnoreAllianceChat(!ignoring);
}
}

View File

@ -49,6 +49,7 @@ public class FCmdRoot extends FCommand {
public CmdStatus cmdStatus = new CmdStatus();
public CmdTag cmdTag = new CmdTag();
public CmdTitle cmdTitle = new CmdTitle();
public CmdToggleAllianceChat cmdToggleAllianceChat = new CmdToggleAllianceChat();
public CmdUnclaim cmdUnclaim = new CmdUnclaim();
public CmdUnclaimall cmdUnclaimall = new CmdUnclaimall();
public CmdVersion cmdVersion = new CmdVersion();
@ -69,7 +70,7 @@ public class FCmdRoot extends FCommand {
public FCmdRoot() {
super();
this.aliases.addAll(Conf.baseCommandAliases);
this.aliases.removeAll(Collections.singletonList(null)); // remove any nulls from extra commas
this.aliases.removeAll(Collections.<String>singletonList(null)); // remove any nulls from extra commas
this.allowNoSlashAccess = Conf.allowNoSlashCommand;
//this.requiredArgs.add("");
@ -92,6 +93,7 @@ public class FCmdRoot extends FCommand {
this.addSubCommand(this.cmdBoom);
this.addSubCommand(this.cmdBypass);
this.addSubCommand(this.cmdChat);
this.addSubCommand(this.cmdToggleAllianceChat);
this.addSubCommand(this.cmdChatSpy);
this.addSubCommand(this.cmdClaim);
this.addSubCommand(this.cmdConfig);

View File

@ -58,7 +58,7 @@ public class FactionsChatListener implements Listener {
//Send to all our allies
for (FPlayer fplayer : FPlayers.getInstance().getOnlinePlayers()) {
if (myFaction.getRelationTo(fplayer) == Relation.ALLY) {
if (myFaction.getRelationTo(fplayer) == Relation.ALLY && !fplayer.isIgnoreAllianceChat()) {
fplayer.sendMessage(message);
}

View File

@ -67,6 +67,7 @@ public enum Permission {
STATUS("status"),
TAG("tag"),
TITLE("title"),
TOGGLE_ALLIANCE_CHAT("togglealliancechat"),
UNCLAIM("unclaim"),
UNCLAIM_ALL("unclaimall"),
VERSION("version"),

View File

@ -64,6 +64,9 @@ public abstract class MemoryFPlayer implements FPlayer {
// FIELD: chatMode
protected ChatMode chatMode;
// FIELD: ignoreAllianceChat
protected boolean ignoreAllianceChat = false;
protected String id;
protected String name;
@ -199,6 +202,14 @@ public abstract class MemoryFPlayer implements FPlayer {
return chatMode;
}
public void setIgnoreAllianceChat(boolean ignore) {
this.ignoreAllianceChat = ignore;
}
public boolean isIgnoreAllianceChat() {
return ignoreAllianceChat;
}
public void setSpyingChat(boolean chatSpying) {
this.spyingChat = chatSpying;
}

View File

@ -79,7 +79,7 @@ public enum TL {
COMMAND_BYPASS_DISABLELOG(" has DISABLED admin bypass mode."),
COMMAND_BYPASS_DESCRIPTION("Enable admin bypass mode"),
COMMAND_CHAT_DISABLED("<b>The built in chat chat channels are disabled on this server."),
COMMAND_CHAT_DISABLED("<b>The built in chat channels are disabled on this server."),
COMMAND_CHAT_INVALIDMODE("<b>Unrecognised chat mode. <i>Please enter either 'a','f' or 'p'"),
COMMAND_CHAT_DESCRIPTION("Change chat mode"),
@ -469,6 +469,10 @@ public enum TL {
COMMAND_TITLE_CHANGED("%1$s<i> changed a title: %2$s"),
COMMAND_TITLE_DESCRIPTION("Set or remove a players title"),
COMMAND_TOGGLEALLIANCECHAT_DESCRIPTION("Toggles whether or not you will see alliance chat"),
COMMAND_TOGGLEALLIANCECHAT_IGNORE("Alliance chat is now ignored"),
COMMAND_TOGGLEALLIANCECHAT_UNIGNORE("Alliance chat is no longer ignored"),
COMMAND_TOP_DESCRIPTION("Sort Factions to see the top of some criteria."),
COMMAND_TOP_TOP("Top Factions by %s. Page %d/%d"),
COMMAND_TOP_LINE("%d. &6%s: &c%s"), // Rank. Faction: Value

View File

@ -93,6 +93,7 @@ permissions:
factions.seechunk: true
factions.monitorlogins: true
factions.top: true
factions.togglealliancechat
factions.admin:
description: hand over your admin rights
factions.admin.any:
@ -249,4 +250,6 @@ permissions:
factions.claim.line:
description: claim in a line
factions.top:
description: sort factions
description: sort factions
factions.togglealliancechat:
description: toggle alliance chat on and off