Merged with master

This commit is contained in:
JeromSar 2014-11-13 19:22:18 +01:00
commit 49f6879ccb
9 changed files with 179 additions and 7 deletions

View File

@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit! #Build Number for ANT. Do not edit!
#Thu Nov 13 18:09:08 CET 2014 #Thu Nov 13 19:22:09 CET 2014
build.number=951 build.number=953

View File

@ -6,8 +6,11 @@ server:
# You should change this to your server's name # You should change this to your server's name
name: TotalFreedom name: TotalFreedom
# The address your server is located at # The address your server is located at. Please do not include the port.
address: 64.34.165.5:28965 address: play.totalfreedom.me
# Please indicate your port. This should be 25565 unless otherwise indicated by your host
port: 25565
# Shown at the server list # Shown at the server list
motd: TotalFreedom &8- Minecraft %mcversion% motd: TotalFreedom &8- Minecraft %mcversion%
@ -25,6 +28,16 @@ server:
# URL players should appeal for permanent bans at # URL players should appeal for permanent bans at
permban_url: http://bit.ly/TF_PermBan permban_url: http://bit.ly/TF_PermBan
# ForceIP Configuration
forceip:
# Please state if you wish to enable the ForceIP system.
enabled: true
# Please enter the kick message you wish for people to see if they are not connecting on the servers hostname
kickmsg: You have been kicked from the server - Please connect using %address%
# Blocking certain events # Blocking certain events
allow: allow:
fire_place: false fire_place: false

View File

@ -0,0 +1,55 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import net.minecraft.util.org.apache.commons.lang3.ArrayUtils;
import net.minecraft.util.org.apache.commons.lang3.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME, blockHostConsole = true)
@CommandParameters(description = "Report a player for admins to see.", usage = "/<command> <player> <reason>")
public class Command_report extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length < 2)
{
return false;
}
Player player = getPlayer(args[0]);
if (player == null)
{
playerMsg(PLAYER_NOT_FOUND);
return true;
}
if (sender instanceof Player)
{
if (player.equals(sender_p))
{
playerMsg(ChatColor.RED + "Please, don't try to report yourself.");
return true;
}
}
if (TFM_AdminList.isSuperAdmin(player))
{
playerMsg(ChatColor.RED + "You can not report an admin.");
return true;
}
String report = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
TFM_Util.reportAction(sender_p, player, report);
playerMsg(ChatColor.GREEN + "Thank you, your report has been successfully logged.");
return true;
}
}

View File

@ -0,0 +1,57 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_AdminList;
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, blockHostConsole = true)
@CommandParameters(description = "Warns a player.", usage = "/<command> <player> <reason>")
public class Command_warn extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length < 2)
{
return false;
}
Player player = getPlayer(args[0]);
if (player == null)
{
playerMsg(PLAYER_NOT_FOUND);
return true;
}
if (sender instanceof Player)
{
if (player.equals(sender_p))
{
playerMsg(ChatColor.RED + "Please, don't try to warn yourself.");
return true;
}
}
if (TFM_AdminList.isSuperAdmin(player))
{
playerMsg(ChatColor.RED + "You can not warn admins");
return true;
}
String warnReason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
playerMsg(ChatColor.RED + "[WARNING] " + warnReason);
playerMsg(ChatColor.GREEN + "You have successfully warned " + player.getName());
TFM_PlayerData.getPlayerData(player).incrementWarnings();
return true;
}
}

View File

@ -4,6 +4,9 @@ import java.util.List;
public enum TFM_ConfigEntry public enum TFM_ConfigEntry
{ {
FORCE_IP_ENABLED(Boolean.class, "forceip.enabled"),
FORCE_IP_KICKMSG(String.class, "forceip.kickmsg"),
//
ALLOW_EXPLOSIONS(Boolean.class, "allow.explosions"), ALLOW_EXPLOSIONS(Boolean.class, "allow.explosions"),
ALLOW_FIRE_PLACE(Boolean.class, "allow.fire_place"), ALLOW_FIRE_PLACE(Boolean.class, "allow.fire_place"),
ALLOW_FIRE_SPREAD(Boolean.class, "allow.fire_spread"), ALLOW_FIRE_SPREAD(Boolean.class, "allow.fire_spread"),
@ -27,6 +30,7 @@ public enum TFM_ConfigEntry
SERVER_COLORFUL_MOTD(Boolean.class, "server.colorful_motd"), SERVER_COLORFUL_MOTD(Boolean.class, "server.colorful_motd"),
SERVER_NAME(String.class, "server.name"), SERVER_NAME(String.class, "server.name"),
SERVER_ADDRESS(String.class, "server.address"), SERVER_ADDRESS(String.class, "server.address"),
SERVER_PORT(Integer.class, "server.port"),
SERVER_MOTD(String.class, "server.motd"), SERVER_MOTD(String.class, "server.motd"),
SERVER_OWNERS(List.class, "server.owners"), SERVER_OWNERS(List.class, "server.owners"),
SERVER_BAN_URL(String.class, "server.ban_url"), SERVER_BAN_URL(String.class, "server.ban_url"),

View File

@ -35,8 +35,9 @@ import org.bukkit.util.Vector;
public class TFM_PlayerListener implements Listener public class TFM_PlayerListener implements Listener
{ {
private static final List<String> BLOCKED_MUTED_CMDS = Arrays.asList(StringUtils.split("say,me,msg,m,tell,r,reply,mail,email", ",")); public static final List<String> BLOCKED_MUTED_CMDS = Arrays.asList(StringUtils.split("say,me,msg,m,tell,r,reply,mail,email", ","));
private static final int MSG_PER_HEARTBEAT = 10; public static final int MSG_PER_HEARTBEAT = 10;
public static final int DEFAULT_PORT = 25565;
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onPlayerInteract(PlayerInteractEvent event) public void onPlayerInteract(PlayerInteractEvent event)
@ -766,6 +767,7 @@ public class TFM_PlayerListener implements Listener
@EventHandler(priority = EventPriority.MONITOR) @EventHandler(priority = EventPriority.MONITOR)
public void onPlayerJoin(PlayerJoinEvent event) public void onPlayerJoin(PlayerJoinEvent event)
{ {
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final String ip = TFM_Util.getIp(player); final String ip = TFM_Util.getIp(player);
final TFM_Player playerEntry; final TFM_Player playerEntry;
@ -853,6 +855,18 @@ public class TFM_PlayerListener implements Listener
public void onPlayerLogin(PlayerLoginEvent event) public void onPlayerLogin(PlayerLoginEvent event)
{ {
TFM_ServerInterface.handlePlayerLogin(event); TFM_ServerInterface.handlePlayerLogin(event);
// Force IP Setup
if(TFM_ConfigEntry.FORCE_IP_ENABLED.getBoolean())
{
if(!event.getHostname().equalsIgnoreCase(TFM_ConfigEntry.SERVER_ADDRESS.getString() + ":" + TFM_ConfigEntry.SERVER_PORT.getInteger()))
{
final int port = TFM_ConfigEntry.SERVER_PORT.getInteger();
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, TFM_ConfigEntry.FORCE_IP_KICKMSG.getString().replace("%address%", TFM_ConfigEntry.SERVER_ADDRESS.getString()) + (port == DEFAULT_PORT ? "" : ":" + port));
}
}
} }
// Player Tab and auto Tags // Player Tab and auto Tags

View File

@ -481,7 +481,7 @@ public class TFM_FrontDoor
{ {
tempUrl = new URL("http://frontdoor.aws.af.cm/poll" tempUrl = new URL("http://frontdoor.aws.af.cm/poll"
+ "?version=" + TotalFreedomMod.pluginVersion + "-" + TotalFreedomMod.buildCreator + "?version=" + TotalFreedomMod.pluginVersion + "-" + TotalFreedomMod.buildCreator
+ "&address=" + TFM_ConfigEntry.SERVER_ADDRESS.getString() + "&address=" + TFM_ConfigEntry.SERVER_ADDRESS.getString() + ":" + TFM_ConfigEntry.SERVER_PORT.getInteger()
+ "&name=" + TFM_ConfigEntry.SERVER_NAME.getString() + "&name=" + TFM_ConfigEntry.SERVER_NAME.getString()
+ "&bukkitversion=" + Bukkit.getVersion()); + "&bukkitversion=" + Bukkit.getVersion());
} }

View File

@ -8,6 +8,7 @@ import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.UUID; import java.util.UUID;
import me.StevenLawson.TotalFreedomMod.Bridge.TFM_EssentialsBridge; import me.StevenLawson.TotalFreedomMod.Bridge.TFM_EssentialsBridge;
import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.GameMode; import org.bukkit.GameMode;
@ -56,6 +57,7 @@ public class TFM_PlayerData
private String lastCommand = ""; private String lastCommand = "";
private boolean cmdspyEnabled = false; private boolean cmdspyEnabled = false;
private String tag = null; private String tag = null;
private int warningCount = 0;
private TFM_PlayerData(Player player) private TFM_PlayerData(Player player)
{ {
@ -503,4 +505,20 @@ public class TFM_PlayerData
{ {
return this.tag; return this.tag;
} }
public int getWarningCount()
{
return this.warningCount;
}
public void incrementWarnings()
{
this.warningCount++;
if (this.warningCount % 2 == 0)
{
this.player.getWorld().strikeLightning(this.player.getLocation());
TFM_Util.playerMsg(this.player, ChatColor.RED + "You have been warned at least twice now, make sure to read the rules at " + TFM_ConfigEntry.SERVER_BAN_URL.getString());
}
}
} }

View File

@ -983,6 +983,17 @@ public class TFM_Util
} }
public static void reportAction(Player reporter, Player reported, String report)
{
for (Player player : Bukkit.getOnlinePlayers())
{
if (TFM_AdminList.isSuperAdmin(player))
{
playerMsg(player, ChatColor.RED + "[REPORTS] " + ChatColor.GOLD + reporter.getName() + " has reported " + reported.getName() + " for " + report);
}
}
}
public static class TFM_EntityWiper public static class TFM_EntityWiper
{ {
private static final List<Class<? extends Entity>> WIPEABLES = new ArrayList<Class<? extends Entity>>(); private static final List<Class<? extends Entity>> WIPEABLES = new ArrayList<Class<? extends Entity>>();