Merge pull request #60 from eXeC64/spy
Added chat spy feature for admins
This commit is contained in:
		@@ -26,10 +26,11 @@ permissions:
 | 
				
			|||||||
      factions.kit.halfmod: true
 | 
					      factions.kit.halfmod: true
 | 
				
			||||||
      factions.flag.set: true
 | 
					      factions.flag.set: true
 | 
				
			||||||
  factions.kit.halfmod:
 | 
					  factions.kit.halfmod:
 | 
				
			||||||
    description: Can use adminmode
 | 
					    description: Can use adminmode and chat spy
 | 
				
			||||||
    children:
 | 
					    children:
 | 
				
			||||||
      factions.kit.fullplayer: true
 | 
					      factions.kit.fullplayer: true
 | 
				
			||||||
      factions.adminmode: true
 | 
					      factions.adminmode: true
 | 
				
			||||||
 | 
					      factions.chatspy: true
 | 
				
			||||||
  factions.kit.fullplayer:
 | 
					  factions.kit.fullplayer:
 | 
				
			||||||
    default: true
 | 
					    default: true
 | 
				
			||||||
    description: Can also create new factions.
 | 
					    description: Can also create new factions.
 | 
				
			||||||
@@ -71,6 +72,8 @@ permissions:
 | 
				
			|||||||
      factions.version: true
 | 
					      factions.version: true
 | 
				
			||||||
  factions.adminmode:
 | 
					  factions.adminmode:
 | 
				
			||||||
    description: enable admin bypass mode
 | 
					    description: enable admin bypass mode
 | 
				
			||||||
 | 
					  factions.chatspy:
 | 
				
			||||||
 | 
					    description: enable admin chat spy mode
 | 
				
			||||||
  factions.autoclaim:
 | 
					  factions.autoclaim:
 | 
				
			||||||
    description: auto-claim land as you walk around
 | 
					    description: auto-claim land as you walk around
 | 
				
			||||||
  factions.chat:
 | 
					  factions.chat:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -102,6 +102,11 @@ public class FPlayer extends PlayerEntity implements EconomyParticipator
 | 
				
			|||||||
		return chatMode;
 | 
							return chatMode;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
						// FIELD: chatSpy
 | 
				
			||||||
 | 
						private transient boolean spyingChat = false;
 | 
				
			||||||
 | 
						public void setSpyingChat(boolean chatSpying) { this.spyingChat = chatSpying; }
 | 
				
			||||||
 | 
						public boolean isSpyingChat() { return spyingChat; }
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	// FIELD: account
 | 
						// FIELD: account
 | 
				
			||||||
	public MethodAccount getAccount()
 | 
						public MethodAccount getAccount()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										40
									
								
								src/com/massivecraft/factions/cmd/CmdChatSpy.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								src/com/massivecraft/factions/cmd/CmdChatSpy.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					package com.massivecraft.factions.cmd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.massivecraft.factions.P;
 | 
				
			||||||
 | 
					import com.massivecraft.factions.struct.Permission;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class CmdChatSpy extends FCommand
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						public CmdChatSpy()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							super();
 | 
				
			||||||
 | 
							this.aliases.add("chatspy");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							this.optionalArgs.put("on/off", "flip");
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							this.permission = Permission.CHATSPY.node;
 | 
				
			||||||
 | 
							this.disableOnLock = false;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							senderMustBePlayer = true;
 | 
				
			||||||
 | 
							senderMustBeMember = false;
 | 
				
			||||||
 | 
							senderMustBeOfficer = false;
 | 
				
			||||||
 | 
							senderMustBeLeader = false;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public void perform()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							fme.setSpyingChat(this.argAsBool(0, ! fme.isSpyingChat()));
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							if ( fme.isSpyingChat())
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								fme.msg("<i>You have enabled chat spying mode.");
 | 
				
			||||||
 | 
								P.p.log(fme.getName() + " has ENABLED chat spying mode.");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								fme.msg("<i>You have disabled chat spying mode.");
 | 
				
			||||||
 | 
								P.p.log(fme.getName() + " DISABLED chat spying mode.");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -10,6 +10,7 @@ public class FCmdRoot extends FCommand
 | 
				
			|||||||
	public CmdAutoClaim cmdAutoClaim = new CmdAutoClaim();
 | 
						public CmdAutoClaim cmdAutoClaim = new CmdAutoClaim();
 | 
				
			||||||
	public CmdAdmin cmdBypass = new CmdAdmin();
 | 
						public CmdAdmin cmdBypass = new CmdAdmin();
 | 
				
			||||||
	public CmdChat cmdChat = new CmdChat();
 | 
						public CmdChat cmdChat = new CmdChat();
 | 
				
			||||||
 | 
						public CmdChatSpy cmdChatSpy = new CmdChatSpy();
 | 
				
			||||||
	public CmdClaim cmdClaim = new CmdClaim();
 | 
						public CmdClaim cmdClaim = new CmdClaim();
 | 
				
			||||||
	public CmdConfig cmdConfig = new CmdConfig();
 | 
						public CmdConfig cmdConfig = new CmdConfig();
 | 
				
			||||||
	public CmdCreate cmdCreate = new CmdCreate();
 | 
						public CmdCreate cmdCreate = new CmdCreate();
 | 
				
			||||||
