1
0
mirror of https://github.com/moparisthebest/xAuth synced 2024-08-13 16:53:52 -04:00

updated to release version 1.1.5. I need to remember to update this more often

This commit is contained in:
CypherX 2011-03-31 01:17:22 -04:00
parent cc9d039b75
commit a34c0bdecd
6 changed files with 115 additions and 22 deletions

View File

@ -50,26 +50,32 @@ public class CommandHandler
{
if (plugin.checkPass(player, args[0]))
{
plugin.clearStrikes(player);
if (xAuth.settings.getBool("login.strikes.enabled"))
plugin.clearStrikes(player);
plugin.login(player);
player.sendMessage(xAuth.strings.getString("login.success"));
System.out.println("[" + pdfFile.getName() + "] Player '" + player.getName() + "' has authenticated");
}
else
{
plugin.addStrike(player);
player.sendMessage(xAuth.strings.getString("login.err.password"));
if (plugin.getStrikes(player) >= xAuth.settings.getInt("login.strikes.amount"))
if (xAuth.settings.getBool("login.strikes.enabled"))
{
String addr = player.getAddress().getAddress().getHostAddress();
Server server = plugin.getServer();
server.dispatchCommand(((CraftServer)server).getServer().console, "ban-ip " + addr);
server.dispatchCommand(((CraftServer)server).getServer().console, "kick " + player.getName());
plugin.clearStrikes(player);
System.out.println("[" + pdfFile.getName() + "] " + addr + " banned by Strike system");
plugin.addStrike(player);
if (plugin.getStrikes(player) >= xAuth.settings.getInt("login.strikes.amount"))
{
String addr = player.getAddress().getAddress().getHostAddress();
Server server = plugin.getServer();
server.dispatchCommand(((CraftServer)server).getServer().console, "ban-ip " + addr);
//server.dispatchCommand(((CraftServer)server).getServer().console, "kick " + player.getName());
player.kickPlayer(xAuth.strings.getString("login.err.kick"));
plugin.clearStrikes(player);
System.out.println("[" + pdfFile.getName() + "] " + addr + " banned by Strike system");
}
}
else
player.sendMessage(xAuth.strings.getString("login.err.password"));
}
}
}

View File

@ -19,6 +19,9 @@ public class Settings
"misc.allowed-cmds",
"login.strikes.enabled",
"login.strikes.amount",
"security.filter.enabled",
"security.filter.allowed",
"security.filter.blankname"
};
private static final String[][] keyUpdates =
@ -55,6 +58,9 @@ public class Settings
defaults.put("misc.autosave", true);
defaults.put("login.strikes.enabled", true);
defaults.put("login.strikes.amount", 5);
defaults.put("security.filter.enabled", true);
defaults.put("security.filter.allowed", "abcdefghijklmnopqrstuvwxyz0123456789_- ()[]{}");
defaults.put("security.filter.blankname", true);
}
public void updateKeys()
@ -82,6 +88,9 @@ public class Settings
config.setProperty(key, defaults.get(key));
settings.put(key, config.getProperty(key));
}
//clear defaults to free memory
defaults.clear();
}
public void updateValue(String key, Object value)
@ -101,6 +110,11 @@ public class Settings
return (Integer)settings.get(key);
}
public String getStr(String key)
{
return (String)settings.get(key);
}
@SuppressWarnings("unchecked")
public List<String> getStrList(String key)
{

View File

@ -11,10 +11,11 @@ public class Strings
{
"register.login", "register.usage", "register.err.disabled", "register.err.registered", "register.err.password",
"register.success1", "register.success2", "login.login", "login.usage", "login.err.registered", "login.err.logged",
"login.err.password", "login.success", "changepw.usage1", "changepw.usage2", "changepw.err.login", "changepw.err.disabled",
"changepw.err.registered", "changepw.success.self", "changepw.success.other", "unregister.usage", "unregister.success",
"reload.success", "toggle.usage", "toggle.err.permission", "toggle.success.reg", "toggle.success.pw",
"toggle.success.save", "misc.illegal", "misc.reloaded", "misc.enabled", "misc.disabled"
"login.err.password", "login.err.kick", "login.success", "changepw.usage1", "changepw.usage2", "changepw.err.login",
"changepw.err.disabled", "changepw.err.registered", "changepw.success.self", "changepw.success.other",
"unregister.usage", "unregister.success", "reload.success", "toggle.usage", "toggle.err.permission", "toggle.success.reg",
"toggle.success.pw", "toggle.success.save", "misc.illegal", "misc.reloaded", "misc.enabled", "misc.disabled",
"misc.filterkickmsg", "misc.blankkickmsg"
};
private static final String[][] keyUpdates = {};
@ -51,6 +52,7 @@ public class Strings
defaults.put("login.err.registered", "&cYou are not registered.");
defaults.put("login.err.logged", "&cYou are already logged in.");
defaults.put("login.err.password", "&cIncorrect password!");
defaults.put("login.err.kick", "Too many incorrect passwords!");
defaults.put("login.success", "&aYou are now logged in.");
defaults.put("changepw.usage1", "&cCorrect Usage: /changepw <newpassword>");
@ -76,6 +78,8 @@ public class Strings
defaults.put("misc.reloaded", "&cServer reloaded! You must log in again.");
defaults.put("misc.enabled", "enabled");
defaults.put("misc.disabled", "disabled");
defaults.put("misc.filterkickmsg", "Your name contains one or more illegal characters.");
defaults.put("misc.blankkickmsg", "Blank names are not allowed.");
}
private void updateKeys()

View File

