Preventing signs with blocked IP addresses.
This commit is contained in:
parent
4662f7a3f3
commit
68da411528
|
|
@ -121,6 +121,13 @@ public class BlockEventHandler implements Listener
|
|||
|
||||
String signMessage = lines.toString();
|
||||
|
||||
//prevent signs with blocked IP addresses
|
||||
if(!player.hasPermission("griefprevention.spam") && GriefPrevention.instance.containsBlockedIP(signMessage))
|
||||
{
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
//if not empty and wasn't the same as the last sign, log it and remember it for later
|
||||
PlayerData playerData = this.dataStore.getPlayerData(player.getUniqueId());
|
||||
if(notEmpty && playerData.lastMessage != null && !playerData.lastMessage.equals(signMessage))
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ import java.util.UUID;
|
|||
import java.util.Vector;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
|
||||
|
|
@ -2698,4 +2700,23 @@ public class GriefPrevention extends JavaPlugin
|
|||
|
||||
return result;
|
||||
}
|
||||
|
||||
public boolean containsBlockedIP(String message)
|
||||
{
|
||||
message = message.replace("\r\n", "");
|
||||
Pattern ipAddressPattern = Pattern.compile("([0-9]{1,3}\\.){3}[0-9]{1,3}");
|
||||
Matcher matcher = ipAddressPattern.matcher(message);
|
||||
|
||||
//if it looks like an IP address
|
||||
if(matcher.find())
|
||||
{
|
||||
//and it's not in the list of allowed IP addresses
|
||||
if(!GriefPrevention.instance.config_spam_allowedIpAddresses.contains(matcher.group()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -246,25 +246,17 @@ class PlayerEventHandler implements Listener
|
|||
//filter IP addresses
|
||||
if(!muted)
|
||||
{
|
||||
Pattern ipAddressPattern = Pattern.compile("([0-9]{1,3}\\.){3}[0-9]{1,3}");
|
||||
Matcher matcher = ipAddressPattern.matcher(message);
|
||||
|
||||
//if it looks like an IP address
|
||||
if(matcher.find())
|
||||
if(GriefPrevention.instance.containsBlockedIP(message))
|
||||
{
|
||||
//and it's not in the list of allowed IP addresses
|
||||
if(!GriefPrevention.instance.config_spam_allowedIpAddresses.contains(matcher.group()))
|
||||
{
|
||||
//log entry
|
||||
GriefPrevention.AddLogEntry("Muted IP address from " + player.getName() + ": " + message);
|
||||
//log entry
|
||||
GriefPrevention.AddLogEntry("Muted IP address from " + player.getName() + ": " + message);
|
||||
|
||||
//spam notation
|
||||
playerData.spamCount+=5;
|
||||
spam = true;
|
||||
//spam notation
|
||||
playerData.spamCount+=5;
|
||||
spam = true;
|
||||
|
||||
//block message
|
||||
muted = true;
|
||||
}
|
||||
//block message
|
||||
muted = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user