@@ -72,6 +73,7 @@ public class FCmdRoot extends FCommand
 | 
				
			|||||||
		this.addSubCommand(this.cmdAutoClaim);
 | 
							this.addSubCommand(this.cmdAutoClaim);
 | 
				
			||||||
		this.addSubCommand(this.cmdBypass);
 | 
							this.addSubCommand(this.cmdBypass);
 | 
				
			||||||
		this.addSubCommand(this.cmdChat);
 | 
							this.addSubCommand(this.cmdChat);
 | 
				
			||||||
 | 
							this.addSubCommand(this.cmdChatSpy);
 | 
				
			||||||
		this.addSubCommand(this.cmdClaim);
 | 
							this.addSubCommand(this.cmdClaim);
 | 
				
			||||||
		this.addSubCommand(this.cmdConfig);
 | 
							this.addSubCommand(this.cmdConfig);
 | 
				
			||||||
		this.addSubCommand(this.cmdCreate);
 | 
							this.addSubCommand(this.cmdCreate);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -52,6 +52,13 @@ public class FactionsChatEarlyListener extends PlayerListener
 | 
				
			|||||||
			
 | 
								
 | 
				
			||||||
			P.p.log(Level.INFO, ChatColor.stripColor("FactionChat "+me.getFaction().getTag()+": "+message));
 | 
								P.p.log(Level.INFO, ChatColor.stripColor("FactionChat "+me.getFaction().getTag()+": "+message));
 | 
				
			||||||
			
 | 
								
 | 
				
			||||||
 | 
								//Send to any players who are spying chat
 | 
				
			||||||
 | 
								for (FPlayer fplayer : FPlayers.i.getOnline())
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if( fplayer.isSpyingChat() )
 | 
				
			||||||
 | 
										fplayer.sendMessage("FactionChat "+me.getFaction().getTag()+": "+message);	
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								
 | 
				
			||||||
			event.setCancelled(true);
 | 
								event.setCancelled(true);
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
			
 | 
								
 | 
				
			||||||
@@ -70,9 +77,13 @@ public class FactionsChatEarlyListener extends PlayerListener
 | 
				
			|||||||
			{
 | 
								{
 | 
				
			||||||
				if(myFaction.getRelationTo(fplayer) == Rel.ALLY)
 | 
									if(myFaction.getRelationTo(fplayer) == Rel.ALLY)
 | 
				
			||||||
					fplayer.sendMessage(message);
 | 
										fplayer.sendMessage(message);
 | 
				
			||||||
 | 
									
 | 
				
			||||||
 | 
									//Send to any players who are spying chat
 | 
				
			||||||
 | 
									if( fplayer.isSpyingChat() )
 | 
				
			||||||
 | 
										fplayer.sendMessage("AllianceChat " + message);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			
 | 
								
 | 
				
			||||||
			P.p.log(Level.INFO, ChatColor.stripColor("AllianceChat: "+message));
 | 
								P.p.log(Level.INFO, ChatColor.stripColor("AllianceChat "+message));
 | 
				
			||||||
			
 | 
								
 | 
				
			||||||
			event.setCancelled(true);
 | 
								event.setCancelled(true);
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@ public enum Permission
 | 
				
			|||||||
	ADMIN("adminmode"),
 | 
						ADMIN("adminmode"),
 | 
				
			||||||
	AUTOCLAIM("autoclaim"),
 | 
						AUTOCLAIM("autoclaim"),
 | 
				
			||||||
	CHAT("chat"),
 | 
						CHAT("chat"),
 | 
				
			||||||
 | 
						CHATSPY("chatspy"),
 | 
				
			||||||
	CLAIM("claim"),
 | 
						CLAIM("claim"),
 | 
				
			||||||
	CONFIG("config"),
 | 
						CONFIG("config"),
 | 
				
			||||||
	CREATE("create"),
 | 
						CREATE("create"),
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user