@ -1,5 +1,5 @@
//xAuth 1.1.4
//Built against Bukkit #461 and CraftBukkit #556
//xAuth 1.1.5a
//Built against Bukkit #486 and CraftBukkit #602
package com.cypherx.xauth;
@ -7,6 +7,7 @@ import java.io.*;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.util.concurrent.ConcurrentHashMap;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@ -61,6 +62,7 @@ public class xAuth extends JavaPlugin
private ConcurrentHashMap<String, Session> sessions = new ConcurrentHashMap<String, Session>();
private ConcurrentHashMap<Player, Date> lastNotifyTimes = new ConcurrentHashMap<Player, Date>();
private ConcurrentHashMap<String, Integer> strikes = new ConcurrentHashMap<String, Integer>();
private ArrayList<String> illegalNames = new ArrayList<String>();
public void onEnable()
{
@ -121,15 +123,19 @@ public class xAuth extends JavaPlugin
pm.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS, playerListener, Event.Priority.Lowest, this);
pm.registerEvent(Event.Type.PLAYER_DROP_ITEM, playerListener, Event.Priority.Highest, this);
pm.registerEvent(Event.Type.PLAYER_PICKUP_ITEM, playerListener, Event.Priority.Highest, this);
//pm.registerEvent(Event.Type.PLAYER_INTERACT, playerListener, Event.Priority.Highest, this);
pm.registerEvent(Event.Type.PLAYER_ITEM, playerListener, Event.Priority.Highest, this);
pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Event.Priority.Highest, this);
pm.registerEvent(Event.Type.PLAYER_LOGIN, playerListener, Event.Priority.Highest, this);
pm.registerEvent(Event.Type.PLAYER_MOVE, playerListener, Event.Priority.Highest, this);
pm.registerEvent(Event.Type.PLAYER_QUIT, playerListener, Event.Priority.Lowest, this);
pm.registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Highest, this);
pm.registerEvent(Event.Type.BLOCK_INTERACT, blockListener, Priority.Highest, this);
//pm.registerEvent(Event.Type.BLOCK_PLACE, blockListener, Priority.Highest, this);
pm.registerEvent(Event.Type.BLOCK_PLACED, blockListener, Priority.Highest, this);
//pm.registerEvent(Event.Type.ENTITY_DAMAGE, entityListener, Priority.Highest, this);
pm.registerEvent(Event.Type.ENTITY_DAMAGED, entityListener, Priority.Highest, this);
pm.registerEvent(Event.Type.ENTITY_TARGET, entityListener, Priority.Highest, this);
@ -453,7 +459,7 @@ public class xAuth extends JavaPlugin
System.out.println("[" + pdfFile.getName() + "] Permissions plugin not detected, defaulting to ops.txt");
}
}
public String md5(String str)
{
try
@ -490,7 +496,26 @@ public class xAuth extends JavaPlugin
return true;
}
public Boolean isNameLegal(String pName)
{
pName = pName.toLowerCase();
if (illegalNames.contains(pName))
return false;
String allowed = settings.getStr("security.filter.allowed");
for(int i = 0; i < pName.length(); i++)
if (allowed.indexOf(pName.charAt(i)) == -1)
{
illegalNames.add(pName);
return false;
}
return true;
}
public void reload()
{
updateAuthFile();

View File

@ -1,5 +1,6 @@
package com.cypherx.xauth;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.player.*;
@ -16,6 +17,17 @@ public class xAuthPlayerListener extends PlayerListener
plugin = instance;
}
public void onPlayerLogin(PlayerLoginEvent event)
{
Player player = event.getPlayer();
if (xAuth.settings.getBool("security.filter.enabled") && !plugin.isNameLegal(player.getName()))
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, xAuth.strings.getString("misc.filterkickmsg"));
if (xAuth.settings.getBool("security.filter.blankname") && player.getName().trim().equals(""))
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, xAuth.strings.getString("misc.blankkickmsg"));
}
public void onPlayerJoin(PlayerEvent event)
{
Player player = event.getPlayer();
@ -55,6 +67,9 @@ public class xAuthPlayerListener extends PlayerListener
//Prevents player from being able to chat
public void onPlayerChat(PlayerChatEvent event)
{
//if (!xAuth.settings.getBool("limit.chat"))
//return;
if (event.isCancelled())
return;
@ -82,21 +97,50 @@ public class xAuthPlayerListener extends PlayerListener
plugin.handleEvent(player, event);
}
//Prevents player from moving
public void onPlayerMove(PlayerMoveEvent event)
/*public void onPlayerInteract(PlayerInteractEvent event)
{
//if (!xAuth.settings.getBool("limit.interact"))
//return;
if (event.isCancelled())
return;
Player player = event.getPlayer();
plugin.handleEvent(player, event);
}*/
//Prevents player from moving
public void onPlayerMove(PlayerMoveEvent event)
{
//if (!xAuth.settings.getBool("limit.movement"))
//return;
if (event.isCancelled())
return;
Location from = event.getFrom();
Location to = event.getTo();
if (from.getX() == to.getX() && from.getZ() == to.getZ())
{
if (from.getY() > to.getY())
return;
}
Player player = event.getPlayer();
plugin.handleEvent(player, event);
if (event.isCancelled())
player.teleportTo(event.getFrom());
//player.teleport(event.getFrom());
}
//Prevents player from picking up items
public void onPlayerPickupItem(PlayerPickupItemEvent event)
{
//if (!xAuth.settings.getBool("limit.pickup"))
//return;
if (event.isCancelled())
return;

View File

@ -1,6 +1,6 @@
name: xAuth
main: com.cypherx.xauth.xAuth
version: 1.1.4
version: 1.1.5a
commands:
register: