mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-10-05 18:08:05 +02:00
Update 2.7.14
* Add Slot Reservation system ( permission : authme.vip ) * Add ConsoleLogging in authme.log file ( disabled by default, check config ) * Save the main thread by different database access and saves * Perform login more quickly * CleanUp the code entirely * BungeeCord should be fixed :'( * Fix the Flat To MySQL converter * Teleport players correctly
This commit is contained in:
parent
468aaa18a3
commit
73c97a39e6
Binary file not shown.
2
pom.xml
2
pom.xml
@ -28,7 +28,7 @@
|
|||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
<version>2.7.13b2</version>
|
<version>2.7.14</version>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.bukkit</groupId>
|
<groupId>org.bukkit</groupId>
|
||||||
|
@ -113,12 +113,10 @@ public class AuthMe extends JavaPlugin {
|
|||||||
|
|
||||||
server = getServer();
|
server = getServer();
|
||||||
|
|
||||||
|
|
||||||
//Set Console Filter
|
//Set Console Filter
|
||||||
if (Settings.removePassword)
|
if (Settings.removePassword)
|
||||||
Bukkit.getLogger().setFilter(new ConsoleFilter());
|
Bukkit.getLogger().setFilter(new ConsoleFilter());
|
||||||
|
|
||||||
|
|
||||||
//Load MailApi
|
//Load MailApi
|
||||||
File mailFile = new File("lib", "mail.jar");
|
File mailFile = new File("lib", "mail.jar");
|
||||||
if (mailFile.exists()) {
|
if (mailFile.exists()) {
|
||||||
@ -248,7 +246,6 @@ public class AuthMe extends JavaPlugin {
|
|||||||
ConsoleLogger.info("Successfully hook with ChestShop!");
|
ConsoleLogger.info("Successfully hook with ChestShop!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//Find Permissions
|
//Find Permissions
|
||||||
if(Settings.isPermissionCheckEnabled) {
|
if(Settings.isPermissionCheckEnabled) {
|
||||||
RegisteredServiceProvider<Permission> permissionProvider =
|
RegisteredServiceProvider<Permission> permissionProvider =
|
||||||
@ -257,7 +254,8 @@ public class AuthMe extends JavaPlugin {
|
|||||||
permission = permissionProvider.getProvider();
|
permission = permissionProvider.getProvider();
|
||||||
else {
|
else {
|
||||||
ConsoleLogger.showError("Vault and Permissions plugins is needed for enable AuthMe Reloaded!");
|
ConsoleLogger.showError("Vault and Permissions plugins is needed for enable AuthMe Reloaded!");
|
||||||
this.getServer().getPluginManager().disablePlugin(this);
|
ConsoleLogger.showError("Server Shutdown for Security");
|
||||||
|
this.getServer().shutdown();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -289,13 +287,10 @@ public class AuthMe extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (NullPointerException ex) {
|
} catch (NullPointerException ex) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ConsoleLogger.info("Authme " + this.getDescription().getVersion() + " enabled");
|
ConsoleLogger.info("Authme " + this.getDescription().getVersion() + " enabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void checkChestShop() {
|
private void checkChestShop() {
|
||||||
if (!Settings.chestshop) {
|
if (!Settings.chestshop) {
|
||||||
this.ChestShop = 0;
|
this.ChestShop = 0;
|
||||||
@ -320,16 +315,12 @@ public class AuthMe extends JavaPlugin {
|
|||||||
ConsoleLogger.showError("Please Update your ChestShop version!");
|
ConsoleLogger.showError("Please Update your ChestShop version!");
|
||||||
}
|
}
|
||||||
} catch (NumberFormatException nfee) {
|
} catch (NumberFormatException nfee) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (NullPointerException npe) {}
|
} catch (NullPointerException npe) {}
|
||||||
catch (NoClassDefFoundError ncdfe) {}
|
catch (NoClassDefFoundError ncdfe) {}
|
||||||
catch (ClassCastException cce) {}
|
catch (ClassCastException cce) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkMultiverse() {
|
private void checkMultiverse() {
|
||||||
@ -362,7 +353,6 @@ public class AuthMe extends JavaPlugin {
|
|||||||
} else {
|
} else {
|
||||||
this.notifications = null;
|
this.notifications = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void combatTag() {
|
private void combatTag() {
|
||||||
@ -399,19 +389,13 @@ public class AuthMe extends JavaPlugin {
|
|||||||
if (database != null) {
|
if (database != null) {
|
||||||
database.close();
|
database.close();
|
||||||
}
|
}
|
||||||
//utils = Utils.getInstance();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Back style on start if avaible
|
|
||||||
*/
|
|
||||||
if(Settings.isBackupActivated && Settings.isBackupOnStop) {
|
if(Settings.isBackupActivated && Settings.isBackupOnStop) {
|
||||||
Boolean Backup = new PerformBackup(this).DoBackup();
|
Boolean Backup = new PerformBackup(this).DoBackup();
|
||||||
if(Backup) ConsoleLogger.info("Backup Complete");
|
if(Backup) ConsoleLogger.info("Backup Complete");
|
||||||
else ConsoleLogger.showError("Error while making Backup");
|
else ConsoleLogger.showError("Error while making Backup");
|
||||||
}
|
}
|
||||||
ConsoleLogger.info("Authme " + this.getDescription().getVersion() + " disabled");
|
ConsoleLogger.info("Authme " + this.getDescription().getVersion() + " disabled");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onReload() {
|
private void onReload() {
|
||||||
@ -421,7 +405,6 @@ public class AuthMe extends JavaPlugin {
|
|||||||
if (PlayersLogs.players.contains(player.getName())) {
|
if (PlayersLogs.players.contains(player.getName())) {
|
||||||
String name = player.getName().toLowerCase();
|
String name = player.getName().toLowerCase();
|
||||||
PlayerAuth pAuth = database.getAuth(name);
|
PlayerAuth pAuth = database.getAuth(name);
|
||||||
// if Mysql is unavaible
|
|
||||||
if(pAuth == null)
|
if(pAuth == null)
|
||||||
break;
|
break;
|
||||||
PlayerAuth auth = new PlayerAuth(name, pAuth.getHash(), pAuth.getIp(), new Date().getTime());
|
PlayerAuth auth = new PlayerAuth(name, pAuth.getHash(), pAuth.getIp(), new Date().getTime());
|
||||||
@ -446,7 +429,6 @@ public class AuthMe extends JavaPlugin {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} catch (Exception e) { }
|
} catch (Exception e) { }
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String name = player.getName().toLowerCase();
|
String name = player.getName().toLowerCase();
|
||||||
if ((PlayerCache.getInstance().isAuthenticated(name)) && (!player.isDead()) &&
|
if ((PlayerCache.getInstance().isAuthenticated(name)) && (!player.isDead()) &&
|
||||||
@ -454,7 +436,6 @@ public class AuthMe extends JavaPlugin {
|
|||||||
PlayerAuth auth = new PlayerAuth(player.getName().toLowerCase(), (int)player.getLocation().getX(), (int)player.getLocation().getY(), (int)player.getLocation().getZ());
|
PlayerAuth auth = new PlayerAuth(player.getName().toLowerCase(), (int)player.getLocation().getX(), (int)player.getLocation().getY(), (int)player.getLocation().getZ());
|
||||||
this.database.updateQuitLoc(auth);
|
this.database.updateQuitLoc(auth);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LimboCache.getInstance().hasLimboPlayer(name))
|
if (LimboCache.getInstance().hasLimboPlayer(name))
|
||||||
{
|
{
|
||||||
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
|
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
|
||||||
@ -468,14 +449,12 @@ public class AuthMe extends JavaPlugin {
|
|||||||
player.teleport(limbo.getLoc());
|
player.teleport(limbo.getLoc());
|
||||||
this.utils.addNormal(player, limbo.getGroup());
|
this.utils.addNormal(player, limbo.getGroup());
|
||||||
player.setOp(limbo.getOperator());
|
player.setOp(limbo.getOperator());
|
||||||
|
|
||||||
this.plugin.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
|
this.plugin.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
|
||||||
LimboCache.getInstance().deleteLimboPlayer(name);
|
LimboCache.getInstance().deleteLimboPlayer(name);
|
||||||
if (this.playerBackup.doesCacheExist(name)) {
|
if (this.playerBackup.doesCacheExist(name)) {
|
||||||
this.playerBackup.removeCache(name);
|
this.playerBackup.removeCache(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerCache.getInstance().removePlayer(name);
|
PlayerCache.getInstance().removePlayer(name);
|
||||||
player.saveData();
|
player.saveData();
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
@ -509,6 +488,12 @@ public class AuthMe extends JavaPlugin {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (player == null) {
|
||||||
|
for (Player p : this.getServer().getOnlinePlayers()) {
|
||||||
|
if (p.hasPermission("authme.vip"))
|
||||||
|
player = p;
|
||||||
|
}
|
||||||
|
}
|
||||||
return player;
|
return player;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,17 +16,65 @@
|
|||||||
|
|
||||||
package uk.org.whoami.authme;
|
package uk.org.whoami.authme;
|
||||||
|
|
||||||
|
import java.io.BufferedWriter;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.text.DateFormat;
|
||||||
|
import java.util.Calendar;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
|
||||||
|
import uk.org.whoami.authme.settings.Settings;
|
||||||
|
|
||||||
public class ConsoleLogger {
|
public class ConsoleLogger {
|
||||||
|
|
||||||
private static final Logger log = Logger.getLogger("Minecraft");
|
private static final Logger log = Logger.getLogger("Minecraft");
|
||||||
|
|
||||||
public static void info(String message) {
|
public static void info(String message) {
|
||||||
|
if (AuthMe.getInstance().isEnabled()) {
|
||||||
log.info("[AuthMe] " + message);
|
log.info("[AuthMe] " + message);
|
||||||
|
if (Settings.useLogging) {
|
||||||
|
Calendar date = Calendar.getInstance();
|
||||||
|
final String actually = "[" + DateFormat.getDateInstance().format(date.getTime()) + ", " + date.get(Calendar.HOUR_OF_DAY) + ":" + date.get(Calendar.MINUTE) + ":" + date.get(Calendar.SECOND) + "] " + message;
|
||||||
|
Bukkit.getScheduler().runTaskAsynchronously(AuthMe.getInstance(), new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
writeLog(actually);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void showError(String message) {
|
public static void showError(String message) {
|
||||||
|
if (AuthMe.getInstance().isEnabled()) {
|
||||||
log.severe("[AuthMe] ERROR: " + message);
|
log.severe("[AuthMe] ERROR: " + message);
|
||||||
|
if (Settings.useLogging) {
|
||||||
|
Calendar date = Calendar.getInstance();
|
||||||
|
final String actually = "[" + DateFormat.getDateInstance().format(date.getTime()) + ", " + date.get(Calendar.HOUR_OF_DAY) + ":" + date.get(Calendar.MINUTE) + ":" + date.get(Calendar.SECOND) + "] ERROR : " + message;
|
||||||
|
Bukkit.getScheduler().runTaskAsynchronously(AuthMe.getInstance(), new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
writeLog(actually);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void writeLog(String string) {
|
||||||
|
try {
|
||||||
|
FileWriter fw = new FileWriter(AuthMe.getInstance().getDataFolder() + File.separator + "authme.log", true);
|
||||||
|
BufferedWriter w = null;
|
||||||
|
w = new BufferedWriter(fw);
|
||||||
|
w.write(string);
|
||||||
|
w.newLine();
|
||||||
|
w.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
ConsoleLogger.showError(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -6,6 +6,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import me.muizers.Notifications.Notification;
|
import me.muizers.Notifications.Notification;
|
||||||
import net.md_5.bungee.BungeeCord;
|
import net.md_5.bungee.BungeeCord;
|
||||||
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
@ -58,15 +59,23 @@ public class Management {
|
|||||||
this.pm = plugin.getServer().getPluginManager();
|
this.pm = plugin.getServer().getPluginManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String performLogin(Player player, String password) {
|
public void performLogin(final Player player, final String password) {
|
||||||
|
final String name = player.getName().toLowerCase();
|
||||||
|
|
||||||
String name = player.getName().toLowerCase();
|
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
String ip = player.getAddress().getAddress().getHostAddress();
|
String ip = player.getAddress().getAddress().getHostAddress();
|
||||||
if (Settings.bungee) {
|
if (Settings.bungee) {
|
||||||
try {
|
try {
|
||||||
ip = BungeeCord.getInstance().getPlayer(player.getName()).getAddress().getAddress().getHostAddress();
|
for (ProxiedPlayer pp : BungeeCord.getInstance().getPlayers()) {
|
||||||
|
if (pp.getName().toLowerCase() == name) {
|
||||||
|
ip = pp.getAddress().getAddress().getHostAddress();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (NoClassDefFoundError ncdfe) {
|
} catch (NoClassDefFoundError ncdfe) {
|
||||||
ConsoleLogger.showError("Your BungeeCord version is outdated, you need a version with the latest API");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
World world = player.getWorld();
|
World world = player.getWorld();
|
||||||
@ -81,30 +90,25 @@ public class Management {
|
|||||||
}
|
}
|
||||||
if (Spawn.getInstance().getLocation() != null)
|
if (Spawn.getInstance().getLocation() != null)
|
||||||
spawnLoc = Spawn.getInstance().getLocation();
|
spawnLoc = Spawn.getInstance().getLocation();
|
||||||
|
|
||||||
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||||
return m._("logged_in");
|
player.sendMessage(m._("logged_in"));
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!database.isAuthAvailable(player.getName().toLowerCase())) {
|
if (!database.isAuthAvailable(player.getName().toLowerCase())) {
|
||||||
return m._("user_unknown");
|
player.sendMessage(m._("user_unknown"));
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerAuth pAuth = database.getAuth(name);
|
PlayerAuth pAuth = database.getAuth(name);
|
||||||
// if Mysql is unavaible
|
if(pAuth == null) {
|
||||||
if(pAuth == null)
|
player.sendMessage(m._("user_unknown"));
|
||||||
return m._("user_unknown");
|
return;
|
||||||
|
}
|
||||||
//if columnGroup is set
|
if(!Settings.getMySQLColumnGroup.isEmpty() && pAuth.getGroupId() == Settings.getNonActivatedGroup) {
|
||||||
if(!Settings.getMySQLColumnGroup.isEmpty() && pAuth.getGroupId() == Settings.getNonActivatedGroup) {
|
player.sendMessage(m._("vb_nonActiv"));
|
||||||
return m._("vb_nonActiv");
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String hash = pAuth.getHash();
|
String hash = pAuth.getHash();
|
||||||
String email = pAuth.getEmail();
|
String email = pAuth.getEmail();
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if(!passpartu) {
|
if(!passpartu) {
|
||||||
if (Settings.useCaptcha) {
|
if (Settings.useCaptcha) {
|
||||||
@ -115,39 +119,40 @@ public class Management {
|
|||||||
plugin.captcha.remove(name);
|
plugin.captcha.remove(name);
|
||||||
plugin.captcha.put(name, i);
|
plugin.captcha.put(name, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(plugin.captcha.containsKey(name) && plugin.captcha.get(name) > Settings.maxLoginTry) {
|
if(plugin.captcha.containsKey(name) && plugin.captcha.get(name) > Settings.maxLoginTry) {
|
||||||
player.sendMessage(m._("need_captcha"));
|
player.sendMessage(m._("need_captcha"));
|
||||||
plugin.cap.put(name, rdm.nextString());
|
plugin.cap.put(name, rdm.nextString());
|
||||||
return "Type : /captcha " + plugin.cap.get(name);
|
player.sendMessage("Type : /captcha " + plugin.cap.get(name));
|
||||||
|
return;
|
||||||
} else if (plugin.captcha.containsKey(name) && plugin.captcha.get(name) > Settings.maxLoginTry) {
|
} else if (plugin.captcha.containsKey(name) && plugin.captcha.get(name) > Settings.maxLoginTry) {
|
||||||
try {
|
try {
|
||||||
plugin.captcha.remove(name);
|
plugin.captcha.remove(name);
|
||||||
plugin.cap.remove(name);
|
plugin.cap.remove(name);
|
||||||
} catch (NullPointerException npe) {
|
} catch (NullPointerException npe) {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (PasswordSecurity.comparePasswordWithHash(password, hash, name)) {
|
if (PasswordSecurity.comparePasswordWithHash(password, hash, name)) {
|
||||||
PlayerAuth auth = new PlayerAuth(name, hash, ip, new Date().getTime(), email);
|
PlayerAuth auth = new PlayerAuth(name, hash, ip, new Date().getTime(), email);
|
||||||
|
|
||||||
database.updateSession(auth);
|
database.updateSession(auth);
|
||||||
PlayerCache.getInstance().addPlayer(auth);
|
PlayerCache.getInstance().addPlayer(auth);
|
||||||
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
|
final LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
|
||||||
|
PlayerAuth getAuth = database.getAuth(name);
|
||||||
if (limbo != null) {
|
if (limbo != null) {
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
player.setOp(limbo.getOperator());
|
player.setOp(limbo.getOperator());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
this.utils.addNormal(player, limbo.getGroup());
|
utils.addNormal(player, limbo.getGroup());
|
||||||
|
|
||||||
|
|
||||||
if ((Settings.isTeleportToSpawnEnabled) && (!Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())))
|
if ((Settings.isTeleportToSpawnEnabled) && (!Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())))
|
||||||
{
|
{
|
||||||
if ((Settings.isSaveQuitLocationEnabled) && (this.database.getAuth(name).getQuitLocY() != 0))
|
if ((Settings.isSaveQuitLocationEnabled) && (getAuth.getQuitLocY() != 0))
|
||||||
{
|
{
|
||||||
this.utils.packCoords(this.database.getAuth(name).getQuitLocX(), this.database.getAuth(name).getQuitLocY(), this.database.getAuth(name).getQuitLocZ(), player);
|
utils.packCoords(getAuth.getQuitLocX(), getAuth.getQuitLocY(), getAuth.getQuitLocZ(), player);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
@ -157,11 +162,15 @@ public class Management {
|
|||||||
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
||||||
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
||||||
}
|
}
|
||||||
player.teleport(tpEvent.getTo());
|
final Location fLoc = tpEvent.getTo();
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
player.teleport(fLoc);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())) {
|
else if (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())) {
|
||||||
SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawnLoc, true);
|
SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawnLoc, true);
|
||||||
@ -170,12 +179,18 @@ public class Management {
|
|||||||
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
||||||
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
||||||
}
|
}
|
||||||
player.teleport(tpEvent.getTo());
|
final Location fLoc = tpEvent.getTo();
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
player.teleport(fLoc);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((Settings.isSaveQuitLocationEnabled) && (this.database.getAuth(name).getQuitLocY() != 0))
|
else if ((Settings.isSaveQuitLocationEnabled) && (getAuth.getQuitLocY() != 0))
|
||||||
{
|
{
|
||||||
this.utils.packCoords(this.database.getAuth(name).getQuitLocX(), this.database.getAuth(name).getQuitLocY(), this.database.getAuth(name).getQuitLocZ(), player);
|
utils.packCoords(getAuth.getQuitLocX(), getAuth.getQuitLocY(), getAuth.getQuitLocZ(), player);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, limbo.getLoc());
|
AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, limbo.getLoc());
|
||||||
@ -184,12 +199,22 @@ public class Management {
|
|||||||
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
||||||
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
||||||
}
|
}
|
||||||
player.teleport(tpEvent.getTo());
|
final Location fLoc = tpEvent.getTo();
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
player.teleport(fLoc);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
player.setGameMode(GameMode.getByValue(limbo.getGameMode()));
|
player.setGameMode(GameMode.getByValue(limbo.getGameMode()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (Settings.protectInventoryBeforeLogInEnabled && player.hasPlayedBefore()) {
|
if (Settings.protectInventoryBeforeLogInEnabled && player.hasPlayedBefore()) {
|
||||||
RestoreInventoryEvent event = new RestoreInventoryEvent(player, limbo.getInventory(), limbo.getArmour());
|
RestoreInventoryEvent event = new RestoreInventoryEvent(player, limbo.getInventory(), limbo.getArmour());
|
||||||
@ -199,14 +224,12 @@ public class Management {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
player.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
|
player.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
|
||||||
player.getServer().getScheduler().cancelTask(limbo.getMessageTaskId());
|
player.getServer().getScheduler().cancelTask(limbo.getMessageTaskId());
|
||||||
LimboCache.getInstance().deleteLimboPlayer(name);
|
LimboCache.getInstance().deleteLimboPlayer(name);
|
||||||
if (this.playerCache.doesCacheExist(name)) {
|
if (playerCache.doesCacheExist(name)) {
|
||||||
this.playerCache.removeCache(name);
|
playerCache.removeCache(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -223,7 +246,6 @@ public class Management {
|
|||||||
PlayersLogs.players.add(player.getName());
|
PlayersLogs.players.add(player.getName());
|
||||||
pllog.save();
|
pllog.save();
|
||||||
} catch (NullPointerException ex) {
|
} catch (NullPointerException ex) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Bukkit.getServer().getPluginManager().callEvent(new LoginEvent(player, true));
|
Bukkit.getServer().getPluginManager().callEvent(new LoginEvent(player, true));
|
||||||
@ -242,19 +264,35 @@ public class Management {
|
|||||||
if(plugin.notifications != null) {
|
if(plugin.notifications != null) {
|
||||||
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged in!"));
|
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged in!"));
|
||||||
}
|
}
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
player.saveData();
|
player.saveData();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (!Settings.noConsoleSpam)
|
if (!Settings.noConsoleSpam)
|
||||||
ConsoleLogger.info(player.getName() + " used the wrong password");
|
ConsoleLogger.info(player.getName() + " used the wrong password");
|
||||||
if (Settings.isKickOnWrongPasswordEnabled) {
|
if (Settings.isKickOnWrongPasswordEnabled) {
|
||||||
try {
|
try {
|
||||||
int gm = AuthMePlayerListener.gameMode.get(name);
|
final int gm = AuthMePlayerListener.gameMode.get(name);
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
player.setGameMode(GameMode.getByValue(gm));
|
player.setGameMode(GameMode.getByValue(gm));
|
||||||
|
}
|
||||||
|
});
|
||||||
} catch (NullPointerException npe) {}
|
} catch (NullPointerException npe) {}
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
player.kickPlayer(m._("wrong_pwd"));
|
player.kickPlayer(m._("wrong_pwd"));
|
||||||
|
}
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
return (m._("wrong_pwd"));
|
player.sendMessage(m._("wrong_pwd"));
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -262,26 +300,35 @@ public class Management {
|
|||||||
PlayerAuth auth = new PlayerAuth(name, hash, ip, new Date().getTime(), email);
|
PlayerAuth auth = new PlayerAuth(name, hash, ip, new Date().getTime(), email);
|
||||||
database.updateSession(auth);
|
database.updateSession(auth);
|
||||||
PlayerCache.getInstance().addPlayer(auth);
|
PlayerCache.getInstance().addPlayer(auth);
|
||||||
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
|
final LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
|
||||||
if (limbo != null) {
|
if (limbo != null) {
|
||||||
|
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable(){
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
player.setOp(limbo.getOperator());
|
player.setOp(limbo.getOperator());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
this.utils.addNormal(player, limbo.getGroup());
|
utils.addNormal(player, limbo.getGroup());
|
||||||
|
|
||||||
|
|
||||||
if ((Settings.isTeleportToSpawnEnabled) && (!Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())))
|
if ((Settings.isTeleportToSpawnEnabled) && (!Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())))
|
||||||
{
|
{
|
||||||
if ((Settings.isSaveQuitLocationEnabled) && (this.database.getAuth(name).getQuitLocY() != 0)) {
|
if ((Settings.isSaveQuitLocationEnabled) && (database.getAuth(name).getQuitLocY() != 0)) {
|
||||||
Location quitLoc = new Location(player.getWorld(), this.database.getAuth(name).getQuitLocX() + 0.5D, this.database.getAuth(name).getQuitLocY() + 0.5D, this.database.getAuth(name).getQuitLocZ() + 0.5D);
|
Location quitLoc = new Location(player.getWorld(), database.getAuth(name).getQuitLocX() + 0.5D, database.getAuth(name).getQuitLocY() + 0.5D, database.getAuth(name).getQuitLocZ() + 0.5D);
|
||||||
AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, quitLoc);
|
AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, quitLoc);
|
||||||
pm.callEvent(tpEvent);
|
pm.callEvent(tpEvent);
|
||||||
if(!tpEvent.isCancelled()) {
|
if(!tpEvent.isCancelled()) {
|
||||||
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
||||||
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
||||||
}
|
}
|
||||||
player.teleport(tpEvent.getTo());
|
final Location fLoc = tpEvent.getTo();
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
player.teleport(fLoc);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -292,10 +339,15 @@ public class Management {
|
|||||||
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
||||||
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
||||||
}
|
}
|
||||||
player.teleport(tpEvent.getTo());
|
final Location fLoc = tpEvent.getTo();
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
player.teleport(fLoc);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())) {
|
else if (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName())) {
|
||||||
|
|
||||||
@ -305,18 +357,30 @@ public class Management {
|
|||||||
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
||||||
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
||||||
}
|
}
|
||||||
player.teleport(tpEvent.getTo());
|
final Location fLoc = tpEvent.getTo();
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
player.teleport(fLoc);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((Settings.isSaveQuitLocationEnabled) && (this.database.getAuth(name).getQuitLocY() != 0)) {
|
else if ((Settings.isSaveQuitLocationEnabled) && (database.getAuth(name).getQuitLocY() != 0)) {
|
||||||
Location quitLoc = new Location(player.getWorld(), this.database.getAuth(name).getQuitLocX() + 0.5D, this.database.getAuth(name).getQuitLocY() + 0.5D, this.database.getAuth(name).getQuitLocZ() + 0.5D);
|
Location quitLoc = new Location(player.getWorld(), database.getAuth(name).getQuitLocX() + 0.5D, database.getAuth(name).getQuitLocY() + 0.5D, database.getAuth(name).getQuitLocZ() + 0.5D);
|
||||||
AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, quitLoc);
|
AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(player, quitLoc);
|
||||||
pm.callEvent(tpEvent);
|
pm.callEvent(tpEvent);
|
||||||
if(!tpEvent.isCancelled()) {
|
if(!tpEvent.isCancelled()) {
|
||||||
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
||||||
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
||||||
}
|
}
|
||||||
player.teleport(tpEvent.getTo());
|
final Location fLoc = tpEvent.getTo();
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
player.teleport(fLoc);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -327,12 +391,22 @@ public class Management {
|
|||||||
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
if (!tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).isLoaded()) {
|
||||||
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
tpEvent.getTo().getWorld().getChunkAt(tpEvent.getTo()).load();
|
||||||
}
|
}
|
||||||
player.teleport(tpEvent.getTo());
|
final Location fLoc = tpEvent.getTo();
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
player.teleport(fLoc);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
player.setGameMode(GameMode.getByValue(limbo.getGameMode()));
|
player.setGameMode(GameMode.getByValue(limbo.getGameMode()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (Settings.protectInventoryBeforeLogInEnabled && player.hasPlayedBefore()) {
|
if (Settings.protectInventoryBeforeLogInEnabled && player.hasPlayedBefore()) {
|
||||||
RestoreInventoryEvent event = new RestoreInventoryEvent(player, limbo.getInventory(), limbo.getArmour());
|
RestoreInventoryEvent event = new RestoreInventoryEvent(player, limbo.getInventory(), limbo.getArmour());
|
||||||
@ -342,12 +416,11 @@ public class Management {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
player.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
|
player.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
|
||||||
player.getServer().getScheduler().cancelTask(limbo.getMessageTaskId());
|
player.getServer().getScheduler().cancelTask(limbo.getMessageTaskId());
|
||||||
LimboCache.getInstance().deleteLimboPlayer(name);
|
LimboCache.getInstance().deleteLimboPlayer(name);
|
||||||
if (this.playerCache.doesCacheExist(name)) {
|
if (playerCache.doesCacheExist(name)) {
|
||||||
this.playerCache.removeCache(name);
|
playerCache.removeCache(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -382,15 +455,24 @@ public class Management {
|
|||||||
if(plugin.notifications != null) {
|
if(plugin.notifications != null) {
|
||||||
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged in!"));
|
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged in!"));
|
||||||
}
|
}
|
||||||
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
player.saveData();
|
player.saveData();
|
||||||
this.passpartu = false;
|
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
passpartu = false;
|
||||||
|
}
|
||||||
} catch (NoSuchAlgorithmException ex) {
|
} catch (NoSuchAlgorithmException ex) {
|
||||||
ConsoleLogger.showError(ex.getMessage());
|
ConsoleLogger.showError(ex.getMessage());
|
||||||
return (m._("error"));
|
player.sendMessage(m._("error"));
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
return "";
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayOtherAccounts(PlayerAuth auth) {
|
private void displayOtherAccounts(PlayerAuth auth) {
|
||||||
@ -427,5 +509,4 @@ public class Management {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
*/
|
*/
|
||||||
package uk.org.whoami.authme;
|
package uk.org.whoami.authme;
|
||||||
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
@ -32,7 +31,6 @@ public class PerformBackup {
|
|||||||
|
|
||||||
public PerformBackup(AuthMe instance) {
|
public PerformBackup(AuthMe instance) {
|
||||||
this.setInstance(instance);
|
this.setInstance(instance);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean DoBackup() {
|
public boolean DoBackup() {
|
||||||
@ -56,13 +54,10 @@ public class PerformBackup {
|
|||||||
dirBackup.mkdir();
|
dirBackup.mkdir();
|
||||||
if(checkWindows(Settings.backupWindowsPath)) {
|
if(checkWindows(Settings.backupWindowsPath)) {
|
||||||
String executeCmd = Settings.backupWindowsPath+"\\bin\\mysqldump.exe -u " + dbUserName + " -p" + dbPassword + " " + dbName + " --tables " + tblname + " -r " + path+".sql";
|
String executeCmd = Settings.backupWindowsPath+"\\bin\\mysqldump.exe -u " + dbUserName + " -p" + dbPassword + " " + dbName + " --tables " + tblname + " -r " + path+".sql";
|
||||||
//ConsoleLogger.info(executeCmd);
|
|
||||||
Process runtimeProcess;
|
Process runtimeProcess;
|
||||||
try {
|
try {
|
||||||
//System.out.println("path "+path+" cmd "+executeCmd);
|
|
||||||
runtimeProcess = Runtime.getRuntime().exec(executeCmd);
|
runtimeProcess = Runtime.getRuntime().exec(executeCmd);
|
||||||
int processComplete = runtimeProcess.waitFor();
|
int processComplete = runtimeProcess.waitFor();
|
||||||
|
|
||||||
if (processComplete == 0) {
|
if (processComplete == 0) {
|
||||||
ConsoleLogger.info("Backup created successfully");
|
ConsoleLogger.info("Backup created successfully");
|
||||||
return true;
|
return true;
|
||||||
@ -76,10 +71,8 @@ public class PerformBackup {
|
|||||||
String executeCmd = "mysqldump -u " + dbUserName + " -p" + dbPassword + " " + dbName + " --tables " + tblname + " -r " + path+".sql";
|
String executeCmd = "mysqldump -u " + dbUserName + " -p" + dbPassword + " " + dbName + " --tables " + tblname + " -r " + path+".sql";
|
||||||
Process runtimeProcess;
|
Process runtimeProcess;
|
||||||
try {
|
try {
|
||||||
//System.out.println("path "+path+" cmd "+executeCmd);
|
|
||||||
runtimeProcess = Runtime.getRuntime().exec(executeCmd);
|
runtimeProcess = Runtime.getRuntime().exec(executeCmd);
|
||||||
int processComplete = runtimeProcess.waitFor();
|
int processComplete = runtimeProcess.waitFor();
|
||||||
|
|
||||||
if (processComplete == 0) {
|
if (processComplete == 0) {
|
||||||
ConsoleLogger.info("Backup created successfully");
|
ConsoleLogger.info("Backup created successfully");
|
||||||
return true;
|
return true;
|
||||||
@ -100,15 +93,12 @@ public class PerformBackup {
|
|||||||
dirBackup.mkdir();
|
dirBackup.mkdir();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
copy(new File("plugins/AuthMe/"+backend),new File(path+".db"));
|
copy(new File("plugins/AuthMe/"+backend),new File(path+".db"));
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,9 +108,7 @@ public class PerformBackup {
|
|||||||
*/
|
*/
|
||||||
private boolean checkWindows(String windowsPath) {
|
private boolean checkWindows(String windowsPath) {
|
||||||
String isWin = System.getProperty("os.name").toLowerCase();
|
String isWin = System.getProperty("os.name").toLowerCase();
|
||||||
|
|
||||||
if(isWin.indexOf("win") >= 0) {
|
if(isWin.indexOf("win") >= 0) {
|
||||||
//ConsoleLogger.info(windowsPath+"\\bin\\mysqldump.exe");
|
|
||||||
if(new File(windowsPath+"\\bin\\mysqldump.exe").exists()) {
|
if(new File(windowsPath+"\\bin\\mysqldump.exe").exists()) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@ -128,8 +116,6 @@ public class PerformBackup {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else return false;
|
} else return false;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -15,6 +15,10 @@ import org.bukkit.Bukkit;
|
|||||||
import uk.org.whoami.authme.cache.auth.PlayerAuth;
|
import uk.org.whoami.authme.cache.auth.PlayerAuth;
|
||||||
import uk.org.whoami.authme.settings.Settings;
|
import uk.org.whoami.authme.settings.Settings;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class SendMailSSL {
|
public class SendMailSSL {
|
||||||
|
|
||||||
public AuthMe instance;
|
public AuthMe instance;
|
||||||
@ -63,9 +67,7 @@ public class SendMailSSL {
|
|||||||
text = text.replaceAll("<servername>", instance.getServer().getServerName());
|
text = text.replaceAll("<servername>", instance.getServer().getServerName());
|
||||||
text = text.replaceAll("<generatedpass>", newPass);
|
text = text.replaceAll("<generatedpass>", newPass);
|
||||||
message.setText(text);
|
message.setText(text);
|
||||||
|
|
||||||
Bukkit.getScheduler().runTaskAsynchronously(instance, new Runnable() {
|
Bukkit.getScheduler().runTaskAsynchronously(instance, new Runnable() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
@ -73,16 +75,13 @@ public class SendMailSSL {
|
|||||||
} catch (MessagingException e) {
|
} catch (MessagingException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if(!Settings.noConsoleSpam)
|
if(!Settings.noConsoleSpam)
|
||||||
ConsoleLogger.info("Email sent to : " + auth.getNickname());
|
ConsoleLogger.info("Email sent to : " + auth.getNickname());
|
||||||
|
|
||||||
} catch (MessagingException e) {
|
} catch (MessagingException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -24,17 +24,11 @@ import uk.org.whoami.authme.settings.Settings;
|
|||||||
* @author stefano
|
* @author stefano
|
||||||
*/
|
*/
|
||||||
public class Utils {
|
public class Utils {
|
||||||
//private Settings settings = Settings.getInstance();
|
|
||||||
private String currentGroup;
|
private String currentGroup;
|
||||||
private static Utils singleton;
|
private static Utils singleton;
|
||||||
private String unLoggedGroup = Settings.getUnloggedinGroup;
|
private String unLoggedGroup = Settings.getUnloggedinGroup;
|
||||||
BukkitTask id;
|
BukkitTask id;
|
||||||
/*
|
|
||||||
public Utils(Player player) {
|
|
||||||
this.player = player;
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
public void setGroup(Player player, groupType group) {
|
public void setGroup(Player player, groupType group) {
|
||||||
if (!player.isOnline())
|
if (!player.isOnline())
|
||||||
return;
|
return;
|
||||||
@ -59,51 +53,36 @@ public class Utils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String removeAll(Player player) {
|
public String removeAll(Player player) {
|
||||||
|
|
||||||
if(!Utils.getInstance().useGroupSystem()){
|
if(!Utils.getInstance().useGroupSystem()){
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !Settings.getJoinPermissions.isEmpty() ) {
|
if( !Settings.getJoinPermissions.isEmpty() ) {
|
||||||
hasPermOnJoin(player);
|
hasPermOnJoin(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.currentGroup = AuthMe.permission.getPrimaryGroup(player.getWorld(),player.getName().toString());
|
this.currentGroup = AuthMe.permission.getPrimaryGroup(player.getWorld(),player.getName().toString());
|
||||||
//System.out.println("current grop" + currentGroup);
|
|
||||||
if(AuthMe.permission.playerRemoveGroup(player.getWorld(),player.getName().toString(), currentGroup) && AuthMe.permission.playerAddGroup(player.getWorld(),player.getName().toString(),this.unLoggedGroup)) {
|
if(AuthMe.permission.playerRemoveGroup(player.getWorld(),player.getName().toString(), currentGroup) && AuthMe.permission.playerAddGroup(player.getWorld(),player.getName().toString(),this.unLoggedGroup)) {
|
||||||
|
|
||||||
return currentGroup;
|
return currentGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean addNormal(Player player, String group) {
|
public boolean addNormal(Player player, String group) {
|
||||||
if(!Utils.getInstance().useGroupSystem()){
|
if(!Utils.getInstance().useGroupSystem()){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// System.out.println("in add normal");
|
|
||||||
/* if (AuthMe.permission.playerRemove(this.player, "-*"))
|
|
||||||
return true;
|
|
||||||
*/
|
|
||||||
if(AuthMe.permission.playerRemoveGroup(player.getWorld(),player.getName().toString(),this.unLoggedGroup) && AuthMe.permission.playerAddGroup(player.getWorld(),player.getName().toString(),group)) {
|
if(AuthMe.permission.playerRemoveGroup(player.getWorld(),player.getName().toString(),this.unLoggedGroup) && AuthMe.permission.playerAddGroup(player.getWorld(),player.getName().toString(),group)) {
|
||||||
//System.out.println("vecchio "+this.unLoggedGroup+ "nuovo" + group);
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String hasPermOnJoin(Player player) {
|
private String hasPermOnJoin(Player player) {
|
||||||
/* if(Settings.getJoinPermissions.isEmpty())
|
|
||||||
return null; */
|
|
||||||
Iterator<String> iter = Settings.getJoinPermissions.iterator();
|
Iterator<String> iter = Settings.getJoinPermissions.iterator();
|
||||||
while (iter.hasNext()) {
|
while (iter.hasNext()) {
|
||||||
String permission = iter.next();
|
String permission = iter.next();
|
||||||
// System.out.println("permissions? "+ permission);
|
|
||||||
|
|
||||||
if(AuthMe.permission.playerHas(player, permission)){
|
if(AuthMe.permission.playerHas(player, permission)){
|
||||||
// System.out.println("player has permissions " +permission);
|
|
||||||
AuthMe.permission.playerAddTransient(player, permission);
|
AuthMe.permission.playerAddTransient(player, permission);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -112,19 +91,14 @@ public class Utils {
|
|||||||
|
|
||||||
public boolean isUnrestricted(Player player) {
|
public boolean isUnrestricted(Player player) {
|
||||||
|
|
||||||
|
|
||||||
if(Settings.getUnrestrictedName.isEmpty() || Settings.getUnrestrictedName == null)
|
if(Settings.getUnrestrictedName.isEmpty() || Settings.getUnrestrictedName == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// System.out.println("name to escape "+player.getName());
|
if(Settings.getUnrestrictedName.contains(player.getName()))
|
||||||
if(Settings.getUnrestrictedName.contains(player.getName())) {
|
|
||||||
// System.out.println("name to escape correctly"+player.getName());
|
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
public static Utils getInstance() {
|
public static Utils getInstance() {
|
||||||
|
|
||||||
@ -138,14 +112,13 @@ public class Utils {
|
|||||||
if(Settings.isPermissionCheckEnabled && !Settings.getUnloggedinGroup.isEmpty()) {
|
if(Settings.isPermissionCheckEnabled && !Settings.getUnloggedinGroup.isEmpty()) {
|
||||||
return true;
|
return true;
|
||||||
} return false;
|
} return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void packCoords(int x, int y, int z, final Player pl)
|
public void packCoords(int x, int y, int z, final Player pl)
|
||||||
{
|
{
|
||||||
final World world = pl.getWorld();
|
final World world = pl.getWorld();
|
||||||
final int fY = y;
|
final int fY = y;
|
||||||
final Location loc = new Location(world, x + 0.5D, y + 0.6D, z + 0.5D);
|
final Location loc = new Location(world, x, y + 0.6D, z);
|
||||||
|
|
||||||
AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(pl, loc);
|
AuthMeTeleportEvent tpEvent = new AuthMeTeleportEvent(pl, loc);
|
||||||
AuthMe.getInstance().getServer().getPluginManager().callEvent(tpEvent);
|
AuthMe.getInstance().getServer().getPluginManager().callEvent(tpEvent);
|
||||||
@ -161,24 +134,18 @@ public class Utils {
|
|||||||
public void run() {
|
public void run() {
|
||||||
int current = (int)pl.getLocation().getY();
|
int current = (int)pl.getLocation().getY();
|
||||||
World currentWorld = pl.getWorld();
|
World currentWorld = pl.getWorld();
|
||||||
|
|
||||||
if (current != fY && world.getName() == currentWorld.getName()) {
|
if (current != fY && world.getName() == currentWorld.getName()) {
|
||||||
pl.teleport(loc);
|
pl.teleport(loc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}, 1L, 20L);
|
}, 1L, 20L);
|
||||||
|
|
||||||
|
|
||||||
Bukkit.getScheduler().runTaskLaterAsynchronously(AuthMe.authme, new Runnable()
|
Bukkit.getScheduler().runTaskLaterAsynchronously(AuthMe.authme, new Runnable()
|
||||||
{
|
{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
id.cancel();
|
id.cancel();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}, 60L);
|
}, 60L);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -205,8 +172,6 @@ public class Utils {
|
|||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,18 +186,13 @@ public class Utils {
|
|||||||
|
|
||||||
if (inputToken.isEmpty() )
|
if (inputToken.isEmpty() )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
Scanner reader = null;
|
Scanner reader = null;
|
||||||
try {
|
try {
|
||||||
reader = new Scanner(file);
|
reader = new Scanner(file);
|
||||||
|
|
||||||
while (reader.hasNextLine()) {
|
while (reader.hasNextLine()) {
|
||||||
final String line = reader.nextLine();
|
final String line = reader.nextLine();
|
||||||
|
|
||||||
if (line.contains(":")) {
|
if (line.contains(":")) {
|
||||||
String[] tokenInfo = line.split(":");
|
String[] tokenInfo = line.split(":");
|
||||||
//System.err.println("Authme input token "+inputToken+" saved token "+tokenInfo[0]);
|
|
||||||
//System.err.println("Authme time "+System.currentTimeMillis()/1000+"saved time "+Integer.parseInt(tokenInfo[1]));
|
|
||||||
if(tokenInfo[0].equals(inputToken) && System.currentTimeMillis()/1000-30 <= Integer.parseInt(tokenInfo[1]) ) {
|
if(tokenInfo[0].equals(inputToken) && System.currentTimeMillis()/1000-30 <= Integer.parseInt(tokenInfo[1]) ) {
|
||||||
file.delete();
|
file.delete();
|
||||||
reader.close();
|
reader.close();
|
||||||
@ -243,7 +203,6 @@ public class Utils {
|
|||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
reader.close();
|
reader.close();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -254,14 +213,13 @@ public class Utils {
|
|||||||
// obtain new random token
|
// obtain new random token
|
||||||
Random rnd = new Random ();
|
Random rnd = new Random ();
|
||||||
char[] arr = new char[5];
|
char[] arr = new char[5];
|
||||||
|
|
||||||
for (int i=0; i<5; i++) {
|
for (int i=0; i<5; i++) {
|
||||||
int n = rnd.nextInt (36);
|
int n = rnd.nextInt (36);
|
||||||
arr[i] = (char) (n < 10 ? '0'+n : 'a'+n-10);
|
arr[i] = (char) (n < 10 ? '0'+n : 'a'+n-10);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new String(arr);
|
return new String(arr);
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum groupType {
|
public enum groupType {
|
||||||
UNREGISTERED, REGISTERED, NOTLOGGEDIN, LOGGEDIN
|
UNREGISTERED, REGISTERED, NOTLOGGEDIN, LOGGEDIN
|
||||||
}
|
}
|
||||||
|
@ -140,7 +140,6 @@ public class API {
|
|||||||
} catch (NullPointerException ex) {
|
} catch (NullPointerException ex) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getNickRegex() {
|
public static String getNickRegex() {
|
||||||
@ -173,18 +172,14 @@ public class API {
|
|||||||
player.getInventory().setArmorContents(armor);
|
player.getInventory().setArmorContents(armor);
|
||||||
} catch (NullPointerException npe) {
|
} catch (NullPointerException npe) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveAuth(final PlayerAuth auth) {
|
public void saveAuth(final PlayerAuth auth) {
|
||||||
instance.getServer().getScheduler().runTask(instance, new Runnable() {
|
instance.getServer().getScheduler().runTask(instance, new Runnable() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
database.saveAuth(auth);
|
database.saveAuth(auth);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,6 @@ package uk.org.whoami.authme.cache.auth;
|
|||||||
import uk.org.whoami.authme.security.PasswordSecurity;
|
import uk.org.whoami.authme.security.PasswordSecurity;
|
||||||
import uk.org.whoami.authme.settings.Settings;
|
import uk.org.whoami.authme.settings.Settings;
|
||||||
|
|
||||||
|
|
||||||
public class PlayerAuth {
|
public class PlayerAuth {
|
||||||
|
|
||||||
private String nickname;
|
private String nickname;
|
||||||
@ -67,9 +66,6 @@ public class PlayerAuth {
|
|||||||
this.email = email;
|
this.email = email;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// This constructor is needed for Vbulletin board Auth!
|
|
||||||
//
|
|
||||||
public PlayerAuth(String nickname, String hash, String salt, int groupId, String ip, long lastLogin, int x, int y, int z, String email) {
|
public PlayerAuth(String nickname, String hash, String salt, int groupId, String ip, long lastLogin, int x, int y, int z, String email) {
|
||||||
this.nickname = nickname;
|
this.nickname = nickname;
|
||||||
this.hash = hash;
|
this.hash = hash;
|
||||||
@ -83,7 +79,6 @@ public class PlayerAuth {
|
|||||||
this.email = email;
|
this.email = email;
|
||||||
}
|
}
|
||||||
|
|
||||||
// IPB Constructor with groups
|
|
||||||
public PlayerAuth(String nickname, String hash, String salt, int groupId , String ip, long lastLogin) {
|
public PlayerAuth(String nickname, String hash, String salt, int groupId , String ip, long lastLogin) {
|
||||||
this.nickname = nickname;
|
this.nickname = nickname;
|
||||||
this.hash = hash;
|
this.hash = hash;
|
||||||
@ -93,7 +88,6 @@ public class PlayerAuth {
|
|||||||
this.groupId = groupId;
|
this.groupId = groupId;
|
||||||
}
|
}
|
||||||
|
|
||||||
// IPB Constructor without groups
|
|
||||||
public PlayerAuth(String nickname, String hash, String salt, String ip, long lastLogin) {
|
public PlayerAuth(String nickname, String hash, String salt, String ip, long lastLogin) {
|
||||||
this.nickname = nickname;
|
this.nickname = nickname;
|
||||||
this.hash = hash;
|
this.hash = hash;
|
||||||
@ -114,7 +108,6 @@ public class PlayerAuth {
|
|||||||
this.email = email;
|
this.email = email;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public PlayerAuth(String nickname, String hash, String ip, long lastLogin, int x, int y, int z) {
|
public PlayerAuth(String nickname, String hash, String ip, long lastLogin, int x, int y, int z) {
|
||||||
this.nickname = nickname;
|
this.nickname = nickname;
|
||||||
this.hash = hash;
|
this.hash = hash;
|
||||||
@ -126,7 +119,6 @@ public class PlayerAuth {
|
|||||||
this.email = "your@email.com";
|
this.email = "your@email.com";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getIp() {
|
public String getIp() {
|
||||||
return ip;
|
return ip;
|
||||||
}
|
}
|
||||||
@ -138,7 +130,6 @@ public class PlayerAuth {
|
|||||||
public String getHash() {
|
public String getHash() {
|
||||||
if(!salt.isEmpty() && Settings.getPasswordHash == PasswordSecurity.HashAlgorithm.MD5VB) {
|
if(!salt.isEmpty() && Settings.getPasswordHash == PasswordSecurity.HashAlgorithm.MD5VB) {
|
||||||
vBhash = "$MD5vb$"+salt+"$"+hash;
|
vBhash = "$MD5vb$"+salt+"$"+hash;
|
||||||
// Compose Vbullettin Hash System!
|
|
||||||
return vBhash;
|
return vBhash;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -146,14 +137,10 @@ public class PlayerAuth {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Get Salt
|
|
||||||
public String getSalt() {
|
public String getSalt() {
|
||||||
return this.salt;
|
return this.salt;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// GroupId for unactivated User on Vbullettin Board
|
|
||||||
//
|
|
||||||
public int getGroupId() {
|
public int getGroupId() {
|
||||||
return groupId;
|
return groupId;
|
||||||
}
|
}
|
||||||
@ -209,7 +196,6 @@ public class PlayerAuth {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
PlayerAuth other = (PlayerAuth) obj;
|
PlayerAuth other = (PlayerAuth) obj;
|
||||||
|
|
||||||
return other.getIp().equals(this.ip) && other.getNickname().equals(this.nickname);
|
return other.getIp().equals(this.ip) && other.getNickname().equals(this.nickname);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -220,4 +206,5 @@ public class PlayerAuth {
|
|||||||
hashCode = 71 * hashCode + (this.ip != null ? this.ip.hashCode() : 0);
|
hashCode = 71 * hashCode + (this.ip != null ? this.ip.hashCode() : 0);
|
||||||
return hashCode;
|
return hashCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -54,4 +54,5 @@ public class PlayerCache {
|
|||||||
}
|
}
|
||||||
return singleton;
|
return singleton;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,6 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
|
|
||||||
public class DataFileCache {
|
public class DataFileCache {
|
||||||
|
|
||||||
|
|
||||||
private ItemStack[] inventory;
|
private ItemStack[] inventory;
|
||||||
private ItemStack[] armor;
|
private ItemStack[] armor;
|
||||||
private String group;
|
private String group;
|
||||||
@ -21,7 +20,6 @@ public class DataFileCache {
|
|||||||
public DataFileCache(ItemStack[] inventory, ItemStack[] armor){
|
public DataFileCache(ItemStack[] inventory, ItemStack[] armor){
|
||||||
this.inventory = inventory;
|
this.inventory = inventory;
|
||||||
this.armor = armor;
|
this.armor = armor;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public DataFileCache(ItemStack[] inventory, ItemStack[] armor, String group, boolean operator){
|
public DataFileCache(ItemStack[] inventory, ItemStack[] armor, String group, boolean operator){
|
||||||
@ -45,5 +43,5 @@ public class DataFileCache {
|
|||||||
public Boolean getOperator(){
|
public Boolean getOperator(){
|
||||||
return operator;
|
return operator;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -15,10 +15,7 @@ import java.util.Scanner;
|
|||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
|
||||||
public class FileCache {
|
public class FileCache {
|
||||||
//private HashMap<Enchantment, Integer> ench;
|
|
||||||
|
|
||||||
|
|
||||||
public FileCache() {
|
public FileCache() {
|
||||||
final File folder = new File("cache");
|
final File folder = new File("cache");
|
||||||
@ -41,14 +38,10 @@ public class FileCache {
|
|||||||
|
|
||||||
writer = new FileWriter(file);
|
writer = new FileWriter(file);
|
||||||
|
|
||||||
// put player group in cache
|
|
||||||
// put if player is an op or not 1: is op 0: isnet op!
|
|
||||||
// line format Group|OperatorStatus
|
// line format Group|OperatorStatus
|
||||||
|
|
||||||
if(operator)
|
if(operator)
|
||||||
writer.write(group+";1\r\n");
|
writer.write(group+";1\r\n");
|
||||||
else writer.write(group+";0\r\n");
|
else writer.write(group+";0\r\n");
|
||||||
|
|
||||||
writer.flush();
|
writer.flush();
|
||||||
|
|
||||||
ItemStack[] invstack = playerData.getInventory();
|
ItemStack[] invstack = playerData.getInventory();
|
||||||
@ -59,23 +52,14 @@ public class FileCache {
|
|||||||
int amount = 0;
|
int amount = 0;
|
||||||
int durability = 0;
|
int durability = 0;
|
||||||
String enchList = "";
|
String enchList = "";
|
||||||
//ench = new HashMap<Enchantment, Integer>();
|
|
||||||
|
|
||||||
if (invstack[i] != null) {
|
if (invstack[i] != null) {
|
||||||
itemid = invstack[i].getTypeId();
|
itemid = invstack[i].getTypeId();
|
||||||
amount = invstack[i].getAmount();
|
amount = invstack[i].getAmount();
|
||||||
durability = invstack[i].getDurability();
|
durability = invstack[i].getDurability();
|
||||||
|
for(Enchantment e : invstack[i].getEnchantments().keySet()) {
|
||||||
|
|
||||||
for(Enchantment e : invstack[i].getEnchantments().keySet())
|
|
||||||
{
|
|
||||||
//System.out.println("enchant "+e.getName()+" bog "+invstack[i].getEnchantmentLevel(e));
|
|
||||||
enchList = enchList.concat(e.getName()+":"+invstack[i].getEnchantmentLevel(e)+":");
|
enchList = enchList.concat(e.getName()+":"+invstack[i].getEnchantmentLevel(e)+":");
|
||||||
//System.out.println(enchList);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
writer.write("i" + ":" + itemid + ":" + amount + ":"
|
writer.write("i" + ":" + itemid + ":" + amount + ":"
|
||||||
+ durability + ":"+ enchList + "\r\n");
|
+ durability + ":"+ enchList + "\r\n");
|
||||||
writer.flush();
|
writer.flush();
|
||||||
@ -88,26 +72,18 @@ public class FileCache {
|
|||||||
int amount = 0;
|
int amount = 0;
|
||||||
int durability = 0;
|
int durability = 0;
|
||||||
String enchList = "";
|
String enchList = "";
|
||||||
|
|
||||||
if (armorstack[i] != null) {
|
if (armorstack[i] != null) {
|
||||||
itemid = armorstack[i].getTypeId();
|
itemid = armorstack[i].getTypeId();
|
||||||
amount = armorstack[i].getAmount();
|
amount = armorstack[i].getAmount();
|
||||||
durability = armorstack[i].getDurability();
|
durability = armorstack[i].getDurability();
|
||||||
|
for(Enchantment e : armorstack[i].getEnchantments().keySet()) {
|
||||||
for(Enchantment e : armorstack[i].getEnchantments().keySet())
|
|
||||||
{
|
|
||||||
//System.out.println("enchant "+e.getName()+" bog "+armorstack[i].getEnchantmentLevel(e));
|
|
||||||
enchList = enchList.concat(e.getName()+":"+armorstack[i].getEnchantmentLevel(e)+":");
|
enchList = enchList.concat(e.getName()+":"+armorstack[i].getEnchantmentLevel(e)+":");
|
||||||
//System.out.println(enchList);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
writer.write("w" + ":" + itemid + ":" + amount + ":"
|
writer.write("w" + ":" + itemid + ":" + amount + ":"
|
||||||
+ durability + ":"+ enchList + "\r\n");
|
+ durability + ":"+ enchList + "\r\n");
|
||||||
writer.flush();
|
writer.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
writer.close();
|
writer.close();
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -122,7 +98,6 @@ public class FileCache {
|
|||||||
ItemStack[] stacka = new ItemStack[4];
|
ItemStack[] stacka = new ItemStack[4];
|
||||||
String group = null;
|
String group = null;
|
||||||
boolean op = false;
|
boolean op = false;
|
||||||
|
|
||||||
if (!file.exists()) {
|
if (!file.exists()) {
|
||||||
return new DataFileCache(stacki, stacka);
|
return new DataFileCache(stacki, stacka);
|
||||||
}
|
}
|
||||||
@ -149,23 +124,15 @@ public class FileCache {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final String[] in = line.split(":");
|
final String[] in = line.split(":");
|
||||||
|
|
||||||
/*if (in.length != 4) {
|
|
||||||
continue;
|
|
||||||
} */
|
|
||||||
|
|
||||||
if (!in[0].equals("i") && !in[0].equals("w")) {
|
if (!in[0].equals("i") && !in[0].equals("w")) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// can enchant item? size ofstring in file - 4 all / 2 = number of enchant
|
// can enchant item? size ofstring in file - 4 all / 2 = number of enchant
|
||||||
if (in[0].equals("i")) {
|
if (in[0].equals("i")) {
|
||||||
|
|
||||||
stacki[i] = new ItemStack(Integer.parseInt(in[1]),
|
stacki[i] = new ItemStack(Integer.parseInt(in[1]),
|
||||||
Integer.parseInt(in[2]), Short.parseShort((in[3])));
|
Integer.parseInt(in[2]), Short.parseShort((in[3])));
|
||||||
// qui c'e' un problema serio!
|
|
||||||
if(in.length > 4 && !in[4].isEmpty()) {
|
if(in.length > 4 && !in[4].isEmpty()) {
|
||||||
for(int k=4;k<in.length-1;k++) {
|
for(int k=4;k<in.length-1;k++) {
|
||||||
//System.out.println("enchant "+in[k]);
|
|
||||||
stacki[i].addUnsafeEnchantment(Enchantment.getByName(in[k]) ,Integer.parseInt(in[k+1]));
|
stacki[i].addUnsafeEnchantment(Enchantment.getByName(in[k]) ,Integer.parseInt(in[k+1]));
|
||||||
k++;
|
k++;
|
||||||
}
|
}
|
||||||
@ -176,14 +143,12 @@ public class FileCache {
|
|||||||
Integer.parseInt(in[2]), Short.parseShort((in[3])));
|
Integer.parseInt(in[2]), Short.parseShort((in[3])));
|
||||||
if(in.length > 4 && !in[4].isEmpty()) {
|
if(in.length > 4 && !in[4].isEmpty()) {
|
||||||
for(int k=4;k<in.length-1;k++) {
|
for(int k=4;k<in.length-1;k++) {
|
||||||
//System.out.println("enchant "+in[k]);
|
|
||||||
stacka[a].addUnsafeEnchantment(Enchantment.getByName(in[k]) ,Integer.parseInt(in[k+1]));
|
stacka[a].addUnsafeEnchantment(Enchantment.getByName(in[k]) ,Integer.parseInt(in[k+1]));
|
||||||
k++;
|
k++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
a++;
|
a++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -214,5 +179,4 @@ public class FileCache {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,6 @@ public class LimboCache {
|
|||||||
inv = null;
|
inv = null;
|
||||||
arm = null;
|
arm = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(player.isOp() ) {
|
if(player.isOp() ) {
|
||||||
operator = true;
|
operator = true;
|
||||||
} else {
|
} else {
|
||||||
@ -80,8 +79,6 @@ public class LimboCache {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(Settings.isForceSurvivalModeEnabled) {
|
if(Settings.isForceSurvivalModeEnabled) {
|
||||||
if(Settings.isResetInventoryIfCreative && gameMode != 0 ) {
|
if(Settings.isResetInventoryIfCreative && gameMode != 0 ) {
|
||||||
ResetInventoryEvent event = new ResetInventoryEvent(player);
|
ResetInventoryEvent event = new ResetInventoryEvent(player);
|
||||||
@ -100,7 +97,6 @@ public class LimboCache {
|
|||||||
loc = plugin.mv.getMVWorldManager().getMVWorld(player.getWorld().getName()).getSpawnLocation();
|
loc = plugin.mv.getMVWorldManager().getMVWorld(player.getWorld().getName()).getSpawnLocation();
|
||||||
} catch (NullPointerException npe) {}
|
} catch (NullPointerException npe) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
if(cache.containsKey(name) && playerGroup.isEmpty()) {
|
if(cache.containsKey(name) && playerGroup.isEmpty()) {
|
||||||
@ -109,12 +105,10 @@ public class LimboCache {
|
|||||||
}
|
}
|
||||||
} catch (NullPointerException ex) {
|
} catch (NullPointerException ex) {
|
||||||
}
|
}
|
||||||
|
|
||||||
cache.put(player.getName().toLowerCase(), new LimboPlayer(name, loc, inv, arm, gameMode, operator, playerGroup));
|
cache.put(player.getName().toLowerCase(), new LimboPlayer(name, loc, inv, arm, gameMode, operator, playerGroup));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addLimboPlayer(Player player, String group) {
|
public void addLimboPlayer(Player player, String group) {
|
||||||
|
|
||||||
cache.put(player.getName().toLowerCase(), new LimboPlayer(player.getName().toLowerCase(), group));
|
cache.put(player.getName().toLowerCase(), new LimboPlayer(player.getName().toLowerCase(), group));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,7 +124,6 @@ public class LimboCache {
|
|||||||
return cache.containsKey(name);
|
return cache.containsKey(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static LimboCache getInstance() {
|
public static LimboCache getInstance() {
|
||||||
if (singleton == null) {
|
if (singleton == null) {
|
||||||
singleton = new LimboCache(AuthMe.getInstance());
|
singleton = new LimboCache(AuthMe.getInstance());
|
||||||
@ -144,4 +137,5 @@ public class LimboCache {
|
|||||||
}
|
}
|
||||||
this.addLimboPlayer(player);
|
this.addLimboPlayer(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,6 @@ public class LimboPlayer {
|
|||||||
this.group = group;
|
this.group = group;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
@ -21,12 +21,14 @@ import java.io.FileOutputStream;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@ -54,10 +56,8 @@ import uk.org.whoami.authme.settings.SpoutCfg;
|
|||||||
public class AdminCommand implements CommandExecutor {
|
public class AdminCommand implements CommandExecutor {
|
||||||
|
|
||||||
public AuthMe plugin;
|
public AuthMe plugin;
|
||||||
|
|
||||||
private Messages m = Messages.getInstance();
|
private Messages m = Messages.getInstance();
|
||||||
private SpoutCfg s = SpoutCfg.getInstance();
|
private SpoutCfg s = SpoutCfg.getInstance();
|
||||||
//private Settings settings = Settings.getInstance();
|
|
||||||
public DataSource database;
|
public DataSource database;
|
||||||
|
|
||||||
public AdminCommand(AuthMe plugin, DataSource database) {
|
public AdminCommand(AuthMe plugin, DataSource database) {
|
||||||
@ -83,7 +83,6 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
System.out.println("[AuthMe] command usage: authme passpartuToken");
|
System.out.println("[AuthMe] command usage: authme passpartuToken");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Utils.getInstance().obtainToken()) {
|
if(Utils.getInstance().obtainToken()) {
|
||||||
System.out.println("[AuthMe] You have 30s for insert this token ingame with /passpartu [token]");
|
System.out.println("[AuthMe] You have 30s for insert this token ingame with /passpartu [token]");
|
||||||
} else {
|
} else {
|
||||||
@ -92,39 +91,31 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!sender.hasPermission("authme.admin." + args[0].toLowerCase())) {
|
if (!sender.hasPermission("authme.admin." + args[0].toLowerCase())) {
|
||||||
sender.sendMessage(m._("no_perm"));
|
sender.sendMessage(m._("no_perm"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("version")) {
|
if (args[0].equalsIgnoreCase("version")) {
|
||||||
sender.sendMessage("AuthMe Version: "+AuthMe.getInstance().getDescription().getVersion());
|
sender.sendMessage("AuthMe Version: "+AuthMe.getInstance().getDescription().getVersion());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (args[0].equalsIgnoreCase("purge")) {
|
if (args[0].equalsIgnoreCase("purge")) {
|
||||||
if (args.length != 2) {
|
if (args.length != 2) {
|
||||||
sender.sendMessage("Usage: /authme purge <DAYS>");
|
sender.sendMessage("Usage: /authme purge <DAYS>");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
long days = Long.parseLong(args[1]) * 86400000;
|
long days = Long.parseLong(args[1]) * 86400000;
|
||||||
long until = new Date().getTime() - days;
|
long until = new Date().getTime() - days;
|
||||||
|
|
||||||
sender.sendMessage("Deleted " + database.purgeDatabase(until) + " user accounts");
|
sender.sendMessage("Deleted " + database.purgeDatabase(until) + " user accounts");
|
||||||
|
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
sender.sendMessage("Usage: /authme purge <DAYS>");
|
sender.sendMessage("Usage: /authme purge <DAYS>");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else if (args[0].equalsIgnoreCase("reload")) {
|
} else if (args[0].equalsIgnoreCase("reload")) {
|
||||||
database.reload();
|
database.reload();
|
||||||
|
|
||||||
//Trying to load config from JAR-Ressources, if config.yml doesn't exist...
|
|
||||||
File newConfigFile = new File("plugins/AuthMe","config.yml");
|
File newConfigFile = new File("plugins/AuthMe","config.yml");
|
||||||
if (!newConfigFile.exists()) {
|
if (!newConfigFile.exists()) {
|
||||||
InputStream fis = getClass().getResourceAsStream("/config.yml");
|
InputStream fis = getClass().getResourceAsStream("/config.yml");
|
||||||
@ -186,7 +177,6 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
final CommandSender fSender = sender;
|
final CommandSender fSender = sender;
|
||||||
final String[] arguments = args;
|
final String[] arguments = args;
|
||||||
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
PlayerAuth pAuth = null;
|
PlayerAuth pAuth = null;
|
||||||
@ -223,16 +213,13 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
fSender.sendMessage("[AuthMe] This player is unknown");
|
fSender.sendMessage("[AuthMe] This player is unknown");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
final CommandSender fSender = sender;
|
final CommandSender fSender = sender;
|
||||||
final String[] arguments = args;
|
final String[] arguments = args;
|
||||||
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
String message = "[AuthMe] ";
|
String message = "[AuthMe] ";
|
||||||
@ -262,9 +249,7 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
fSender.sendMessage("[AuthMe] Please put a valid IP");
|
fSender.sendMessage("[AuthMe] Please put a valid IP");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -273,16 +258,13 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
sender.sendMessage("Usage: /authme register playername password");
|
sender.sendMessage("Usage: /authme register playername password");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String name = args[1].toLowerCase();
|
String name = args[1].toLowerCase();
|
||||||
String hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[2], name);
|
String hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[2], name);
|
||||||
|
|
||||||
if (database.isAuthAvailable(name)) {
|
if (database.isAuthAvailable(name)) {
|
||||||
sender.sendMessage(m._("user_regged"));
|
sender.sendMessage(m._("user_regged"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerAuth auth = new PlayerAuth(name, hash, "198.18.0.1", 0);
|
PlayerAuth auth = new PlayerAuth(name, hash, "198.18.0.1", 0);
|
||||||
if (!database.saveAuth(auth)) {
|
if (!database.saveAuth(auth)) {
|
||||||
sender.sendMessage(m._("error"));
|
sender.sendMessage(m._("error"));
|
||||||
@ -304,7 +286,6 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
} catch (NullPointerException ex) {
|
} catch (NullPointerException ex) {
|
||||||
System.out.println(ex.getMessage());
|
System.out.println(ex.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (args[0].equalsIgnoreCase("xauthimport")) {
|
} else if (args[0].equalsIgnoreCase("xauthimport")) {
|
||||||
xAuthToFlat converter = new xAuthToFlat(plugin, database);
|
xAuthToFlat converter = new xAuthToFlat(plugin, database);
|
||||||
if (converter.convert(sender)) {
|
if (converter.convert(sender)) {
|
||||||
@ -312,7 +293,6 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
} else {
|
} else {
|
||||||
sender.sendMessage("[AuthMe] Error while trying to convert from xAuth database");
|
sender.sendMessage("[AuthMe] Error while trying to convert from xAuth database");
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (args[0].equalsIgnoreCase("getemail")) {
|
} else if (args[0].equalsIgnoreCase("getemail")) {
|
||||||
if (args.length != 2) {
|
if (args.length != 2) {
|
||||||
sender.sendMessage("Usage: /authme getemail playername");
|
sender.sendMessage("Usage: /authme getemail playername");
|
||||||
@ -322,7 +302,6 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
PlayerAuth getAuth = PlayerCache.getInstance().getAuth(playername);
|
PlayerAuth getAuth = PlayerCache.getInstance().getAuth(playername);
|
||||||
sender.sendMessage("[AuthMe] " + args[1] + " email : " + getAuth.getEmail());
|
sender.sendMessage("[AuthMe] " + args[1] + " email : " + getAuth.getEmail());
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
} else if (args[0].equalsIgnoreCase("chgemail")) {
|
} else if (args[0].equalsIgnoreCase("chgemail")) {
|
||||||
if (args.length != 3) {
|
if (args.length != 3) {
|
||||||
sender.sendMessage("Usage: /authme chgemail playername email");
|
sender.sendMessage("Usage: /authme chgemail playername email");
|
||||||
@ -337,7 +316,6 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
PlayerCache.getInstance().updatePlayer(getAuth);
|
PlayerCache.getInstance().updatePlayer(getAuth);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
} else if (args[0].equalsIgnoreCase("convertfromrakamak")) {
|
} else if (args[0].equalsIgnoreCase("convertfromrakamak")) {
|
||||||
try {
|
try {
|
||||||
RakamakConverter.RakamakConvert();
|
RakamakConverter.RakamakConvert();
|
||||||
@ -348,7 +326,6 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
} catch (NullPointerException ex) {
|
} catch (NullPointerException ex) {
|
||||||
ConsoleLogger.showError(ex.getMessage());
|
ConsoleLogger.showError(ex.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (args[0].equalsIgnoreCase("setspawn")) {
|
} else if (args[0].equalsIgnoreCase("setspawn")) {
|
||||||
try {
|
try {
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
@ -361,7 +338,18 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
} catch (NullPointerException ex) {
|
} catch (NullPointerException ex) {
|
||||||
ConsoleLogger.showError(ex.getMessage());
|
ConsoleLogger.showError(ex.getMessage());
|
||||||
}
|
}
|
||||||
|
} else if (args[0].equalsIgnoreCase("purgebannedplayers")) {
|
||||||
|
List<String> bannedPlayers = new ArrayList<String>();
|
||||||
|
for (OfflinePlayer off : plugin.getServer().getBannedPlayers()) {
|
||||||
|
bannedPlayers.add(off.getName().toLowerCase());
|
||||||
|
}
|
||||||
|
final List<String> bP = bannedPlayers;
|
||||||
|
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
database.purgeBanned(bP);
|
||||||
|
}
|
||||||
|
});
|
||||||
} else if (args[0].equalsIgnoreCase("spawn")) {
|
} else if (args[0].equalsIgnoreCase("spawn")) {
|
||||||
try {
|
try {
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
@ -374,17 +362,14 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
} catch (NullPointerException ex) {
|
} catch (NullPointerException ex) {
|
||||||
ConsoleLogger.showError(ex.getMessage());
|
ConsoleLogger.showError(ex.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (args[0].equalsIgnoreCase("changepassword") || args[0].equalsIgnoreCase("cp")) {
|
} else if (args[0].equalsIgnoreCase("changepassword") || args[0].equalsIgnoreCase("cp")) {
|
||||||
if (args.length != 3) {
|
if (args.length != 3) {
|
||||||
sender.sendMessage("Usage: /authme changepassword playername newpassword");
|
sender.sendMessage("Usage: /authme changepassword playername newpassword");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String name = args[1].toLowerCase();
|
String name = args[1].toLowerCase();
|
||||||
String hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[2], name);
|
String hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[2], name);
|
||||||
|
|
||||||
PlayerAuth auth = null;
|
PlayerAuth auth = null;
|
||||||
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||||
auth = PlayerCache.getInstance().getAuth(name);
|
auth = PlayerCache.getInstance().getAuth(name);
|
||||||
@ -395,12 +380,10 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
auth.setHash(hash);
|
auth.setHash(hash);
|
||||||
|
|
||||||
if (!database.updatePassword(auth)) {
|
if (!database.updatePassword(auth)) {
|
||||||
sender.sendMessage(m._("error"));
|
sender.sendMessage(m._("error"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
sender.sendMessage("pwd_changed");
|
sender.sendMessage("pwd_changed");
|
||||||
ConsoleLogger.info(args[1] + "'s password changed");
|
ConsoleLogger.info(args[1] + "'s password changed");
|
||||||
} catch (NoSuchAlgorithmException ex) {
|
} catch (NoSuchAlgorithmException ex) {
|
||||||
@ -412,17 +395,13 @@ public class AdminCommand implements CommandExecutor {
|
|||||||
sender.sendMessage("Usage: /authme unregister playername");
|
sender.sendMessage("Usage: /authme unregister playername");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String name = args[1].toLowerCase();
|
String name = args[1].toLowerCase();
|
||||||
|
|
||||||
if (!database.removeAuth(name)) {
|
if (!database.removeAuth(name)) {
|
||||||
sender.sendMessage(m._("error"));
|
sender.sendMessage(m._("error"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerCache.getInstance().removePlayer(name);
|
PlayerCache.getInstance().removePlayer(name);
|
||||||
sender.sendMessage("unregistered");
|
sender.sendMessage("unregistered");
|
||||||
|
|
||||||
ConsoleLogger.info(args[1] + " unregistered");
|
ConsoleLogger.info(args[1] + " unregistered");
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage("Usage: /authme reload|register playername password|changepassword playername password|unregister playername");
|
sender.sendMessage("Usage: /authme reload|register playername password|changepassword playername password|unregister playername");
|
||||||
|
@ -21,7 +21,6 @@ public class CaptchaCommand implements CommandExecutor {
|
|||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command cmnd,
|
public boolean onCommand(CommandSender sender, Command cmnd,
|
||||||
String label, String[] args) {
|
String label, String[] args) {
|
||||||
@ -33,7 +32,6 @@ public class CaptchaCommand implements CommandExecutor {
|
|||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
String name = player.getName().toLowerCase();
|
String name = player.getName().toLowerCase();
|
||||||
|
|
||||||
|
|
||||||
if (args.length == 0) {
|
if (args.length == 0) {
|
||||||
player.sendMessage(m._("usage_captcha"));
|
player.sendMessage(m._("usage_captcha"));
|
||||||
return true;
|
return true;
|
||||||
@ -70,12 +68,9 @@ public class CaptchaCommand implements CommandExecutor {
|
|||||||
plugin.cap.remove(name);
|
plugin.cap.remove(name);
|
||||||
} catch (NullPointerException npe) {
|
} catch (NullPointerException npe) {
|
||||||
}
|
}
|
||||||
|
|
||||||
player.sendMessage("Your captcha is correct");
|
player.sendMessage("Your captcha is correct");
|
||||||
player.sendMessage(m._("login_msg"));
|
player.sendMessage(m._("login_msg"));
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,6 @@ import uk.org.whoami.authme.settings.Settings;
|
|||||||
public class ChangePasswordCommand implements CommandExecutor {
|
public class ChangePasswordCommand implements CommandExecutor {
|
||||||
|
|
||||||
private Messages m = Messages.getInstance();
|
private Messages m = Messages.getInstance();
|
||||||
//private Settings settings = Settings.getInstance();
|
|
||||||
private DataSource database;
|
private DataSource database;
|
||||||
public AuthMe plugin;
|
public AuthMe plugin;
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ import uk.org.whoami.authme.settings.Settings;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author darkwarriors
|
* @author Xephi59
|
||||||
*/
|
*/
|
||||||
public class EmailCommand implements CommandExecutor {
|
public class EmailCommand implements CommandExecutor {
|
||||||
|
|
||||||
@ -148,7 +148,6 @@ public class EmailCommand implements CommandExecutor {
|
|||||||
player.sendMessage(m._("logged_in"));
|
player.sendMessage(m._("logged_in"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
RandomString rand = new RandomString(Settings.getRecoveryPassLength);
|
RandomString rand = new RandomString(Settings.getRecoveryPassLength);
|
||||||
String thePass = rand.nextString();
|
String thePass = rand.nextString();
|
||||||
@ -171,19 +170,14 @@ public class EmailCommand implements CommandExecutor {
|
|||||||
player.sendMessage("[AuthMe] Invalid Email");
|
player.sendMessage("[AuthMe] Invalid Email");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
final String finalhashnew = hashnew;
|
final String finalhashnew = hashnew;
|
||||||
final PlayerAuth finalauth = auth;
|
final PlayerAuth finalauth = auth;
|
||||||
|
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
||||||
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
finalauth.setHash(finalhashnew);
|
finalauth.setHash(finalhashnew);
|
||||||
data.updatePassword(finalauth);
|
data.updatePassword(finalauth);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
plugin.mail.main(auth, thePass);
|
plugin.mail.main(auth, thePass);
|
||||||
player.sendMessage("[AuthMe] Recovery Email Send !");
|
player.sendMessage("[AuthMe] Recovery Email Send !");
|
||||||
@ -198,7 +192,6 @@ public class EmailCommand implements CommandExecutor {
|
|||||||
player.sendMessage(m._("reg_msg"));
|
player.sendMessage(m._("reg_msg"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,6 @@ import org.bukkit.entity.Player;
|
|||||||
|
|
||||||
import uk.org.whoami.authme.AuthMe;
|
import uk.org.whoami.authme.AuthMe;
|
||||||
import uk.org.whoami.authme.settings.Messages;
|
import uk.org.whoami.authme.settings.Messages;
|
||||||
import uk.org.whoami.authme.settings.Settings;
|
|
||||||
|
|
||||||
public class LoginCommand implements CommandExecutor {
|
public class LoginCommand implements CommandExecutor {
|
||||||
|
|
||||||
@ -40,10 +39,6 @@ public class LoginCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!Settings.useCaptcha) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
final Player player = (Player) sender;
|
final Player player = (Player) sender;
|
||||||
|
|
||||||
if (args.length == 0) {
|
if (args.length == 0) {
|
||||||
@ -56,10 +51,7 @@ public class LoginCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String result = plugin.management.performLogin(player, args[0]);
|
plugin.management.performLogin(player, args[0]);
|
||||||
if (result != "") player.sendMessage(result);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +48,6 @@ public class LogoutCommand implements CommandExecutor {
|
|||||||
|
|
||||||
private Messages m = Messages.getInstance();
|
private Messages m = Messages.getInstance();
|
||||||
private PlayersLogs pllog = PlayersLogs.getInstance();
|
private PlayersLogs pllog = PlayersLogs.getInstance();
|
||||||
//private Settings settings = Settings.getInstance();
|
|
||||||
private AuthMe plugin;
|
private AuthMe plugin;
|
||||||
private DataSource database;
|
private DataSource database;
|
||||||
private Utils utils = Utils.getInstance();
|
private Utils utils = Utils.getInstance();
|
||||||
@ -78,7 +77,6 @@ public class LogoutCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//clear session
|
|
||||||
PlayerAuth auth = PlayerCache.getInstance().getAuth(name);
|
PlayerAuth auth = PlayerCache.getInstance().getAuth(name);
|
||||||
auth.setIp("198.18.0.1");
|
auth.setIp("198.18.0.1");
|
||||||
database.updateSession(auth);
|
database.updateSession(auth);
|
||||||
@ -117,22 +115,19 @@ public class LogoutCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
BukkitTask msgT = sched.runTask(plugin, new MessageTask(plugin, name, m._("login_msg"), interval));
|
BukkitTask msgT = sched.runTask(plugin, new MessageTask(plugin, name, m._("login_msg"), interval));
|
||||||
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT.getTaskId());
|
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT.getTaskId());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (PlayersLogs.players.contains(player.getName())) {
|
if (PlayersLogs.players.contains(player.getName())) {
|
||||||
PlayersLogs.players.remove(player.getName());
|
PlayersLogs.players.remove(player.getName());
|
||||||
pllog.save();
|
pllog.save();
|
||||||
}
|
}
|
||||||
} catch (NullPointerException npe) {
|
} catch (NullPointerException npe) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
player.sendMessage(m._("logout"));
|
player.sendMessage(m._("logout"));
|
||||||
ConsoleLogger.info(player.getDisplayName() + " logged out");
|
ConsoleLogger.info(player.getDisplayName() + " logged out");
|
||||||
if(plugin.notifications != null) {
|
if(plugin.notifications != null) {
|
||||||
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged out!"));
|
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " logged out!"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -40,11 +40,9 @@ public class PasspartuCommand implements CommandExecutor {
|
|||||||
if(utils.readToken(args[0])) {
|
if(utils.readToken(args[0])) {
|
||||||
//bypass login!
|
//bypass login!
|
||||||
Management bypass = new Management(database,true, plugin);
|
Management bypass = new Management(database,true, plugin);
|
||||||
String result = bypass.performLogin((Player)sender, "dontneed");
|
bypass.performLogin((Player)sender, "dontneed");
|
||||||
if (result != "") sender.sendMessage(result);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
sender.sendMessage("Time is expired or Token is Wrong!");
|
sender.sendMessage("Time is expired or Token is Wrong!");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2012 darkwarriors.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package uk.org.whoami.authme.commands;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author darkwarriors
|
|
||||||
*/
|
|
||||||
public class RecoveryCommand {
|
|
||||||
|
|
||||||
}
|
|
@ -21,6 +21,7 @@ import java.util.Date;
|
|||||||
|
|
||||||
import me.muizers.Notifications.Notification;
|
import me.muizers.Notifications.Notification;
|
||||||
import net.md_5.bungee.BungeeCord;
|
import net.md_5.bungee.BungeeCord;
|
||||||
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
@ -82,14 +83,17 @@ public class RegisterCommand implements CommandExecutor {
|
|||||||
|
|
||||||
if (Settings.bungee) {
|
if (Settings.bungee) {
|
||||||
try {
|
try {
|
||||||
ipA = BungeeCord.getInstance().getPlayer(player.getName()).getAddress().getAddress().getHostAddress();
|
for (ProxiedPlayer pp : BungeeCord.getInstance().getPlayers()) {
|
||||||
|
if (pp.getName().toLowerCase() == name) {
|
||||||
|
ipA = pp.getAddress().getAddress().getHostAddress();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (NoClassDefFoundError ncdfe) {
|
} catch (NoClassDefFoundError ncdfe) {
|
||||||
ConsoleLogger.showError("Your BungeeCord version is outdated, you need a version with the latest API");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final String ip = ipA;
|
final String ip = ipA;
|
||||||
|
|
||||||
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||||
player.sendMessage(m._("logged_in"));
|
player.sendMessage(m._("logged_in"));
|
||||||
return true;
|
return true;
|
||||||
@ -107,12 +111,8 @@ public class RegisterCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//
|
|
||||||
// Check if player exeded the max number of registration
|
|
||||||
//
|
|
||||||
|
|
||||||
if(Settings.getmaxRegPerIp > 0 ){
|
if(Settings.getmaxRegPerIp > 0 ){
|
||||||
|
|
||||||
if(!sender.hasPermission("authme.allow2accounts") && database.getAllAuthsByIp(ipA).size() >= Settings.getmaxRegPerIp) {
|
if(!sender.hasPermission("authme.allow2accounts") && database.getAllAuthsByIp(ipA).size() >= Settings.getmaxRegPerIp) {
|
||||||
player.sendMessage(m._("max_reg"));
|
player.sendMessage(m._("max_reg"));
|
||||||
return true;
|
return true;
|
||||||
@ -143,10 +143,8 @@ public class RegisterCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
RandomString rand = new RandomString(Settings.getRecoveryPassLength);
|
RandomString rand = new RandomString(Settings.getRecoveryPassLength);
|
||||||
final String thePass = rand.nextString();
|
final String thePass = rand.nextString();
|
||||||
|
|
||||||
if (!thePass.isEmpty()) {
|
if (!thePass.isEmpty()) {
|
||||||
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
if (PasswordSecurity.userSalt.containsKey(name)) {
|
if (PasswordSecurity.userSalt.containsKey(name)) {
|
||||||
@ -173,10 +171,8 @@ public class RegisterCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
if(!Settings.getRegisteredGroup.isEmpty()){
|
if(!Settings.getRegisteredGroup.isEmpty()){
|
||||||
Utils.getInstance().setGroup(player, Utils.groupType.REGISTERED);
|
Utils.getInstance().setGroup(player, Utils.groupType.REGISTERED);
|
||||||
}
|
}
|
||||||
@ -202,16 +198,12 @@ public class RegisterCommand implements CommandExecutor {
|
|||||||
try {
|
try {
|
||||||
loca = plugin.mv.getMVWorldManager().getMVWorld(world).getSpawnLocation();
|
loca = plugin.mv.getMVWorldManager().getMVWorld(world).getSpawnLocation();
|
||||||
} catch (NullPointerException npe) {
|
} catch (NullPointerException npe) {
|
||||||
|
|
||||||
} catch (ClassCastException cce) {
|
} catch (ClassCastException cce) {
|
||||||
|
|
||||||
} catch (NoClassDefFoundError ncdfe) {
|
} catch (NoClassDefFoundError ncdfe) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (Spawn.getInstance().getLocation() != null)
|
if (Spawn.getInstance().getLocation() != null)
|
||||||
loca = Spawn.getInstance().getLocation();
|
loca = Spawn.getInstance().getLocation();
|
||||||
|
|
||||||
RegisterTeleportEvent tpEvent = new RegisterTeleportEvent(player, loca);
|
RegisterTeleportEvent tpEvent = new RegisterTeleportEvent(player, loca);
|
||||||
plugin.getServer().getPluginManager().callEvent(tpEvent);
|
plugin.getServer().getPluginManager().callEvent(tpEvent);
|
||||||
if(!tpEvent.isCancelled()) {
|
if(!tpEvent.isCancelled()) {
|
||||||
@ -236,15 +228,11 @@ public class RegisterCommand implements CommandExecutor {
|
|||||||
player.sendMessage(m._("usage_reg"));
|
player.sendMessage(m._("usage_reg"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//System.out.println("pass legth "+args[0].length());
|
|
||||||
//System.out.println("pass length permit"+Settings.passwordMaxLength);
|
|
||||||
if(args[0].length() < Settings.getPasswordMinLen || args[0].length() > Settings.passwordMaxLength) {
|
if(args[0].length() < Settings.getPasswordMinLen || args[0].length() > Settings.passwordMaxLength) {
|
||||||
player.sendMessage(m._("pass_len"));
|
player.sendMessage(m._("pass_len"));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String hash;
|
String hash;
|
||||||
if(Settings.getEnablePasswordVerifier) {
|
if(Settings.getEnablePasswordVerifier) {
|
||||||
@ -256,7 +244,6 @@ public class RegisterCommand implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[0], name);
|
hash = PasswordSecurity.getHash(Settings.getPasswordHash, args[0], name);
|
||||||
|
|
||||||
if (Settings.getMySQLColumnSalt.isEmpty())
|
if (Settings.getMySQLColumnSalt.isEmpty())
|
||||||
{
|
{
|
||||||
auth = new PlayerAuth(name, hash, ip, new Date().getTime());
|
auth = new PlayerAuth(name, hash, ip, new Date().getTime());
|
||||||
@ -268,7 +255,6 @@ public class RegisterCommand implements CommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
PlayerCache.getInstance().addPlayer(auth);
|
PlayerCache.getInstance().addPlayer(auth);
|
||||||
|
|
||||||
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
|
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(name);
|
||||||
if (limbo != null) {
|
if (limbo != null) {
|
||||||
player.setGameMode(GameMode.getByValue(limbo.getGameMode()));
|
player.setGameMode(GameMode.getByValue(limbo.getGameMode()));
|
||||||
@ -297,13 +283,11 @@ public class RegisterCommand implements CommandExecutor {
|
|||||||
player.teleport(tpEvent.getTo());
|
player.teleport(tpEvent.getTo());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sender.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
|
sender.getServer().getScheduler().cancelTask(limbo.getTimeoutTaskId());
|
||||||
sender.getServer().getScheduler().cancelTask(limbo.getMessageTaskId());
|
sender.getServer().getScheduler().cancelTask(limbo.getMessageTaskId());
|
||||||
LimboCache.getInstance().deleteLimboPlayer(name);
|
LimboCache.getInstance().deleteLimboPlayer(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(!Settings.getRegisteredGroup.isEmpty()){
|
if(!Settings.getRegisteredGroup.isEmpty()){
|
||||||
Utils.getInstance().setGroup(player, Utils.groupType.REGISTERED);
|
Utils.getInstance().setGroup(player, Utils.groupType.REGISTERED);
|
||||||
}
|
}
|
||||||
@ -317,7 +301,6 @@ public class RegisterCommand implements CommandExecutor {
|
|||||||
if(plugin.notifications != null) {
|
if(plugin.notifications != null) {
|
||||||
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " has registered!"));
|
plugin.notifications.showNotification(new Notification("[AuthMe] " + player.getName() + " has registered!"));
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (NoSuchAlgorithmException ex) {
|
} catch (NoSuchAlgorithmException ex) {
|
||||||
ConsoleLogger.showError(ex.getMessage());
|
ConsoleLogger.showError(ex.getMessage());
|
||||||
sender.sendMessage(m._("error"));
|
sender.sendMessage(m._("error"));
|
||||||
|
@ -49,7 +49,6 @@ public class UnregisterCommand implements CommandExecutor {
|
|||||||
|
|
||||||
private Messages m = Messages.getInstance();
|
private Messages m = Messages.getInstance();
|
||||||
private PlayersLogs pllog = PlayersLogs.getInstance();
|
private PlayersLogs pllog = PlayersLogs.getInstance();
|
||||||
//private Settings settings = Settings.getInstance();
|
|
||||||
public AuthMe plugin;
|
public AuthMe plugin;
|
||||||
private DataSource database;
|
private DataSource database;
|
||||||
private FileCache playerCache = new FileCache();
|
private FileCache playerCache = new FileCache();
|
||||||
@ -94,8 +93,6 @@ public class UnregisterCommand implements CommandExecutor {
|
|||||||
player.saveData();
|
player.saveData();
|
||||||
PlayerCache.getInstance().removePlayer(player.getName().toLowerCase());
|
PlayerCache.getInstance().removePlayer(player.getName().toLowerCase());
|
||||||
LimboCache.getInstance().addLimboPlayer(player);
|
LimboCache.getInstance().addLimboPlayer(player);
|
||||||
|
|
||||||
|
|
||||||
int delay = Settings.getRegistrationTimeout * 20;
|
int delay = Settings.getRegistrationTimeout * 20;
|
||||||
int interval = Settings.getWarnMessageInterval;
|
int interval = Settings.getWarnMessageInterval;
|
||||||
BukkitScheduler sched = sender.getServer().getScheduler();
|
BukkitScheduler sched = sender.getServer().getScheduler();
|
||||||
@ -122,7 +119,6 @@ public class UnregisterCommand implements CommandExecutor {
|
|||||||
if(playerCache.doesCacheExist(name)) {
|
if(playerCache.doesCacheExist(name)) {
|
||||||
playerCache.removeCache(name);
|
playerCache.removeCache(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PlayersLogs.players.contains(player.getName())) {
|
if (PlayersLogs.players.contains(player.getName())) {
|
||||||
PlayersLogs.players.remove(player.getName());
|
PlayersLogs.players.remove(player.getName());
|
||||||
pllog.save();
|
pllog.save();
|
||||||
|
@ -12,7 +12,10 @@ import uk.org.whoami.authme.AuthMe;
|
|||||||
import uk.org.whoami.authme.ConsoleLogger;
|
import uk.org.whoami.authme.ConsoleLogger;
|
||||||
import uk.org.whoami.authme.settings.Settings;
|
import uk.org.whoami.authme.settings.Settings;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class FlatToSql {
|
public class FlatToSql {
|
||||||
|
|
||||||
public AuthMe instance;
|
public AuthMe instance;
|
||||||
@ -34,7 +37,6 @@ public class FlatToSql {
|
|||||||
private static String lastlocY;
|
private static String lastlocY;
|
||||||
private static String lastlocZ;
|
private static String lastlocZ;
|
||||||
private static String columnEmail;
|
private static String columnEmail;
|
||||||
|
|
||||||
private static File source;
|
private static File source;
|
||||||
private static File output;
|
private static File output;
|
||||||
|
|
||||||
@ -76,9 +78,9 @@ public class FlatToSql {
|
|||||||
sql.newLine();
|
sql.newLine();
|
||||||
String[] args = line.split(":");
|
String[] args = line.split(":");
|
||||||
if (args.length == 4)
|
if (args.length == 4)
|
||||||
newline = "INSERT INTO " + tableName + " VALUES (" + i + ", '" + args[0] + "', '" + args[1] + "', '" + args[2] + "', " + args[3] + ", 0, 0, 0, " + "your@email.com" + ");";
|
newline = "INSERT INTO " + tableName + " VALUES (" + i + ", '" + args[0] + "', '" + args[1] + "', '" + args[2] + "', " + args[3] + ", 0, 0, 0, " + "'your@email.com'" + ");";
|
||||||
else if (args.length == 7)
|
else if (args.length == 7)
|
||||||
newline = "INSERT INTO " + tableName + " VALUES (" + i + ", '" + args[0] + "', '" + args[1] + "', '" + args[2] + "', " + args[3] + ", " + args[4] + ", " + args[5] + ", " + args[6] + ", " + "your@email.com" + ");";
|
newline = "INSERT INTO " + tableName + " VALUES (" + i + ", '" + args[0] + "', '" + args[1] + "', '" + args[2] + "', " + args[3] + ", " + args[4] + ", " + args[5] + ", " + args[6] + ", " + "'your@email.com'" + ");";
|
||||||
else
|
else
|
||||||
newline = "";
|
newline = "";
|
||||||
if (newline != "")
|
if (newline != "")
|
||||||
@ -87,8 +89,7 @@ public class FlatToSql {
|
|||||||
}
|
}
|
||||||
sql.close();
|
sql.close();
|
||||||
br.close();
|
br.close();
|
||||||
System.out.println("[AuthMe] The FlatFile has been converted to authme.sql file");
|
ConsoleLogger.info("The FlatFile has been converted to authme.sql file");
|
||||||
|
|
||||||
} catch (FileNotFoundException ex) {
|
} catch (FileNotFoundException ex) {
|
||||||
ConsoleLogger.showError(ex.getMessage());
|
ConsoleLogger.showError(ex.getMessage());
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
|
@ -17,7 +17,10 @@ import uk.org.whoami.authme.security.PasswordSecurity;
|
|||||||
import uk.org.whoami.authme.security.PasswordSecurity.HashAlgorithm;
|
import uk.org.whoami.authme.security.PasswordSecurity.HashAlgorithm;
|
||||||
import uk.org.whoami.authme.settings.Settings;
|
import uk.org.whoami.authme.settings.Settings;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class RakamakConverter {
|
public class RakamakConverter {
|
||||||
|
|
||||||
public AuthMe instance;
|
public AuthMe instance;
|
||||||
@ -34,7 +37,6 @@ public class RakamakConverter {
|
|||||||
private static Boolean useIP;
|
private static Boolean useIP;
|
||||||
private static String fileName;
|
private static String fileName;
|
||||||
private static String ipFileName;
|
private static String ipFileName;
|
||||||
|
|
||||||
private static File source;
|
private static File source;
|
||||||
private static File output;
|
private static File output;
|
||||||
private static File ipfiles;
|
private static File ipfiles;
|
||||||
@ -47,8 +49,6 @@ public class RakamakConverter {
|
|||||||
ipFileName = Settings.rakamakUsersIp;
|
ipFileName = Settings.rakamakUsersIp;
|
||||||
HashMap<String, String> playerIP = new HashMap<String, String>();
|
HashMap<String, String> playerIP = new HashMap<String, String>();
|
||||||
HashMap<String, String> playerPSW = new HashMap<String, String>();
|
HashMap<String, String> playerPSW = new HashMap<String, String>();
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
source = new File(AuthMe.getInstance().getDataFolder() + File.separator + fileName);
|
source = new File(AuthMe.getInstance().getDataFolder() + File.separator + fileName);
|
||||||
ipfiles = new File(AuthMe.getInstance().getDataFolder() + File.separator + ipFileName);
|
ipfiles = new File(AuthMe.getInstance().getDataFolder() + File.separator + ipFileName);
|
||||||
@ -86,8 +86,6 @@ public class RakamakConverter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
users.close();
|
users.close();
|
||||||
outputDB = new BufferedWriter(new FileWriter(output));
|
outputDB = new BufferedWriter(new FileWriter(output));
|
||||||
for (Entry<String, String> m : playerPSW.entrySet()) {
|
for (Entry<String, String> m : playerPSW.entrySet()) {
|
||||||
@ -96,7 +94,6 @@ public class RakamakConverter {
|
|||||||
String psw = playerPSW.get(player);
|
String psw = playerPSW.get(player);
|
||||||
String ip = playerIP.get(player);
|
String ip = playerIP.get(player);
|
||||||
newLine = player + ":" + psw + ":" + ip + ":1325376060:0:0:0";
|
newLine = player + ":" + psw + ":" + ip + ":1325376060:0:0:0";
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
String player = m.getKey();
|
String player = m.getKey();
|
||||||
String psw = playerPSW.get(player);
|
String psw = playerPSW.get(player);
|
||||||
@ -108,14 +105,8 @@ public class RakamakConverter {
|
|||||||
System.out.println("Write line");
|
System.out.println("Write line");
|
||||||
outputDB.newLine();
|
outputDB.newLine();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
outputDB.close();
|
outputDB.close();
|
||||||
|
ConsoleLogger.info("Rakamak database has been converted to auths.db");
|
||||||
System.out.println("[AuthMe] Rakamak database has been converted to auths.db");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} catch (FileNotFoundException ex) {
|
} catch (FileNotFoundException ex) {
|
||||||
ConsoleLogger.showError(ex.getMessage());
|
ConsoleLogger.showError(ex.getMessage());
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
|
@ -18,6 +18,10 @@ import uk.org.whoami.authme.AuthMe;
|
|||||||
import uk.org.whoami.authme.cache.auth.PlayerAuth;
|
import uk.org.whoami.authme.cache.auth.PlayerAuth;
|
||||||
import uk.org.whoami.authme.datasource.DataSource;
|
import uk.org.whoami.authme.datasource.DataSource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class xAuthToFlat {
|
public class xAuthToFlat {
|
||||||
|
|
||||||
public AuthMe instance;
|
public AuthMe instance;
|
||||||
@ -41,7 +45,6 @@ public class xAuthToFlat {
|
|||||||
sender.sendMessage("[AuthMe] Error while import xAuthPlayers");
|
sender.sendMessage("[AuthMe] Error while import xAuthPlayers");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
sender.sendMessage("[AuthMe] Starting import...");
|
sender.sendMessage("[AuthMe] Starting import...");
|
||||||
for (int id : players) {
|
for (int id : players) {
|
||||||
String pl = getIdPlayer(id);
|
String pl = getIdPlayer(id);
|
||||||
@ -60,7 +63,6 @@ public class xAuthToFlat {
|
|||||||
Connection conn = xAuth.getPlugin().getDatabaseController().getConnection();
|
Connection conn = xAuth.getPlugin().getDatabaseController().getConnection();
|
||||||
PreparedStatement ps = null;
|
PreparedStatement ps = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String sql = String.format("SELECT `playername` FROM `%s` WHERE `id` = ?",
|
String sql = String.format("SELECT `playername` FROM `%s` WHERE `id` = ?",
|
||||||
xAuth.getPlugin().getDatabaseController().getTable(Table.ACCOUNT));
|
xAuth.getPlugin().getDatabaseController().getTable(Table.ACCOUNT));
|
||||||
@ -69,7 +71,6 @@ public class xAuthToFlat {
|
|||||||
rs = ps.executeQuery();
|
rs = ps.executeQuery();
|
||||||
if (!rs.next())
|
if (!rs.next())
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
realPass = rs.getString("playername").toLowerCase();
|
realPass = rs.getString("playername").toLowerCase();
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
xAuthLog.severe("Failed to retrieve name for account: " + id, e);
|
xAuthLog.severe("Failed to retrieve name for account: " + id, e);
|
||||||
@ -107,7 +108,6 @@ public class xAuthToFlat {
|
|||||||
Connection conn = xAuth.getPlugin().getDatabaseController().getConnection();
|
Connection conn = xAuth.getPlugin().getDatabaseController().getConnection();
|
||||||
PreparedStatement ps = null;
|
PreparedStatement ps = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String sql = String.format("SELECT `password`, `pwtype` FROM `%s` WHERE `id` = ?",
|
String sql = String.format("SELECT `password`, `pwtype` FROM `%s` WHERE `id` = ?",
|
||||||
xAuth.getPlugin().getDatabaseController().getTable(Table.ACCOUNT));
|
xAuth.getPlugin().getDatabaseController().getTable(Table.ACCOUNT));
|
||||||
@ -116,7 +116,6 @@ public class xAuthToFlat {
|
|||||||
rs = ps.executeQuery();
|
rs = ps.executeQuery();
|
||||||
if (!rs.next())
|
if (!rs.next())
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
realPass = rs.getString("password");
|
realPass = rs.getString("password");
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
xAuthLog.severe("Failed to retrieve password hash for account: " + accountId, e);
|
xAuthLog.severe("Failed to retrieve password hash for account: " + accountId, e);
|
||||||
|
@ -82,14 +82,11 @@ public class CacheDataSource implements DataSource {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateQuitLoc(PlayerAuth auth) {
|
public boolean updateQuitLoc(PlayerAuth auth) {
|
||||||
//System.out.println("[debug name chace non work]"+auth.getNickname()+"[debug loc]"+auth.getQuitLocX());
|
|
||||||
if (source.updateQuitLoc(auth)) {
|
if (source.updateQuitLoc(auth)) {
|
||||||
//System.out.println("[debug name chace]"+auth.getNickname()+"[debug loc]"+auth.getQuitLocX());
|
|
||||||
cache.get(auth.getNickname()).setQuitLocX(auth.getQuitLocX());
|
cache.get(auth.getNickname()).setQuitLocX(auth.getQuitLocX());
|
||||||
cache.get(auth.getNickname()).setQuitLocY(auth.getQuitLocY());
|
cache.get(auth.getNickname()).setQuitLocY(auth.getQuitLocY());
|
||||||
cache.get(auth.getNickname()).setQuitLocZ(auth.getQuitLocZ());
|
cache.get(auth.getNickname()).setQuitLocZ(auth.getQuitLocZ());
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -102,7 +99,6 @@ public class CacheDataSource implements DataSource {
|
|||||||
@Override
|
@Override
|
||||||
public int purgeDatabase(long until) {
|
public int purgeDatabase(long until) {
|
||||||
int cleared = source.purgeDatabase(until);
|
int cleared = source.purgeDatabase(until);
|
||||||
|
|
||||||
if (cleared > 0) {
|
if (cleared > 0) {
|
||||||
for (PlayerAuth auth : cache.values()) {
|
for (PlayerAuth auth : cache.values()) {
|
||||||
if(auth.getLastLogin() < until) {
|
if(auth.getLastLogin() < until) {
|
||||||
@ -175,4 +171,14 @@ public class CacheDataSource implements DataSource {
|
|||||||
public List<String> getAllAuthsByEmail(String email) {
|
public List<String> getAllAuthsByEmail(String email) {
|
||||||
return source.getAllAuthsByEmail(email);
|
return source.getAllAuthsByEmail(email);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void purgeBanned(List<String> banned) {
|
||||||
|
source.purgeBanned(banned);
|
||||||
|
for (PlayerAuth auth : cache.values()) {
|
||||||
|
if (banned.contains(auth.getNickname())) {
|
||||||
|
cache.remove(auth.getNickname());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,4 +59,6 @@ public interface DataSource {
|
|||||||
|
|
||||||
void reload();
|
void reload();
|
||||||
|
|
||||||
|
void purgeBanned(List<String> banned);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,6 @@ import uk.org.whoami.authme.settings.Settings;
|
|||||||
|
|
||||||
public class FileDataSource implements DataSource {
|
public class FileDataSource implements DataSource {
|
||||||
|
|
||||||
|
|
||||||
/* file layout:
|
/* file layout:
|
||||||
*
|
*
|
||||||
* PLAYERNAME:HASHSUM:IP:LOGININMILLIESECONDS:COORDS
|
* PLAYERNAME:HASHSUM:IP:LOGININMILLIESECONDS:COORDS
|
||||||
@ -83,17 +82,14 @@ public class FileDataSource implements DataSource {
|
|||||||
if (isAuthAvailable(auth.getNickname())) {
|
if (isAuthAvailable(auth.getNickname())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
BufferedWriter bw = null;
|
BufferedWriter bw = null;
|
||||||
try {
|
try {
|
||||||
if( auth.getQuitLocY() == 0 ) {
|
if( auth.getQuitLocY() == 0 ) {
|
||||||
bw = new BufferedWriter(new FileWriter(source, true));
|
bw = new BufferedWriter(new FileWriter(source, true));
|
||||||
bw.write(auth.getNickname() + ":" + auth.getHash() + ":" + auth.getIp() + ":" + auth.getLastLogin() + "\n");
|
bw.write(auth.getNickname() + ":" + auth.getHash() + ":" + auth.getIp() + ":" + auth.getLastLogin() + "\n");
|
||||||
//System.out.println("[Debug save1] "+auth.getQuitLocY());
|
|
||||||
} else {
|
} else {
|
||||||
bw = new BufferedWriter(new FileWriter(source, true));
|
bw = new BufferedWriter(new FileWriter(source, true));
|
||||||
bw.write(auth.getNickname() + ":" + auth.getHash() + ":" + auth.getIp() + ":" + auth.getLastLogin() + ":" + auth.getQuitLocX() + ":" + auth.getQuitLocY() + ":" + auth.getQuitLocZ() + "\n");
|
bw.write(auth.getNickname() + ":" + auth.getHash() + ":" + auth.getIp() + ":" + auth.getLastLogin() + ":" + auth.getQuitLocX() + ":" + auth.getQuitLocY() + ":" + auth.getQuitLocZ() + "\n");
|
||||||
//System.out.println("[Debug save2] "+auth.getQuitLocY());
|
|
||||||
}
|
}
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
ConsoleLogger.showError(ex.getMessage());
|
ConsoleLogger.showError(ex.getMessage());
|
||||||
@ -114,9 +110,7 @@ public class FileDataSource implements DataSource {
|
|||||||
if (!isAuthAvailable(auth.getNickname())) {
|
if (!isAuthAvailable(auth.getNickname())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerAuth newAuth = null;
|
PlayerAuth newAuth = null;
|
||||||
|
|
||||||
BufferedReader br = null;
|
BufferedReader br = null;
|
||||||
try {
|
try {
|
||||||
br = new BufferedReader(new FileReader(source));
|
br = new BufferedReader(new FileReader(source));
|
||||||
@ -152,9 +146,7 @@ public class FileDataSource implements DataSource {
|
|||||||
if (!isAuthAvailable(auth.getNickname())) {
|
if (!isAuthAvailable(auth.getNickname())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerAuth newAuth = null;
|
PlayerAuth newAuth = null;
|
||||||
|
|
||||||
BufferedReader br = null;
|
BufferedReader br = null;
|
||||||
try {
|
try {
|
||||||
br = new BufferedReader(new FileReader(source));
|
br = new BufferedReader(new FileReader(source));
|
||||||
@ -187,13 +179,10 @@ public class FileDataSource implements DataSource {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateQuitLoc(PlayerAuth auth) {
|
public boolean updateQuitLoc(PlayerAuth auth) {
|
||||||
|
|
||||||
if (!isAuthAvailable(auth.getNickname())) {
|
if (!isAuthAvailable(auth.getNickname())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerAuth newAuth = null;
|
PlayerAuth newAuth = null;
|
||||||
|
|
||||||
BufferedReader br = null;
|
BufferedReader br = null;
|
||||||
try {
|
try {
|
||||||
br = new BufferedReader(new FileReader(source));
|
br = new BufferedReader(new FileReader(source));
|
||||||
@ -201,7 +190,6 @@ public class FileDataSource implements DataSource {
|
|||||||
while ((line = br.readLine()) != null) {
|
while ((line = br.readLine()) != null) {
|
||||||
String[] args = line.split(":");
|
String[] args = line.split(":");
|
||||||
if (args[0].equals(auth.getNickname())) {
|
if (args[0].equals(auth.getNickname())) {
|
||||||
//System.out.println("[Debug update] "+auth.getQuitLocX());
|
|
||||||
newAuth = new PlayerAuth(args[0], args[1], args[2], Long.parseLong(args[3]), auth.getQuitLocX(), auth.getQuitLocY(), auth.getQuitLocZ());
|
newAuth = new PlayerAuth(args[0], args[1], args[2], Long.parseLong(args[3]), auth.getQuitLocX(), auth.getQuitLocY(), auth.getQuitLocZ());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -234,7 +222,6 @@ public class FileDataSource implements DataSource {
|
|||||||
String line;
|
String line;
|
||||||
while ((line = br.readLine()) != null) {
|
while ((line = br.readLine()) != null) {
|
||||||
String[] args = line.split(":");
|
String[] args = line.split(":");
|
||||||
//System.out.println(ip+" match? "+args[2]);
|
|
||||||
if (args.length > 3 && args[2].equals(ip)) {
|
if (args.length > 3 && args[2].equals(ip)) {
|
||||||
countIp++;
|
countIp++;
|
||||||
}
|
}
|
||||||
@ -262,7 +249,6 @@ public class FileDataSource implements DataSource {
|
|||||||
BufferedWriter bw = null;
|
BufferedWriter bw = null;
|
||||||
ArrayList<String> lines = new ArrayList<String>();
|
ArrayList<String> lines = new ArrayList<String>();
|
||||||
int cleared = 0;
|
int cleared = 0;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
br = new BufferedReader(new FileReader(source));
|
br = new BufferedReader(new FileReader(source));
|
||||||
String line;
|
String line;
|
||||||
@ -276,7 +262,6 @@ public class FileDataSource implements DataSource {
|
|||||||
}
|
}
|
||||||
cleared++;
|
cleared++;
|
||||||
}
|
}
|
||||||
|
|
||||||
bw = new BufferedWriter(new FileWriter(source));
|
bw = new BufferedWriter(new FileWriter(source));
|
||||||
for (String l : lines) {
|
for (String l : lines) {
|
||||||
bw.write(l + "\n");
|
bw.write(l + "\n");
|
||||||
@ -309,7 +294,6 @@ public class FileDataSource implements DataSource {
|
|||||||
if (!isAuthAvailable(user)) {
|
if (!isAuthAvailable(user)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
BufferedReader br = null;
|
BufferedReader br = null;
|
||||||
BufferedWriter bw = null;
|
BufferedWriter bw = null;
|
||||||
ArrayList<String> lines = new ArrayList<String>();
|
ArrayList<String> lines = new ArrayList<String>();
|
||||||
@ -322,7 +306,6 @@ public class FileDataSource implements DataSource {
|
|||||||
lines.add(line);
|
lines.add(line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bw = new BufferedWriter(new FileWriter(source));
|
bw = new BufferedWriter(new FileWriter(source));
|
||||||
for (String l : lines) {
|
for (String l : lines) {
|
||||||
bw.write(l + "\n");
|
bw.write(l + "\n");
|
||||||
@ -415,7 +398,6 @@ public class FileDataSource implements DataSource {
|
|||||||
String line;
|
String line;
|
||||||
while ((line = br.readLine()) != null) {
|
while ((line = br.readLine()) != null) {
|
||||||
String[] args = line.split(":");
|
String[] args = line.split(":");
|
||||||
//System.out.println(ip+" match? "+args[2]);
|
|
||||||
if (args.length > 3 && args[2].equals(auth.getIp())) {
|
if (args.length > 3 && args[2].equals(auth.getIp())) {
|
||||||
countIp.add(args[0]);
|
countIp.add(args[0]);
|
||||||
}
|
}
|
||||||
@ -471,4 +453,49 @@ public class FileDataSource implements DataSource {
|
|||||||
public List<String> getAllAuthsByEmail(String email) {
|
public List<String> getAllAuthsByEmail(String email) {
|
||||||
return new ArrayList<String>();
|
return new ArrayList<String>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void purgeBanned(List<String> banned) {
|
||||||
|
BufferedReader br = null;
|
||||||
|
BufferedWriter bw = null;
|
||||||
|
ArrayList<String> lines = new ArrayList<String>();
|
||||||
|
try {
|
||||||
|
br = new BufferedReader(new FileReader(source));
|
||||||
|
String line;
|
||||||
|
while ((line = br.readLine()) != null) {
|
||||||
|
String[] args = line.split(":");
|
||||||
|
try {
|
||||||
|
if (banned.contains(args[0])) {
|
||||||
|
lines.add(line);
|
||||||
|
}
|
||||||
|
} catch (NullPointerException npe) {}
|
||||||
|
catch (ArrayIndexOutOfBoundsException aioobe) {}
|
||||||
|
}
|
||||||
|
bw = new BufferedWriter(new FileWriter(source));
|
||||||
|
for (String l : lines) {
|
||||||
|
bw.write(l + "\n");
|
||||||
|
}
|
||||||
|
} catch (FileNotFoundException ex) {
|
||||||
|
ConsoleLogger.showError(ex.getMessage());
|
||||||
|
return;
|
||||||
|
} catch (IOException ex) {
|
||||||
|
ConsoleLogger.showError(ex.getMessage());
|
||||||
|
return;
|
||||||
|
} finally {
|
||||||
|
if (br != null) {
|
||||||
|
try {
|
||||||
|
br.close();
|
||||||
|
} catch (IOException ex) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (bw != null) {
|
||||||
|
try {
|
||||||
|
bw.close();
|
||||||
|
} catch (IOException ex) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,6 @@ public class MySQLDataSource implements DataSource {
|
|||||||
this.port = Settings.getMySQLPort;
|
this.port = Settings.getMySQLPort;
|
||||||
this.username = Settings.getMySQLUsername;
|
this.username = Settings.getMySQLUsername;
|
||||||
this.password = Settings.getMySQLPassword;
|
this.password = Settings.getMySQLPassword;
|
||||||
|
|
||||||
this.database = Settings.getMySQLDatabase;
|
this.database = Settings.getMySQLDatabase;
|
||||||
this.tableName = Settings.getMySQLTablename;
|
this.tableName = Settings.getMySQLTablename;
|
||||||
this.columnName = Settings.getMySQLColumnName;
|
this.columnName = Settings.getMySQLColumnName;
|
||||||
@ -87,7 +86,6 @@ public class MySQLDataSource implements DataSource {
|
|||||||
dataSource.setPort(Integer.parseInt(port));
|
dataSource.setPort(Integer.parseInt(port));
|
||||||
dataSource.setUser(username);
|
dataSource.setUser(username);
|
||||||
dataSource.setPassword(password);
|
dataSource.setPassword(password);
|
||||||
|
|
||||||
conPool = new MiniConnectionPoolManager(dataSource, 10);
|
conPool = new MiniConnectionPoolManager(dataSource, 10);
|
||||||
ConsoleLogger.info("Connection pool ready");
|
ConsoleLogger.info("Connection pool ready");
|
||||||
}
|
}
|
||||||
@ -110,7 +108,6 @@ public class MySQLDataSource implements DataSource {
|
|||||||
+ lastlocZ + " smallint(6) DEFAULT '0',"
|
+ lastlocZ + " smallint(6) DEFAULT '0',"
|
||||||
+ columnEmail + " VARCHAR(255) DEFAULT 'your@email.com',"
|
+ columnEmail + " VARCHAR(255) DEFAULT 'your@email.com',"
|
||||||
+ "CONSTRAINT table_const_prim PRIMARY KEY (" + columnID + "));");
|
+ "CONSTRAINT table_const_prim PRIMARY KEY (" + columnID + "));");
|
||||||
|
|
||||||
rs = con.getMetaData().getColumns(null, null, tableName, columnPassword);
|
rs = con.getMetaData().getColumns(null, null, tableName, columnPassword);
|
||||||
if (!rs.next()) {
|
if (!rs.next()) {
|
||||||
st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
|
st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
|
||||||
@ -369,10 +366,6 @@ public class MySQLDataSource implements DataSource {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Check how many registration by given ip has been done
|
|
||||||
//
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getIps(String ip) {
|
public int getIps(String ip) {
|
||||||
Connection con = null;
|
Connection con = null;
|
||||||
@ -581,5 +574,23 @@ public class MySQLDataSource implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void purgeBanned(List<String> banned) {
|
||||||
|
Connection con = null;
|
||||||
|
PreparedStatement pst = null;
|
||||||
|
try {
|
||||||
|
for (String name : banned) {
|
||||||
|
con = conPool.getValidConnection();
|
||||||
|
pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE " + columnName + "=?;");
|
||||||
|
pst.setString(1, name);
|
||||||
|
pst.executeUpdate();
|
||||||
|
}
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
ConsoleLogger.showError(ex.getMessage());
|
||||||
|
} finally {
|
||||||
|
close(pst);
|
||||||
|
close(con);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
*/
|
*/
|
||||||
package uk.org.whoami.authme.datasource;
|
package uk.org.whoami.authme.datasource;
|
||||||
|
|
||||||
|
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -43,12 +42,10 @@ public class SqliteDataSource implements DataSource {
|
|||||||
private Connection con;
|
private Connection con;
|
||||||
|
|
||||||
public SqliteDataSource() throws ClassNotFoundException, SQLException {
|
public SqliteDataSource() throws ClassNotFoundException, SQLException {
|
||||||
//Settings s = Settings.getInstance();
|
|
||||||
this.host = Settings.getMySQLHost;
|
this.host = Settings.getMySQLHost;
|
||||||
this.port = Settings.getMySQLPort;
|
this.port = Settings.getMySQLPort;
|
||||||
this.username = Settings.getMySQLUsername;
|
this.username = Settings.getMySQLUsername;
|
||||||
this.password = Settings.getMySQLPassword;
|
this.password = Settings.getMySQLPassword;
|
||||||
|
|
||||||
this.database = Settings.getMySQLDatabase;
|
this.database = Settings.getMySQLDatabase;
|
||||||
this.tableName = Settings.getMySQLTablename;
|
this.tableName = Settings.getMySQLTablename;
|
||||||
this.columnName = Settings.getMySQLColumnName;
|
this.columnName = Settings.getMySQLColumnName;
|
||||||
@ -71,13 +68,11 @@ public class SqliteDataSource implements DataSource {
|
|||||||
private synchronized void connect() throws ClassNotFoundException, SQLException {
|
private synchronized void connect() throws ClassNotFoundException, SQLException {
|
||||||
Class.forName("org.sqlite.JDBC");
|
Class.forName("org.sqlite.JDBC");
|
||||||
ConsoleLogger.info("SQLite driver loaded");
|
ConsoleLogger.info("SQLite driver loaded");
|
||||||
|
|
||||||
this.con = DriverManager.getConnection("jdbc:sqlite:plugins/AuthMe/"+database+".db");
|
this.con = DriverManager.getConnection("jdbc:sqlite:plugins/AuthMe/"+database+".db");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private synchronized void setup() throws SQLException {
|
private synchronized void setup() throws SQLException {
|
||||||
//Connection con = null;
|
|
||||||
Statement st = null;
|
Statement st = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
try {
|
try {
|
||||||
@ -93,7 +88,6 @@ public class SqliteDataSource implements DataSource {
|
|||||||
+ lastlocZ + " smallint(6) DEFAULT '0',"
|
+ lastlocZ + " smallint(6) DEFAULT '0',"
|
||||||
+ columnEmail + " VARCHAR(255) DEFAULT 'your@email.com',"
|
+ columnEmail + " VARCHAR(255) DEFAULT 'your@email.com',"
|
||||||
+ "CONSTRAINT table_const_prim PRIMARY KEY (" + columnID + "));");
|
+ "CONSTRAINT table_const_prim PRIMARY KEY (" + columnID + "));");
|
||||||
|
|
||||||
rs = con.getMetaData().getColumns(null, null, tableName, columnPassword);
|
rs = con.getMetaData().getColumns(null, null, tableName, columnPassword);
|
||||||
if (!rs.next()) {
|
if (!rs.next()) {
|
||||||
st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
|
st.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN "
|
||||||
@ -126,7 +120,6 @@ public class SqliteDataSource implements DataSource {
|
|||||||
} finally {
|
} finally {
|
||||||
close(rs);
|
close(rs);
|
||||||
close(st);
|
close(st);
|
||||||
//close(con);
|
|
||||||
}
|
}
|
||||||
ConsoleLogger.info("SQLite Setup finished");
|
ConsoleLogger.info("SQLite Setup finished");
|
||||||
}
|
}
|
||||||
@ -146,33 +139,26 @@ public class SqliteDataSource implements DataSource {
|
|||||||
} finally {
|
} finally {
|
||||||
close(rs);
|
close(rs);
|
||||||
close(pst);
|
close(pst);
|
||||||
//close(con);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized PlayerAuth getAuth(String user) {
|
public synchronized PlayerAuth getAuth(String user) {
|
||||||
//Connection con = null;
|
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
try {
|
try {
|
||||||
|
|
||||||
pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE "
|
pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE "
|
||||||
+ columnName + "=?;");
|
+ columnName + "=?;");
|
||||||
pst.setString(1, user);
|
pst.setString(1, user);
|
||||||
rs = pst.executeQuery();
|
rs = pst.executeQuery();
|
||||||
if (rs.next()) {
|
if (rs.next()) {
|
||||||
if (rs.getString(columnIp).isEmpty() ) {
|
if (rs.getString(columnIp).isEmpty() ) {
|
||||||
//System.out.println("[Authme Debug] ColumnIp is empty");
|
|
||||||
return new PlayerAuth(rs.getString(columnName), rs.getString(columnPassword), "198.18.0.1", rs.getLong(columnLastLogin), rs.getInt(lastlocX), rs.getInt(lastlocY), rs.getInt(lastlocZ), rs.getString(columnEmail));
|
return new PlayerAuth(rs.getString(columnName), rs.getString(columnPassword), "198.18.0.1", rs.getLong(columnLastLogin), rs.getInt(lastlocX), rs.getInt(lastlocY), rs.getInt(lastlocZ), rs.getString(columnEmail));
|
||||||
} else {
|
} else {
|
||||||
if(!columnSalt.isEmpty()){
|
if(!columnSalt.isEmpty()){
|
||||||
//System.out.println("[Authme Debug] column Salt is" + rs.getString(columnSalt));
|
|
||||||
return new PlayerAuth(rs.getString(columnName), rs.getString(columnPassword),rs.getString(columnSalt), rs.getInt(columnGroup), rs.getString(columnIp), rs.getLong(columnLastLogin), rs.getInt(lastlocX), rs.getInt(lastlocY), rs.getInt(lastlocZ), rs.getString(columnEmail));
|
return new PlayerAuth(rs.getString(columnName), rs.getString(columnPassword),rs.getString(columnSalt), rs.getInt(columnGroup), rs.getString(columnIp), rs.getLong(columnLastLogin), rs.getInt(lastlocX), rs.getInt(lastlocY), rs.getInt(lastlocZ), rs.getString(columnEmail));
|
||||||
} else {
|
} else {
|
||||||
//System.out.println("[Authme Debug] column Salt is empty");
|
|
||||||
return new PlayerAuth(rs.getString(columnName), rs.getString(columnPassword), rs.getString(columnIp), rs.getLong(columnLastLogin), rs.getInt(lastlocX), rs.getInt(lastlocY), rs.getInt(lastlocZ), rs.getString(columnEmail));
|
return new PlayerAuth(rs.getString(columnName), rs.getString(columnPassword), rs.getString(columnIp), rs.getLong(columnLastLogin), rs.getInt(lastlocX), rs.getInt(lastlocY), rs.getInt(lastlocZ), rs.getString(columnEmail));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -184,13 +170,11 @@ public class SqliteDataSource implements DataSource {
|
|||||||
} finally {
|
} finally {
|
||||||
close(rs);
|
close(rs);
|
||||||
close(pst);
|
close(pst);
|
||||||
//close(con);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean saveAuth(PlayerAuth auth) {
|
public synchronized boolean saveAuth(PlayerAuth auth) {
|
||||||
//Connection con = null;
|
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
try {
|
try {
|
||||||
if (columnSalt.isEmpty() && auth.getSalt().isEmpty()) {
|
if (columnSalt.isEmpty() && auth.getSalt().isEmpty()) {
|
||||||
@ -214,14 +198,12 @@ public class SqliteDataSource implements DataSource {
|
|||||||
return false;
|
return false;
|
||||||
} finally {
|
} finally {
|
||||||
close(pst);
|
close(pst);
|
||||||
//close(con);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean updatePassword(PlayerAuth auth) {
|
public synchronized boolean updatePassword(PlayerAuth auth) {
|
||||||
//Connection con = null;
|
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
try {
|
try {
|
||||||
pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnPassword + "=? WHERE " + columnName + "=?;");
|
pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnPassword + "=? WHERE " + columnName + "=?;");
|
||||||
@ -233,14 +215,12 @@ public class SqliteDataSource implements DataSource {
|
|||||||
return false;
|
return false;
|
||||||
} finally {
|
} finally {
|
||||||
close(pst);
|
close(pst);
|
||||||
//close(con);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateSession(PlayerAuth auth) {
|
public boolean updateSession(PlayerAuth auth) {
|
||||||
//Connection con = null;
|
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
try {
|
try {
|
||||||
pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnIp + "=?, " + columnLastLogin + "=? WHERE " + columnName + "=?;");
|
pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnIp + "=?, " + columnLastLogin + "=? WHERE " + columnName + "=?;");
|
||||||
@ -253,14 +233,12 @@ public class SqliteDataSource implements DataSource {
|
|||||||
return false;
|
return false;
|
||||||
} finally {
|
} finally {
|
||||||
close(pst);
|
close(pst);
|
||||||
//close(con);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int purgeDatabase(long until) {
|
public int purgeDatabase(long until) {
|
||||||
//Connection con = null;
|
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
try {
|
try {
|
||||||
|
|
||||||
@ -272,16 +250,13 @@ public class SqliteDataSource implements DataSource {
|
|||||||
return 0;
|
return 0;
|
||||||
} finally {
|
} finally {
|
||||||
close(pst);
|
close(pst);
|
||||||
//close(con);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized boolean removeAuth(String user) {
|
public synchronized boolean removeAuth(String user) {
|
||||||
//Connection con = null;
|
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
try {
|
try {
|
||||||
|
|
||||||
pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE " + columnName + "=?;");
|
pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE " + columnName + "=?;");
|
||||||
pst.setString(1, user);
|
pst.setString(1, user);
|
||||||
pst.executeUpdate();
|
pst.executeUpdate();
|
||||||
@ -290,17 +265,14 @@ public class SqliteDataSource implements DataSource {
|
|||||||
return false;
|
return false;
|
||||||
} finally {
|
} finally {
|
||||||
close(pst);
|
close(pst);
|
||||||
//close(con);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateQuitLoc(PlayerAuth auth) {
|
public boolean updateQuitLoc(PlayerAuth auth) {
|
||||||
//Connection con = null;
|
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
try {
|
try {
|
||||||
|
|
||||||
pst = con.prepareStatement("UPDATE " + tableName + " SET " + lastlocX + "=?, "+ lastlocY +"=?, "+ lastlocZ +"=? WHERE " + columnName + "=?;");
|
pst = con.prepareStatement("UPDATE " + tableName + " SET " + lastlocX + "=?, "+ lastlocY +"=?, "+ lastlocZ +"=? WHERE " + columnName + "=?;");
|
||||||
pst.setLong(1, auth.getQuitLocX());
|
pst.setLong(1, auth.getQuitLocX());
|
||||||
pst.setLong(2, auth.getQuitLocY());
|
pst.setLong(2, auth.getQuitLocY());
|
||||||
@ -312,23 +284,16 @@ public class SqliteDataSource implements DataSource {
|
|||||||
return false;
|
return false;
|
||||||
} finally {
|
} finally {
|
||||||
close(pst);
|
close(pst);
|
||||||
//close(con);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Check how many registration by given ip has been done
|
|
||||||
//
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getIps(String ip) {
|
public int getIps(String ip) {
|
||||||
//Connection con = null;
|
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
int countIp=0;
|
int countIp=0;
|
||||||
try {
|
try {
|
||||||
|
|
||||||
pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE "
|
pst = con.prepareStatement("SELECT * FROM " + tableName + " WHERE "
|
||||||
+ columnIp + "=?;");
|
+ columnIp + "=?;");
|
||||||
pst.setString(1, ip);
|
pst.setString(1, ip);
|
||||||
@ -343,13 +308,11 @@ public class SqliteDataSource implements DataSource {
|
|||||||
} finally {
|
} finally {
|
||||||
close(rs);
|
close(rs);
|
||||||
close(pst);
|
close(pst);
|
||||||
//close(con);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateEmail(PlayerAuth auth) {
|
public boolean updateEmail(PlayerAuth auth) {
|
||||||
//Connection con = null;
|
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
try {
|
try {
|
||||||
pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnEmail + "=? WHERE " + columnName + "=?;");
|
pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnEmail + "=? WHERE " + columnName + "=?;");
|
||||||
@ -361,7 +324,6 @@ public class SqliteDataSource implements DataSource {
|
|||||||
return false;
|
return false;
|
||||||
} finally {
|
} finally {
|
||||||
close(pst);
|
close(pst);
|
||||||
//close(con);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -371,7 +333,6 @@ public class SqliteDataSource implements DataSource {
|
|||||||
if(columnSalt.isEmpty()) {
|
if(columnSalt.isEmpty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
//Connection con = null;
|
|
||||||
PreparedStatement pst = null;
|
PreparedStatement pst = null;
|
||||||
try {
|
try {
|
||||||
pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnSalt + "=? WHERE " + columnName + "=?;");
|
pst = con.prepareStatement("UPDATE " + tableName + " SET " + columnSalt + "=? WHERE " + columnName + "=?;");
|
||||||
@ -383,7 +344,6 @@ public class SqliteDataSource implements DataSource {
|
|||||||
return false;
|
return false;
|
||||||
} finally {
|
} finally {
|
||||||
close(pst);
|
close(pst);
|
||||||
//close(con);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -456,7 +416,6 @@ public class SqliteDataSource implements DataSource {
|
|||||||
} finally {
|
} finally {
|
||||||
close(rs);
|
close(rs);
|
||||||
close(pst);
|
close(pst);
|
||||||
//close(con);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -485,7 +444,6 @@ public class SqliteDataSource implements DataSource {
|
|||||||
} finally {
|
} finally {
|
||||||
close(rs);
|
close(rs);
|
||||||
close(pst);
|
close(pst);
|
||||||
//close(con);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -517,4 +475,20 @@ public class SqliteDataSource implements DataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void purgeBanned(List<String> banned) {
|
||||||
|
PreparedStatement pst = null;
|
||||||
|
try {
|
||||||
|
for (String name : banned) {
|
||||||
|
pst = con.prepareStatement("DELETE FROM " + tableName + " WHERE " + columnName + "=?;");
|
||||||
|
pst.setString(1, name);
|
||||||
|
pst.executeUpdate();
|
||||||
|
}
|
||||||
|
} catch (SQLException ex) {
|
||||||
|
ConsoleLogger.showError(ex.getMessage());
|
||||||
|
} finally {
|
||||||
|
close(pst);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -15,10 +15,8 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
|
|
||||||
public class CardboardBox implements Serializable {
|
public class CardboardBox implements Serializable {
|
||||||
private static final long serialVersionUID = 729890133797629668L;
|
private static final long serialVersionUID = 729890133797629668L;
|
||||||
|
|
||||||
private final int type, amount;
|
private final int type, amount;
|
||||||
private final short damage;
|
private final short damage;
|
||||||
|
|
||||||
private final HashMap<CardboardEnchantment, Integer> enchants;
|
private final HashMap<CardboardEnchantment, Integer> enchants;
|
||||||
|
|
||||||
public CardboardBox(ItemStack item) {
|
public CardboardBox(ItemStack item) {
|
||||||
|
@ -22,4 +22,5 @@ public class CardboardEnchantment implements Serializable {
|
|||||||
public Enchantment unbox() {
|
public Enchantment unbox() {
|
||||||
return Enchantment.getById(this.id);
|
return Enchantment.getById(this.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -3,6 +3,10 @@ package uk.org.whoami.authme.events;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class AuthMeTeleportEvent extends CustomEvent {
|
public class AuthMeTeleportEvent extends CustomEvent {
|
||||||
|
|
||||||
private Player player;
|
private Player player;
|
||||||
|
@ -4,14 +4,16 @@ import org.bukkit.Server;
|
|||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class CustomEvent extends Event {
|
public class CustomEvent extends Event {
|
||||||
|
|
||||||
|
|
||||||
private boolean isCancelled;
|
private boolean isCancelled;
|
||||||
private static final HandlerList handlers = new HandlerList();
|
private static final HandlerList handlers = new HandlerList();
|
||||||
private static Server s;
|
private static Server s;
|
||||||
|
|
||||||
|
|
||||||
public HandlerList getHandlers() {
|
public HandlerList getHandlers() {
|
||||||
return handlers;
|
return handlers;
|
||||||
}
|
}
|
||||||
@ -28,7 +30,6 @@ public class CustomEvent extends Event {
|
|||||||
this.isCancelled = cancelled;
|
this.isCancelled = cancelled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Server getServer() {
|
public static Server getServer() {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
@ -2,9 +2,12 @@ package uk.org.whoami.authme.events;
|
|||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class LoginEvent extends UncancellableEvent {
|
public class LoginEvent extends UncancellableEvent {
|
||||||
|
|
||||||
|
|
||||||
private Player player;
|
private Player player;
|
||||||
private boolean isLogin;
|
private boolean isLogin;
|
||||||
|
|
||||||
@ -28,4 +31,5 @@ public class LoginEvent extends UncancellableEvent {
|
|||||||
public boolean isLogin() {
|
public boolean isLogin() {
|
||||||
return isLogin;
|
return isLogin;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,10 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
|
|
||||||
import uk.org.whoami.authme.api.API;
|
import uk.org.whoami.authme.api.API;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class ProtectInventoryEvent extends CustomEvent {
|
public class ProtectInventoryEvent extends CustomEvent {
|
||||||
|
|
||||||
private ItemStack[] storedinventory;
|
private ItemStack[] storedinventory;
|
||||||
@ -55,4 +59,5 @@ public class ProtectInventoryEvent extends CustomEvent {
|
|||||||
public ItemStack[] getEmptyArmor() {
|
public ItemStack[] getEmptyArmor() {
|
||||||
return this.emptyArmor;
|
return this.emptyArmor;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,10 @@ package uk.org.whoami.authme.events;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class RegisterTeleportEvent extends CustomEvent {
|
public class RegisterTeleportEvent extends CustomEvent {
|
||||||
|
|
||||||
private Player player;
|
private Player player;
|
||||||
@ -26,4 +30,5 @@ public class RegisterTeleportEvent extends CustomEvent {
|
|||||||
public Location getFrom() {
|
public Location getFrom() {
|
||||||
return from;
|
return from;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,10 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
|
|
||||||
import uk.org.whoami.authme.api.API;
|
import uk.org.whoami.authme.api.API;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class ResetInventoryEvent extends CustomEvent {
|
public class ResetInventoryEvent extends CustomEvent {
|
||||||
|
|
||||||
private Player player;
|
private Player player;
|
||||||
@ -21,4 +25,5 @@ public class ResetInventoryEvent extends CustomEvent {
|
|||||||
public void setPlayer(Player player) {
|
public void setPlayer(Player player) {
|
||||||
this.player = player;
|
this.player = player;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,10 @@ package uk.org.whoami.authme.events;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class RestoreInventoryEvent extends CustomEvent {
|
public class RestoreInventoryEvent extends CustomEvent {
|
||||||
|
|
||||||
private ItemStack[] inventory;
|
private ItemStack[] inventory;
|
||||||
@ -38,4 +42,5 @@ public class RestoreInventoryEvent extends CustomEvent {
|
|||||||
public void setPlayer(Player player) {
|
public void setPlayer(Player player) {
|
||||||
this.player = player;
|
this.player = player;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,9 +2,12 @@ package uk.org.whoami.authme.events;
|
|||||||
|
|
||||||
import uk.org.whoami.authme.cache.auth.PlayerAuth;
|
import uk.org.whoami.authme.cache.auth.PlayerAuth;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class SessionEvent extends CustomEvent {
|
public class SessionEvent extends CustomEvent {
|
||||||
|
|
||||||
|
|
||||||
private PlayerAuth player;
|
private PlayerAuth player;
|
||||||
private boolean isLogin;
|
private boolean isLogin;
|
||||||
|
|
||||||
@ -24,4 +27,5 @@ public class SessionEvent extends CustomEvent {
|
|||||||
public boolean isLogin() {
|
public boolean isLogin() {
|
||||||
return isLogin;
|
return isLogin;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,10 @@ package uk.org.whoami.authme.events;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class SpawnTeleportEvent extends CustomEvent {
|
public class SpawnTeleportEvent extends CustomEvent {
|
||||||
|
|
||||||
private Player player;
|
private Player player;
|
||||||
|
@ -5,9 +5,12 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
|
|
||||||
import uk.org.whoami.authme.cache.backup.FileCache;
|
import uk.org.whoami.authme.cache.backup.FileCache;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class StoreInventoryEvent extends CustomEvent {
|
public class StoreInventoryEvent extends CustomEvent {
|
||||||
|
|
||||||
|
|
||||||
private ItemStack[] inventory;
|
private ItemStack[] inventory;
|
||||||
private ItemStack[] armor;
|
private ItemStack[] armor;
|
||||||
private Player player;
|
private Player player;
|
||||||
@ -47,4 +50,5 @@ public class StoreInventoryEvent extends CustomEvent {
|
|||||||
public void setPlayer(Player player) {
|
public void setPlayer(Player player) {
|
||||||
this.player = player;
|
this.player = player;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,13 +4,15 @@ import org.bukkit.Server;
|
|||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class UncancellableEvent extends Event {
|
public class UncancellableEvent extends Event {
|
||||||
|
|
||||||
|
|
||||||
private static final HandlerList handlers = new HandlerList();
|
private static final HandlerList handlers = new HandlerList();
|
||||||
private static Server s;
|
private static Server s;
|
||||||
|
|
||||||
|
|
||||||
public HandlerList getHandlers() {
|
public HandlerList getHandlers() {
|
||||||
return handlers;
|
return handlers;
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,10 @@ package uk.org.whoami.authme.filter;
|
|||||||
import java.util.logging.Filter;
|
import java.util.logging.Filter;
|
||||||
import java.util.logging.LogRecord;
|
import java.util.logging.LogRecord;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class ConsoleFilter implements Filter {
|
public class ConsoleFilter implements Filter {
|
||||||
|
|
||||||
public ConsoleFilter() {}
|
public ConsoleFilter() {}
|
||||||
@ -18,6 +22,4 @@ public class ConsoleFilter implements Filter {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -24,4 +24,5 @@ public class CustomButton extends GenericButton
|
|||||||
.shiftYPos(-(height / 2));
|
.shiftYPos(-(height / 2));
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,6 @@ public class LoginScreen extends GenericPopup implements Clickable{
|
|||||||
|
|
||||||
public AuthMe plugin = AuthMe.getInstance();
|
public AuthMe plugin = AuthMe.getInstance();
|
||||||
private SpoutCfg spoutCfg = SpoutCfg.getInstance();
|
private SpoutCfg spoutCfg = SpoutCfg.getInstance();
|
||||||
|
|
||||||
private CustomButton exitBtn;
|
private CustomButton exitBtn;
|
||||||
private CustomButton loginBtn;
|
private CustomButton loginBtn;
|
||||||
private GenericTextField passBox;
|
private GenericTextField passBox;
|
||||||
@ -35,17 +34,16 @@ public class LoginScreen extends GenericPopup implements Clickable{
|
|||||||
private GenericLabel textLbl;
|
private GenericLabel textLbl;
|
||||||
private GenericLabel errorLbl;
|
private GenericLabel errorLbl;
|
||||||
|
|
||||||
String exitTxt = spoutCfg.getString("LoginScreen.exit button"); //"Quit";
|
String exitTxt = spoutCfg.getString("LoginScreen.exit button");
|
||||||
String loginTxt = spoutCfg.getString("LoginScreen.login button"); //"Login";
|
String loginTxt = spoutCfg.getString("LoginScreen.login button");
|
||||||
String exitMsg = spoutCfg.getString("LoginScreen.exit message"); //"Good Bye";
|
String exitMsg = spoutCfg.getString("LoginScreen.exit message");
|
||||||
String title = spoutCfg.getString("LoginScreen.title"); //"LOGIN"
|
String title = spoutCfg.getString("LoginScreen.title");
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
List<String> textlines = (List<String>) spoutCfg.getList("LoginScreen.text");
|
List<String> textlines = (List<String>) spoutCfg.getList("LoginScreen.text");
|
||||||
public SpoutPlayer splayer;
|
public SpoutPlayer splayer;
|
||||||
|
|
||||||
public LoginScreen(SpoutPlayer player) {
|
public LoginScreen(SpoutPlayer player) {
|
||||||
this.splayer = player;
|
this.splayer = player;
|
||||||
|
|
||||||
createScreen();
|
createScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,7 +51,6 @@ public class LoginScreen extends GenericPopup implements Clickable{
|
|||||||
int objects = textlines.size() + 4;
|
int objects = textlines.size() + 4;
|
||||||
int part = !(textlines.size() <= 5) ? 195 / objects : 20;
|
int part = !(textlines.size() <= 5) ? 195 / objects : 20;
|
||||||
int h = 3*part/4, w = 8*part;
|
int h = 3*part/4, w = 8*part;
|
||||||
|
|
||||||
titleLbl = new GenericLabel();
|
titleLbl = new GenericLabel();
|
||||||
titleLbl
|
titleLbl
|
||||||
.setText(title)
|
.setText(title)
|
||||||
@ -64,7 +61,6 @@ public class LoginScreen extends GenericPopup implements Clickable{
|
|||||||
.setX(maxWidth / 2 )
|
.setX(maxWidth / 2 )
|
||||||
.setY(25);
|
.setY(25);
|
||||||
this.attachWidget(plugin, titleLbl);
|
this.attachWidget(plugin, titleLbl);
|
||||||
|
|
||||||
int ystart = 25 + h + part/2;
|
int ystart = 25 + h + part/2;
|
||||||
for (int x=0; x<textlines.size();x++)
|
for (int x=0; x<textlines.size();x++)
|
||||||
{
|
{
|
||||||
@ -78,7 +74,6 @@ public class LoginScreen extends GenericPopup implements Clickable{
|
|||||||
.setY(ystart + x*part);
|
.setY(ystart + x*part);
|
||||||
this.attachWidget(plugin, textLbl);
|
this.attachWidget(plugin, textLbl);
|
||||||
}
|
}
|
||||||
|
|
||||||
passBox = new GenericTextField();
|
passBox = new GenericTextField();
|
||||||
passBox
|
passBox
|
||||||
.setMaximumCharacters(18)
|
.setMaximumCharacters(18)
|
||||||
@ -89,7 +84,6 @@ public class LoginScreen extends GenericPopup implements Clickable{
|
|||||||
passBox.setPasswordField(true);
|
passBox.setPasswordField(true);
|
||||||
setXToMid(passBox);
|
setXToMid(passBox);
|
||||||
this.attachWidget(plugin, passBox);
|
this.attachWidget(plugin, passBox);
|
||||||
|
|
||||||
errorLbl = new GenericLabel();
|
errorLbl = new GenericLabel();
|
||||||
errorLbl
|
errorLbl
|
||||||
.setText("")
|
.setText("")
|
||||||
@ -99,7 +93,6 @@ public class LoginScreen extends GenericPopup implements Clickable{
|
|||||||
.setX(passBox.getX() + passBox.getWidth() + 2)
|
.setX(passBox.getX() + passBox.getWidth() + 2)
|
||||||
.setY(passBox.getY());
|
.setY(passBox.getY());
|
||||||
this.attachWidget(plugin, errorLbl);
|
this.attachWidget(plugin, errorLbl);
|
||||||
|
|
||||||
loginBtn = new CustomButton(this);
|
loginBtn = new CustomButton(this);
|
||||||
loginBtn
|
loginBtn
|
||||||
.setText(loginTxt)
|
.setText(loginTxt)
|
||||||
@ -108,7 +101,6 @@ public class LoginScreen extends GenericPopup implements Clickable{
|
|||||||
.setY(220-h-part);
|
.setY(220-h-part);
|
||||||
setXToMid(loginBtn);
|
setXToMid(loginBtn);
|
||||||
this.attachWidget(plugin, loginBtn);
|
this.attachWidget(plugin, loginBtn);
|
||||||
|
|
||||||
exitBtn = new CustomButton(this);
|
exitBtn = new CustomButton(this);
|
||||||
exitBtn
|
exitBtn
|
||||||
.setText(exitTxt)
|
.setText(exitTxt)
|
||||||
@ -118,10 +110,8 @@ public class LoginScreen extends GenericPopup implements Clickable{
|
|||||||
setXToMid(exitBtn);
|
setXToMid(exitBtn);
|
||||||
this.attachWidget(plugin, exitBtn);
|
this.attachWidget(plugin, exitBtn);
|
||||||
this.setPriority(RenderPriority.Highest);
|
this.setPriority(RenderPriority.Highest);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
@EventHandler (priority = EventPriority.HIGHEST)
|
@EventHandler (priority = EventPriority.HIGHEST)
|
||||||
public void handleClick(ButtonClickEvent event) {
|
public void handleClick(ButtonClickEvent event) {
|
||||||
Button b = event.getButton();
|
Button b = event.getButton();
|
||||||
@ -129,19 +119,10 @@ public class LoginScreen extends GenericPopup implements Clickable{
|
|||||||
if (event.isCancelled() || event == null || event.getPlayer() == null) return;
|
if (event.isCancelled() || event == null || event.getPlayer() == null) return;
|
||||||
if (b.equals(loginBtn))
|
if (b.equals(loginBtn))
|
||||||
{
|
{
|
||||||
String result = plugin.management.performLogin(player, passBox.getText());
|
plugin.management.performLogin(player, passBox.getText());
|
||||||
if(result == "") {
|
|
||||||
player.closeActiveWindow();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
errorLbl.setText(result);
|
|
||||||
passBox.setText("");
|
|
||||||
}
|
|
||||||
}else if(b.equals(exitBtn))
|
}else if(b.equals(exitBtn))
|
||||||
{
|
{
|
||||||
event.getPlayer().kickPlayer(exitMsg);
|
event.getPlayer().kickPlayer(exitMsg);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -149,5 +130,4 @@ public class LoginScreen extends GenericPopup implements Clickable{
|
|||||||
w.setX( (maxWidth - w.getWidth()) / 2);
|
w.setX( (maxWidth - w.getWidth()) / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,48 +0,0 @@
|
|||||||
package uk.org.whoami.authme.gui.screens;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author Hoezef
|
|
||||||
*/
|
|
||||||
import org.getspout.spoutapi.event.screen.ButtonClickEvent;
|
|
||||||
import org.getspout.spoutapi.gui.GenericLabel;
|
|
||||||
import org.getspout.spoutapi.gui.GenericPopup;
|
|
||||||
import org.getspout.spoutapi.gui.GenericTextField;
|
|
||||||
import org.getspout.spoutapi.gui.WidgetAnchor;
|
|
||||||
import org.getspout.spoutapi.player.SpoutPlayer;
|
|
||||||
|
|
||||||
import uk.org.whoami.authme.gui.Clickable;
|
|
||||||
import uk.org.whoami.authme.settings.Settings;
|
|
||||||
|
|
||||||
public class RegisterScreen extends GenericPopup implements Clickable{
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private SpoutPlayer splayer;
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private boolean forcedRegistrationEnabled;
|
|
||||||
private String title;
|
|
||||||
|
|
||||||
GenericLabel titleLbl = null;
|
|
||||||
GenericTextField messageTF = null;
|
|
||||||
|
|
||||||
public RegisterScreen(SpoutPlayer player, Settings settings) {
|
|
||||||
this.splayer = player;
|
|
||||||
this.forcedRegistrationEnabled = Settings.isForcedRegistrationEnabled;
|
|
||||||
this.title = ""; // needs to be set...
|
|
||||||
|
|
||||||
createScreen();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createScreen() {
|
|
||||||
titleLbl = new GenericLabel();
|
|
||||||
titleLbl.setText(title)
|
|
||||||
.setAnchor(WidgetAnchor.TOP_CENTER);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void handleClick(ButtonClickEvent event) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -33,7 +33,6 @@ public class AuthMeBlockListener implements Listener {
|
|||||||
|
|
||||||
private DataSource data;
|
private DataSource data;
|
||||||
public AuthMe instance;
|
public AuthMe instance;
|
||||||
//private Settings settings = Settings.getInstance();
|
|
||||||
|
|
||||||
public AuthMeBlockListener(DataSource data, AuthMe instance) {
|
public AuthMeBlockListener(DataSource data, AuthMe instance) {
|
||||||
this.data = data;
|
this.data = data;
|
||||||
@ -62,7 +61,6 @@ public class AuthMeBlockListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,7 +86,6 @@ public class AuthMeBlockListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,6 @@ import uk.org.whoami.authme.AuthMe;
|
|||||||
import uk.org.whoami.authme.Utils;
|
import uk.org.whoami.authme.Utils;
|
||||||
import uk.org.whoami.authme.cache.auth.PlayerCache;
|
import uk.org.whoami.authme.cache.auth.PlayerCache;
|
||||||
import uk.org.whoami.authme.datasource.DataSource;
|
import uk.org.whoami.authme.datasource.DataSource;
|
||||||
import uk.org.whoami.authme.plugin.manager.CombatTagComunicator;
|
|
||||||
import uk.org.whoami.authme.settings.Settings;
|
import uk.org.whoami.authme.settings.Settings;
|
||||||
|
|
||||||
public class AuthMeChestShopListener implements Listener {
|
public class AuthMeChestShopListener implements Listener {
|
||||||
@ -25,7 +24,7 @@ public class AuthMeChestShopListener implements Listener {
|
|||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
public void onPreTransaction(PreTransactionEvent event) {
|
public void onPreTransaction(PreTransactionEvent event) {
|
||||||
if (event.isCancelled() || event.getClient() == null || event == null) {
|
if (event.isCancelled() || event.getClient() == null || event == null) {
|
||||||
return;
|
return;
|
||||||
@ -34,7 +33,7 @@ public class AuthMeChestShopListener implements Listener {
|
|||||||
Player player = event.getClient();
|
Player player = event.getClient();
|
||||||
String name = player.getName().toLowerCase();
|
String name = player.getName().toLowerCase();
|
||||||
|
|
||||||
if (plugin.getCitizensCommunicator().isNPC(player, plugin) || Utils.getInstance().isUnrestricted(player) || CombatTagComunicator.isNPC(player)) {
|
if (Utils.getInstance().isUnrestricted(player)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,7 +47,5 @@ public class AuthMeChestShopListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
event.setCancelled(TransactionOutcome.OTHER);
|
event.setCancelled(TransactionOutcome.OTHER);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,6 @@ public class AuthMeEntityListener implements Listener{
|
|||||||
|
|
||||||
private DataSource data;
|
private DataSource data;
|
||||||
public AuthMe instance;
|
public AuthMe instance;
|
||||||
//private Settings settings = Settings.getInstance();
|
|
||||||
|
|
||||||
public AuthMeEntityListener(DataSource data, AuthMe instance) {
|
public AuthMeEntityListener(DataSource data, AuthMe instance) {
|
||||||
this.data = data;
|
this.data = data;
|
||||||
@ -55,14 +54,7 @@ public class AuthMeEntityListener implements Listener{
|
|||||||
if (!(entity instanceof Player)) {
|
if (!(entity instanceof Player)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
System.out.println("[ Entity Damage ] "+event.getEntity().toString());
|
|
||||||
@Future implementation till CombatTag dont release any apis
|
|
||||||
if(event.getEntity().toString().indexOf("PvPLogger") != -1 ) {
|
|
||||||
System.out.println("la stringa contiene PvPLogger 2");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
if(instance.getCitizensCommunicator().isNPC(entity, instance) || Utils.getInstance().isUnrestricted((Player)entity) || CombatTagComunicator.isNPC(entity)) {
|
if(instance.getCitizensCommunicator().isNPC(entity, instance) || Utils.getInstance().isUnrestricted((Player)entity) || CombatTagComunicator.isNPC(entity)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -79,7 +71,6 @@ public class AuthMeEntityListener implements Listener{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
player.setFireTicks(0);
|
player.setFireTicks(0);
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
@ -193,7 +184,6 @@ public class AuthMeEntityListener implements Listener{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler (priority = EventPriority.LOWEST)
|
@EventHandler (priority = EventPriority.LOWEST)
|
||||||
@ -222,8 +212,6 @@ public class AuthMeEntityListener implements Listener{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ import java.util.Date;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import net.md_5.bungee.BungeeCord;
|
import net.md_5.bungee.BungeeCord;
|
||||||
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
@ -71,10 +72,8 @@ import uk.org.whoami.authme.settings.Spawn;
|
|||||||
import uk.org.whoami.authme.task.MessageTask;
|
import uk.org.whoami.authme.task.MessageTask;
|
||||||
import uk.org.whoami.authme.task.TimeoutTask;
|
import uk.org.whoami.authme.task.TimeoutTask;
|
||||||
|
|
||||||
|
|
||||||
public class AuthMePlayerListener implements Listener {
|
public class AuthMePlayerListener implements Listener {
|
||||||
|
|
||||||
|
|
||||||
public static int gm = 0;
|
public static int gm = 0;
|
||||||
public static HashMap<String, Integer> gameMode = new HashMap<String, Integer>();
|
public static HashMap<String, Integer> gameMode = new HashMap<String, Integer>();
|
||||||
private Utils utils = Utils.getInstance();
|
private Utils utils = Utils.getInstance();
|
||||||
@ -97,7 +96,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
String name = player.getName().toLowerCase();
|
String name = player.getName().toLowerCase();
|
||||||
|
|
||||||
|
|
||||||
if (Utils.getInstance().isUnrestricted(player)) {
|
if (Utils.getInstance().isUnrestricted(player)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -122,11 +120,9 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
if (cmd.equalsIgnoreCase("/login") || cmd.equalsIgnoreCase("/register") || cmd.equalsIgnoreCase("/passpartu") || cmd.equalsIgnoreCase("/l") || cmd.equalsIgnoreCase("/reg") || cmd.equalsIgnoreCase("/email") || cmd.equalsIgnoreCase("/captcha")) {
|
if (cmd.equalsIgnoreCase("/login") || cmd.equalsIgnoreCase("/register") || cmd.equalsIgnoreCase("/passpartu") || cmd.equalsIgnoreCase("/l") || cmd.equalsIgnoreCase("/reg") || cmd.equalsIgnoreCase("/email") || cmd.equalsIgnoreCase("/captcha")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Settings.allowCommands.contains(cmd)) {
|
if (Settings.allowCommands.contains(cmd)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
event.setMessage("/notloggedin");
|
event.setMessage("/notloggedin");
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
@ -178,7 +174,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
player.sendMessage(m._("reg_msg"));
|
player.sendMessage(m._("reg_msg"));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
Bukkit.getScheduler().runTask(plugin, new Runnable()
|
Bukkit.getScheduler().runTask(plugin, new Runnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -200,7 +195,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
final String name = player.getName().toLowerCase();
|
final String name = player.getName().toLowerCase();
|
||||||
|
|
||||||
@ -242,7 +236,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
player.sendMessage(m._("reg_msg"));
|
player.sendMessage(m._("reg_msg"));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
Bukkit.getScheduler().runTask(plugin, new Runnable()
|
Bukkit.getScheduler().runTask(plugin, new Runnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -264,7 +257,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
final String name = player.getName().toLowerCase();
|
final String name = player.getName().toLowerCase();
|
||||||
|
|
||||||
@ -306,7 +298,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
player.sendMessage(m._("reg_msg"));
|
player.sendMessage(m._("reg_msg"));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
Bukkit.getScheduler().runTask(plugin, new Runnable()
|
Bukkit.getScheduler().runTask(plugin, new Runnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -328,7 +319,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
final String name = player.getName().toLowerCase();
|
final String name = player.getName().toLowerCase();
|
||||||
|
|
||||||
@ -370,7 +360,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
player.sendMessage(m._("reg_msg"));
|
player.sendMessage(m._("reg_msg"));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
Bukkit.getScheduler().runTask(plugin, new Runnable()
|
Bukkit.getScheduler().runTask(plugin, new Runnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -386,14 +375,12 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@EventHandler( priority = EventPriority.LOWEST)
|
@EventHandler( priority = EventPriority.LOWEST)
|
||||||
public void onPlayerEarlyChat(AsyncPlayerChatEvent event) {
|
public void onPlayerEarlyChat(AsyncPlayerChatEvent event) {
|
||||||
if (event.isCancelled() || event.getPlayer() == null) {
|
if (event.isCancelled() || event.getPlayer() == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
final String name = player.getName().toLowerCase();
|
final String name = player.getName().toLowerCase();
|
||||||
|
|
||||||
@ -435,7 +422,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
player.sendMessage(m._("reg_msg"));
|
player.sendMessage(m._("reg_msg"));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
Bukkit.getScheduler().runTask(plugin, new Runnable()
|
Bukkit.getScheduler().runTask(plugin, new Runnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -457,7 +443,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
final String name = player.getName().toLowerCase();
|
final String name = player.getName().toLowerCase();
|
||||||
|
|
||||||
@ -499,7 +484,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
player.sendMessage(m._("reg_msg"));
|
player.sendMessage(m._("reg_msg"));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
Bukkit.getScheduler().runTask(plugin, new Runnable()
|
Bukkit.getScheduler().runTask(plugin, new Runnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@ -521,7 +505,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
String name = player.getName().toLowerCase();
|
String name = player.getName().toLowerCase();
|
||||||
|
|
||||||
@ -546,7 +529,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int radius = Settings.getMovementRadius;
|
int radius = Settings.getMovementRadius;
|
||||||
Location spawn = player.getWorld().getSpawnLocation();
|
Location spawn = player.getWorld().getSpawnLocation();
|
||||||
if (plugin.mv != null) {
|
if (plugin.mv != null) {
|
||||||
@ -563,7 +545,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
if ((spawn.distance(player.getLocation()) > radius) ) {
|
if ((spawn.distance(player.getLocation()) > radius) ) {
|
||||||
event.getPlayer().teleport(spawn);
|
event.getPlayer().teleport(spawn);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
@ -581,21 +562,8 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!event.isAsynchronous()) {
|
//Run that asynchronous
|
||||||
if(data.isAuthAvailable(name) && !LimboCache.getInstance().hasLimboPlayer(name)) {
|
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
||||||
if(!Settings.isSessionsEnabled) {
|
|
||||||
LimboCache.getInstance().addLimboPlayer(player , utils.removeAll(player));
|
|
||||||
} else if(PlayerCache.getInstance().isAuthenticated(name)) {
|
|
||||||
if(!Settings.sessionExpireOnIpChange)
|
|
||||||
if(LimboCache.getInstance().hasLimboPlayer(player.getName().toLowerCase())) {
|
|
||||||
LimboCache.getInstance().deleteLimboPlayer(name);
|
|
||||||
}
|
|
||||||
LimboCache.getInstance().addLimboPlayer(player , utils.removeAll(player));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
Bukkit.getScheduler().runTask(plugin, new Runnable() {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
if(data.isAuthAvailable(name) && !LimboCache.getInstance().hasLimboPlayer(name)) {
|
if(data.isAuthAvailable(name) && !LimboCache.getInstance().hasLimboPlayer(name)) {
|
||||||
@ -609,12 +577,8 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
LimboCache.getInstance().addLimboPlayer(player , utils.removeAll(player));
|
LimboCache.getInstance().addLimboPlayer(player , utils.removeAll(player));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
//Check if forceSingleSession is set to true, so kick player that has joined with same nick of online player
|
//Check if forceSingleSession is set to true, so kick player that has joined with same nick of online player
|
||||||
if(player.isOnline() && Settings.isForceSingleSessionEnabled ) {
|
if(player.isOnline() && Settings.isForceSingleSessionEnabled ) {
|
||||||
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(player.getName().toLowerCase());
|
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(player.getName().toLowerCase());
|
||||||
@ -625,7 +589,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
LimboCache.getInstance().deleteLimboPlayer(player.getName().toLowerCase());
|
LimboCache.getInstance().deleteLimboPlayer(player.getName().toLowerCase());
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int min = Settings.getMinNickLength;
|
int min = Settings.getMinNickLength;
|
||||||
@ -658,6 +621,7 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
event.disallow(Result.KICK_FULL, m._("kick_fullserver"));
|
event.disallow(Result.KICK_FULL, m._("kick_fullserver"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.getServer().getOnlinePlayers().length > plugin.getServer().getMaxPlayers()) {
|
if (plugin.getServer().getOnlinePlayers().length > plugin.getServer().getMaxPlayers()) {
|
||||||
event.allow();
|
event.allow();
|
||||||
return;
|
return;
|
||||||
@ -674,7 +638,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||||
if (event.getPlayer() == null) {
|
if (event.getPlayer() == null) {
|
||||||
@ -699,9 +662,13 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
String ip = player.getAddress().getAddress().getHostAddress();
|
String ip = player.getAddress().getAddress().getHostAddress();
|
||||||
if (Settings.bungee) {
|
if (Settings.bungee) {
|
||||||
try {
|
try {
|
||||||
ip = BungeeCord.getInstance().getPlayer(player.getName()).getAddress().getAddress().getHostAddress();
|
for (ProxiedPlayer pp : BungeeCord.getInstance().getPlayers()) {
|
||||||
|
if (pp.getName().toLowerCase() == name) {
|
||||||
|
ip = pp.getAddress().getAddress().getHostAddress();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (NoClassDefFoundError ncdfe) {
|
} catch (NoClassDefFoundError ncdfe) {
|
||||||
ConsoleLogger.showError("Your BungeeCord version is outdated, you need a version with the latest API");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(Settings.isAllowRestrictedIp && !Settings.getRestrictedIp(name, ip)) {
|
if(Settings.isAllowRestrictedIp && !Settings.getRestrictedIp(name, ip)) {
|
||||||
@ -714,15 +681,11 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (data.isAuthAvailable(name)) {
|
if (data.isAuthAvailable(name)) {
|
||||||
|
|
||||||
|
|
||||||
if (Settings.isSessionsEnabled) {
|
if (Settings.isSessionsEnabled) {
|
||||||
PlayerAuth auth = data.getAuth(name);
|
PlayerAuth auth = data.getAuth(name);
|
||||||
long timeout = Settings.getSessionTimeout * 60000;
|
long timeout = Settings.getSessionTimeout * 60000;
|
||||||
long lastLogin = auth.getLastLogin();
|
long lastLogin = auth.getLastLogin();
|
||||||
long cur = new Date().getTime();
|
long cur = new Date().getTime();
|
||||||
|
|
||||||
|
|
||||||
if((cur - lastLogin < timeout || timeout == 0) && !auth.getIp().equals("198.18.0.1") ) {
|
if((cur - lastLogin < timeout || timeout == 0) && !auth.getIp().equals("198.18.0.1") ) {
|
||||||
if (auth.getNickname().equalsIgnoreCase(name) && auth.getIp().equals(ip) ) {
|
if (auth.getNickname().equalsIgnoreCase(name) && auth.getIp().equals(ip) ) {
|
||||||
plugin.getServer().getPluginManager().callEvent(new SessionEvent(auth, true));
|
plugin.getServer().getPluginManager().callEvent(new SessionEvent(auth, true));
|
||||||
@ -756,10 +719,8 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
}
|
}
|
||||||
// isent in session or session was ended correctly
|
// isent in session or session was ended correctly
|
||||||
LimboCache.getInstance().addLimboPlayer(player);
|
LimboCache.getInstance().addLimboPlayer(player);
|
||||||
|
|
||||||
DataFileCache dataFile = new DataFileCache(LimboCache.getInstance().getLimboPlayer(name).getInventory(),LimboCache.getInstance().getLimboPlayer(name).getArmour());
|
DataFileCache dataFile = new DataFileCache(LimboCache.getInstance().getLimboPlayer(name).getInventory(),LimboCache.getInstance().getLimboPlayer(name).getArmour());
|
||||||
playerBackup.createCache(name, dataFile, LimboCache.getInstance().getLimboPlayer(name).getGroup(),LimboCache.getInstance().getLimboPlayer(name).getOperator());
|
playerBackup.createCache(name, dataFile, LimboCache.getInstance().getLimboPlayer(name).getGroup(),LimboCache.getInstance().getLimboPlayer(name).getOperator());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if(!Settings.unRegisteredGroup.isEmpty()){
|
if(!Settings.unRegisteredGroup.isEmpty()){
|
||||||
utils.setGroup(player, Utils.groupType.UNREGISTERED);
|
utils.setGroup(player, Utils.groupType.UNREGISTERED);
|
||||||
@ -768,9 +729,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(Settings.protectInventoryBeforeLogInEnabled) {
|
if(Settings.protectInventoryBeforeLogInEnabled) {
|
||||||
try {
|
try {
|
||||||
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(player.getName().toLowerCase());
|
LimboPlayer limbo = LimboCache.getInstance().getLimboPlayer(player.getName().toLowerCase());
|
||||||
@ -783,10 +741,8 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
} catch (NullPointerException ex) {
|
} catch (NullPointerException ex) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(player.isOp())
|
if(player.isOp())
|
||||||
player.setOp(false);
|
player.setOp(false);
|
||||||
|
|
||||||
if (Settings.isTeleportToSpawnEnabled || (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName()))) {
|
if (Settings.isTeleportToSpawnEnabled || (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName()))) {
|
||||||
SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawnLoc, PlayerCache.getInstance().isAuthenticated(name));
|
SpawnTeleportEvent tpEvent = new SpawnTeleportEvent(player, player.getLocation(), spawnLoc, PlayerCache.getInstance().isAuthenticated(name));
|
||||||
plugin.getServer().getPluginManager().callEvent(tpEvent);
|
plugin.getServer().getPluginManager().callEvent(tpEvent);
|
||||||
@ -797,25 +753,19 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
player.teleport(tpEvent.getTo());
|
player.teleport(tpEvent.getTo());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
String msg = data.isAuthAvailable(name) ? m._("login_msg") : m._("reg_msg");
|
String msg = data.isAuthAvailable(name) ? m._("login_msg") : m._("reg_msg");
|
||||||
int time = Settings.getRegistrationTimeout * 20;
|
int time = Settings.getRegistrationTimeout * 20;
|
||||||
int msgInterval = Settings.getWarnMessageInterval;
|
int msgInterval = Settings.getWarnMessageInterval;
|
||||||
if (time != 0) {
|
if (time != 0) {
|
||||||
|
|
||||||
BukkitTask id = sched.runTaskLater(plugin, new TimeoutTask(plugin, name), time);
|
BukkitTask id = sched.runTaskLater(plugin, new TimeoutTask(plugin, name), time);
|
||||||
if(!LimboCache.getInstance().hasLimboPlayer(name))
|
if(!LimboCache.getInstance().hasLimboPlayer(name))
|
||||||
LimboCache.getInstance().addLimboPlayer(player);
|
LimboCache.getInstance().addLimboPlayer(player);
|
||||||
|
|
||||||
LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id.getTaskId());
|
LimboCache.getInstance().getLimboPlayer(name).setTimeoutTaskId(id.getTaskId());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!LimboCache.getInstance().hasLimboPlayer(name))
|
if(!LimboCache.getInstance().hasLimboPlayer(name))
|
||||||
LimboCache.getInstance().addLimboPlayer(player);
|
LimboCache.getInstance().addLimboPlayer(player);
|
||||||
BukkitTask msgT = sched.runTask(plugin, new MessageTask(plugin, name, msg, msgInterval));
|
BukkitTask msgT = sched.runTask(plugin, new MessageTask(plugin, name, msg, msgInterval));
|
||||||
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT.getTaskId());
|
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(msgT.getTaskId());
|
||||||
|
|
||||||
if (Settings.isForceSurvivalModeEnabled)
|
if (Settings.isForceSurvivalModeEnabled)
|
||||||
sched.runTask(plugin, new Runnable() {
|
sched.runTask(plugin, new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
@ -824,14 +774,12 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR)
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||||
if (event.getPlayer() == null) {
|
if (event.getPlayer() == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
String name = player.getName().toLowerCase();
|
String name = player.getName().toLowerCase();
|
||||||
|
|
||||||
@ -841,11 +789,15 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
|
|
||||||
if (PlayerCache.getInstance().isAuthenticated(name) && !player.isDead()) {
|
if (PlayerCache.getInstance().isAuthenticated(name) && !player.isDead()) {
|
||||||
if(Settings.isSaveQuitLocationEnabled && data.isAuthAvailable(name)) {
|
if(Settings.isSaveQuitLocationEnabled && data.isAuthAvailable(name)) {
|
||||||
PlayerAuth auth = new PlayerAuth(event.getPlayer().getName().toLowerCase(),(int)player.getLocation().getX(),(int)player.getLocation().getY(),(int)player.getLocation().getZ());
|
final PlayerAuth auth = new PlayerAuth(event.getPlayer().getName().toLowerCase(),(int)player.getLocation().getX(),(int)player.getLocation().getY(),(int)player.getLocation().getZ());
|
||||||
try {
|
try {
|
||||||
|
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
data.updateQuitLoc(auth);
|
data.updateQuitLoc(auth);
|
||||||
|
}
|
||||||
|
});
|
||||||
} catch (NullPointerException npe) { }
|
} catch (NullPointerException npe) { }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -870,18 +822,13 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
PlayerCache.getInstance().removePlayer(name);
|
PlayerCache.getInstance().removePlayer(name);
|
||||||
} catch (NullPointerException npe) {
|
|
||||||
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
PlayersLogs.players.remove(player.getName());
|
PlayersLogs.players.remove(player.getName());
|
||||||
PlayersLogs.getInstance().save();
|
PlayersLogs.getInstance().save();
|
||||||
|
player.getVehicle().eject();
|
||||||
} catch (NullPointerException ex) {
|
} catch (NullPointerException ex) {
|
||||||
|
|
||||||
}
|
}
|
||||||
if (gameMode.containsKey(name)) gameMode.remove(name);
|
if (gameMode.containsKey(name)) gameMode.remove(name);
|
||||||
player.saveData();
|
player.saveData();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority=EventPriority.MONITOR)
|
@EventHandler(priority=EventPriority.MONITOR)
|
||||||
@ -908,8 +855,13 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
String name = player.getName().toLowerCase();
|
String name = player.getName().toLowerCase();
|
||||||
if ((PlayerCache.getInstance().isAuthenticated(name)) && (!player.isDead()) &&
|
if ((PlayerCache.getInstance().isAuthenticated(name)) && (!player.isDead()) &&
|
||||||
(Settings.isSaveQuitLocationEnabled.booleanValue()) && data.isAuthAvailable(name)) {
|
(Settings.isSaveQuitLocationEnabled.booleanValue()) && data.isAuthAvailable(name)) {
|
||||||
PlayerAuth auth = new PlayerAuth(event.getPlayer().getName().toLowerCase(), (int)player.getLocation().getX(), (int)player.getLocation().getY(), (int)player.getLocation().getZ());
|
final PlayerAuth auth = new PlayerAuth(event.getPlayer().getName().toLowerCase(), (int)player.getLocation().getX(), (int)player.getLocation().getY(), (int)player.getLocation().getZ());
|
||||||
this.data.updateQuitLoc(auth);
|
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
data.updateQuitLoc(auth);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LimboCache.getInstance().hasLimboPlayer(name))
|
if (LimboCache.getInstance().hasLimboPlayer(name))
|
||||||
@ -936,7 +888,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
player.teleport(tpEvent.getTo());
|
player.teleport(tpEvent.getTo());
|
||||||
}
|
}
|
||||||
} catch (NullPointerException npe) {
|
} catch (NullPointerException npe) {
|
||||||
|
|
||||||
}
|
}
|
||||||
this.utils.addNormal(player, limbo.getGroup());
|
this.utils.addNormal(player, limbo.getGroup());
|
||||||
player.setOp(limbo.getOperator());
|
player.setOp(limbo.getOperator());
|
||||||
@ -952,6 +903,7 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
PlayersLogs.players.remove(player.getName());
|
PlayersLogs.players.remove(player.getName());
|
||||||
PlayersLogs.getInstance().save();
|
PlayersLogs.getInstance().save();
|
||||||
if (gameMode.containsKey(name)) gameMode.remove(name);
|
if (gameMode.containsKey(name)) gameMode.remove(name);
|
||||||
|
player.getVehicle().eject();
|
||||||
player.saveData();
|
player.saveData();
|
||||||
} catch (NullPointerException ex) {}
|
} catch (NullPointerException ex) {}
|
||||||
}
|
}
|
||||||
@ -982,7 +934,7 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR)
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
public void onPlayerInteract(PlayerInteractEvent event) {
|
public void onPlayerInteract(PlayerInteractEvent event) {
|
||||||
if (event.isCancelled() || event.getPlayer() == null) return;
|
if (event.isCancelled() || event.getPlayer() == null) return;
|
||||||
if (event.getClickedBlock() == null) return;
|
if (event.getClickedBlock() == null) return;
|
||||||
@ -1010,10 +962,7 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
event.setUseInteractedBlock(org.bukkit.event.Event.Result.DENY);
|
event.setUseInteractedBlock(org.bukkit.event.Event.Result.DENY);
|
||||||
}
|
}
|
||||||
} catch (NullPointerException npe) {
|
} catch (NullPointerException npe) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1063,8 +1012,6 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//System.out.println("player try to drop item");
|
|
||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1092,7 +1039,7 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR)
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
public void onSignChange(SignChangeEvent event) {
|
public void onSignChange(SignChangeEvent event) {
|
||||||
if (event.isCancelled() || event.getPlayer() == null || event == null) {
|
if (event.isCancelled() || event.getPlayer() == null || event == null) {
|
||||||
return;
|
return;
|
||||||
@ -1114,8 +1061,5 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -17,15 +17,12 @@ import uk.org.whoami.authme.settings.SpoutCfg;
|
|||||||
public class AuthMeSpoutListener implements Listener {
|
public class AuthMeSpoutListener implements Listener {
|
||||||
private DataSource data;
|
private DataSource data;
|
||||||
|
|
||||||
|
|
||||||
public AuthMeSpoutListener(DataSource data) {
|
public AuthMeSpoutListener(DataSource data) {
|
||||||
|
|
||||||
this.data = data;
|
this.data = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onSpoutCraftEnable(final SpoutCraftEnableEvent event)
|
public void onSpoutCraftEnable(final SpoutCraftEnableEvent event) {
|
||||||
{
|
|
||||||
if(SpoutCfg.getInstance().getBoolean("LoginScreen.enabled")) {
|
if(SpoutCfg.getInstance().getBoolean("LoginScreen.enabled")) {
|
||||||
if (data.isAuthAvailable(event.getPlayer().getName().toLowerCase()) && !PlayerCache.getInstance().isAuthenticated(event.getPlayer().getName().toLowerCase()) ) {
|
if (data.isAuthAvailable(event.getPlayer().getName().toLowerCase()) && !PlayerCache.getInstance().isAuthenticated(event.getPlayer().getName().toLowerCase()) ) {
|
||||||
event.getPlayer().getMainScreen().attachPopupScreen(new LoginScreen(event.getPlayer()));
|
event.getPlayer().getMainScreen().attachPopupScreen(new LoginScreen(event.getPlayer()));
|
||||||
|
@ -16,6 +16,7 @@ import org.bukkit.entity.Player;
|
|||||||
* @author stefano
|
* @author stefano
|
||||||
*/
|
*/
|
||||||
public abstract class CombatTagComunicator {
|
public abstract class CombatTagComunicator {
|
||||||
|
|
||||||
static CombatTagApi combatApi;
|
static CombatTagApi combatApi;
|
||||||
|
|
||||||
public CombatTagComunicator() {
|
public CombatTagComunicator() {
|
||||||
@ -38,7 +39,6 @@ public abstract class CombatTagComunicator {
|
|||||||
* @return true if player is in combat
|
* @return true if player is in combat
|
||||||
*/
|
*/
|
||||||
public abstract boolean isInCombat(Player player);
|
public abstract boolean isInCombat(Player player);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the time before the tag is over
|
* Returns the time before the tag is over
|
||||||
* -1 if the tag has expired
|
* -1 if the tag has expired
|
||||||
@ -48,7 +48,6 @@ public abstract class CombatTagComunicator {
|
|||||||
*/
|
*/
|
||||||
public abstract long getRemainingTagTime(String player);
|
public abstract long getRemainingTagTime(String player);
|
||||||
|
|
||||||
//(Implemented in 3.8)
|
|
||||||
/**
|
/**
|
||||||
* Returns if the entity is an NPC
|
* Returns if the entity is an NPC
|
||||||
* @param player
|
* @param player
|
||||||
@ -69,4 +68,5 @@ public abstract class CombatTagComunicator {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -37,13 +37,10 @@ public class PasswordSecurity {
|
|||||||
|
|
||||||
private static String getMD5(String message) throws NoSuchAlgorithmException {
|
private static String getMD5(String message) throws NoSuchAlgorithmException {
|
||||||
MessageDigest md5 = MessageDigest.getInstance("MD5");
|
MessageDigest md5 = MessageDigest.getInstance("MD5");
|
||||||
|
|
||||||
md5.reset();
|
md5.reset();
|
||||||
md5.update(message.getBytes());
|
md5.update(message.getBytes());
|
||||||
byte[] digest = md5.digest();
|
byte[] digest = md5.digest();
|
||||||
|
return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
|
||||||
return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,
|
|
||||||
digest));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getSHA1(String message) throws NoSuchAlgorithmException {
|
private static String getSHA1(String message) throws NoSuchAlgorithmException {
|
||||||
@ -51,20 +48,15 @@ public class PasswordSecurity {
|
|||||||
sha1.reset();
|
sha1.reset();
|
||||||
sha1.update(message.getBytes());
|
sha1.update(message.getBytes());
|
||||||
byte[] digest = sha1.digest();
|
byte[] digest = sha1.digest();
|
||||||
|
return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
|
||||||
return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,
|
|
||||||
digest));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getSHA256(String message) throws NoSuchAlgorithmException {
|
private static String getSHA256(String message) throws NoSuchAlgorithmException {
|
||||||
MessageDigest sha256 = MessageDigest.getInstance("SHA-256");
|
MessageDigest sha256 = MessageDigest.getInstance("SHA-256");
|
||||||
|
|
||||||
sha256.reset();
|
sha256.reset();
|
||||||
sha256.update(message.getBytes());
|
sha256.update(message.getBytes());
|
||||||
byte[] digest = sha256.digest();
|
byte[] digest = sha256.digest();
|
||||||
|
return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,digest));
|
||||||
return String.format("%0" + (digest.length << 1) + "x", new BigInteger(1,
|
|
||||||
digest));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getWhirlpool(String message) {
|
public static String getWhirlpool(String message) {
|
||||||
@ -80,10 +72,6 @@ public class PasswordSecurity {
|
|||||||
return "$SHA$" + salt + "$" + getSHA256(getSHA256(message) + salt);
|
return "$SHA$" + salt + "$" + getSHA256(getSHA256(message) + salt);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// VBULLETIN 3.X 4.X METHOD
|
|
||||||
//
|
|
||||||
|
|
||||||
private static String getSaltedMd5(String message, String salt) throws NoSuchAlgorithmException {
|
private static String getSaltedMd5(String message, String salt) throws NoSuchAlgorithmException {
|
||||||
return "$MD5vb$" + salt + "$" + getMD5(getMD5(message) + salt);
|
return "$MD5vb$" + salt + "$" + getMD5(getMD5(message) + salt);
|
||||||
}
|
}
|
||||||
@ -99,15 +87,12 @@ public class PasswordSecurity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static String getSaltedIPB3(String message, String salt) throws NoSuchAlgorithmException {
|
private static String getSaltedIPB3(String message, String salt) throws NoSuchAlgorithmException {
|
||||||
|
|
||||||
return getMD5(getMD5(salt) + getMD5(message));
|
return getMD5(getMD5(salt) + getMD5(message));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String createSalt(int length) throws NoSuchAlgorithmException {
|
private static String createSalt(int length) throws NoSuchAlgorithmException {
|
||||||
byte[] msg = new byte[40];
|
byte[] msg = new byte[40];
|
||||||
rnd.nextBytes(msg);
|
rnd.nextBytes(msg);
|
||||||
|
|
||||||
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
|
MessageDigest sha1 = MessageDigest.getInstance("SHA1");
|
||||||
sha1.reset();
|
sha1.reset();
|
||||||
byte[] digest = sha1.digest(msg);
|
byte[] digest = sha1.digest(msg);
|
||||||
@ -203,7 +188,6 @@ public class PasswordSecurity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean comparePasswordWithHash(String password, String hash, String playername) throws NoSuchAlgorithmException {
|
public static boolean comparePasswordWithHash(String password, String hash, String playername) throws NoSuchAlgorithmException {
|
||||||
//System.out.println("[Authme Debug] debug hashString"+hash);
|
|
||||||
if(hash.contains("$H$")) {
|
if(hash.contains("$H$")) {
|
||||||
PhpBB checkHash = new PhpBB();
|
PhpBB checkHash = new PhpBB();
|
||||||
return checkHash.phpbb_check_hash(password, hash);
|
return checkHash.phpbb_check_hash(password, hash);
|
||||||
@ -241,32 +225,23 @@ public class PasswordSecurity {
|
|||||||
if(hash.length() < 32 ) {
|
if(hash.length() < 32 ) {
|
||||||
return hash.equals(password);
|
return hash.equals(password);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hash.length() == 32) {
|
if (hash.length() == 32) {
|
||||||
return hash.equals(getMD5(password));
|
return hash.equals(getMD5(password));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hash.length() == 40) {
|
if (hash.length() == 40) {
|
||||||
return hash.equals(getSHA1(password));
|
return hash.equals(getSHA1(password));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hash.length() == 140) {
|
if (hash.length() == 140) {
|
||||||
int saltPos = (password.length() >= hash.length() ? hash.length() - 1 : password.length());
|
int saltPos = (password.length() >= hash.length() ? hash.length() - 1 : password.length());
|
||||||
String salt = hash.substring(saltPos, saltPos + 12);
|
String salt = hash.substring(saltPos, saltPos + 12);
|
||||||
return hash.equals(getXAuth(password, salt));
|
return hash.equals(getXAuth(password, salt));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hash.contains("$")) {
|
if (hash.contains("$")) {
|
||||||
//System.out.println("[Authme Debug] debug hashString"+hash);
|
|
||||||
String[] line = hash.split("\\$");
|
String[] line = hash.split("\\$");
|
||||||
if (line.length > 3 && line[1].equals("SHA")) {
|
if (line.length > 3 && line[1].equals("SHA")) {
|
||||||
return hash.equals(getSaltedHash(password, line[2]));
|
return hash.equals(getSaltedHash(password, line[2]));
|
||||||
} else {
|
} else {
|
||||||
if(line[1].equals("MD5vb")) {
|
if(line[1].equals("MD5vb")) {
|
||||||
//System.out.println("[Authme Debug] password hashed from Authme"+getSaltedMd5(password, line[2]));
|
|
||||||
//System.out.println("[Authme Debug] salt from Authme"+line[2]);
|
|
||||||
//System.out.println("[Authme Debug] equals? Authme: "+hash);
|
|
||||||
//hash = "$MD5vb$" + salt + "$" + hash;
|
|
||||||
return hash.equals(getSaltedMd5(password, line[2]));
|
return hash.equals(getSaltedMd5(password, line[2]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -280,7 +255,6 @@ public class PasswordSecurity {
|
|||||||
return phpBBhash;
|
return phpBBhash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static String getPlainText(String password) {
|
private static String getPlainText(String password) {
|
||||||
return password;
|
return password;
|
||||||
}
|
}
|
||||||
@ -292,9 +266,7 @@ public class PasswordSecurity {
|
|||||||
SecretKeySpec key = new SecretKeySpec((keyString).getBytes("UTF-8"), algo);
|
SecretKeySpec key = new SecretKeySpec((keyString).getBytes("UTF-8"), algo);
|
||||||
Mac mac = Mac.getInstance(algo);
|
Mac mac = Mac.getInstance(algo);
|
||||||
mac.init(key);
|
mac.init(key);
|
||||||
|
|
||||||
byte[] bytes = mac.doFinal(msg.getBytes("ASCII"));
|
byte[] bytes = mac.doFinal(msg.getBytes("ASCII"));
|
||||||
|
|
||||||
StringBuffer hash = new StringBuffer();
|
StringBuffer hash = new StringBuffer();
|
||||||
for (int i = 0; i < bytes.length; i++) {
|
for (int i = 0; i < bytes.length; i++) {
|
||||||
String hex = Integer.toHexString(0xFF & bytes[i]);
|
String hex = Integer.toHexString(0xFF & bytes[i]);
|
||||||
@ -315,4 +287,5 @@ public class PasswordSecurity {
|
|||||||
|
|
||||||
MD5, SHA1, SHA256, WHIRLPOOL, XAUTH, MD5VB, PHPBB, PLAINTEXT, MYBB, IPB3, PHPFUSION, SMF, XFSHA1, XFSHA256, SALTED2MD5, JOOMLA
|
MD5, SHA1, SHA256, WHIRLPOOL, XAUTH, MD5VB, PHPBB, PLAINTEXT, MYBB, IPB3, PHPFUSION, SMF, XFSHA1, XFSHA256, SALTED2MD5, JOOMLA
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -17,33 +17,25 @@ public class PhpBB {
|
|||||||
private String itoa64 =
|
private String itoa64 =
|
||||||
"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
||||||
|
|
||||||
|
|
||||||
public String phpbb_hash(String password) {
|
public String phpbb_hash(String password) {
|
||||||
String random_state = unique_id();
|
String random_state = unique_id();
|
||||||
String random = "";
|
String random = "";
|
||||||
int count = 6;
|
int count = 6;
|
||||||
|
|
||||||
if (random.length() < count) {
|
if (random.length() < count) {
|
||||||
random = "";
|
random = "";
|
||||||
|
|
||||||
for (int i = 0; i < count; i += 16) {
|
for (int i = 0; i < count; i += 16) {
|
||||||
random_state = md5(unique_id() + random_state);
|
random_state = md5(unique_id() + random_state);
|
||||||
random += pack(md5(random_state));
|
random += pack(md5(random_state));
|
||||||
}
|
}
|
||||||
random = random.substring(0, count);
|
random = random.substring(0, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
String hash = _hash_crypt_private(
|
String hash = _hash_crypt_private(
|
||||||
password, _hash_gensalt_private(random, itoa64));
|
password, _hash_gensalt_private(random, itoa64));
|
||||||
if (hash.length() == 34)
|
if (hash.length() == 34)
|
||||||
return hash;
|
return hash;
|
||||||
|
|
||||||
return md5(password);
|
return md5(password);
|
||||||
}
|
}
|
||||||
|
|
||||||
// global $config;
|
|
||||||
// private boolean dss_seeded = false;
|
|
||||||
|
|
||||||
private String unique_id() {
|
private String unique_id() {
|
||||||
return unique_id("c");
|
return unique_id("c");
|
||||||
}
|
}
|
||||||
@ -53,7 +45,6 @@ public class PhpBB {
|
|||||||
return "1234567890abcdef";
|
return "1234567890abcdef";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private String _hash_gensalt_private(String input, String itoa64) {
|
private String _hash_gensalt_private(String input, String itoa64) {
|
||||||
return _hash_gensalt_private(input, itoa64, 6);
|
return _hash_gensalt_private(input, itoa64, 6);
|
||||||
}
|
}
|
||||||
@ -64,13 +55,11 @@ private String _hash_gensalt_private(
|
|||||||
if (iteration_count_log2 < 4 || iteration_count_log2 > 31) {
|
if (iteration_count_log2 < 4 || iteration_count_log2 > 31) {
|
||||||
iteration_count_log2 = 8;
|
iteration_count_log2 = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
String output = "$H$";
|
String output = "$H$";
|
||||||
output += itoa64.charAt(
|
output += itoa64.charAt(
|
||||||
Math.min(iteration_count_log2 +
|
Math.min(iteration_count_log2 +
|
||||||
((PHP_VERSION >= 5) ? 5 : 3), 30));
|
((PHP_VERSION >= 5) ? 5 : 3), 30));
|
||||||
output += _hash_encode64(input, 6);
|
output += _hash_encode64(input, 6);
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -80,58 +69,41 @@ private String _hash_gensalt_private(
|
|||||||
private String _hash_encode64(String input, int count) {
|
private String _hash_encode64(String input, int count) {
|
||||||
String output = "";
|
String output = "";
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
int value = input.charAt(i++);
|
int value = input.charAt(i++);
|
||||||
output += itoa64.charAt(value & 0x3f);
|
output += itoa64.charAt(value & 0x3f);
|
||||||
|
|
||||||
if (i < count)
|
if (i < count)
|
||||||
value |= input.charAt(i) << 8;
|
value |= input.charAt(i) << 8;
|
||||||
|
|
||||||
output += itoa64.charAt((value >> 6) & 0x3f);
|
output += itoa64.charAt((value >> 6) & 0x3f);
|
||||||
|
|
||||||
if (i++ >= count)
|
if (i++ >= count)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (i < count)
|
if (i < count)
|
||||||
value |= input.charAt(i) << 16;
|
value |= input.charAt(i) << 16;
|
||||||
|
|
||||||
output += itoa64.charAt((value >> 12) & 0x3f);
|
output += itoa64.charAt((value >> 12) & 0x3f);
|
||||||
|
|
||||||
if (i++ >= count)
|
if (i++ >= count)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
output += itoa64.charAt((value >> 18) & 0x3f);
|
output += itoa64.charAt((value >> 18) & 0x3f);
|
||||||
} while (i < count);
|
} while (i < count);
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
String _hash_crypt_private(String password, String setting) {
|
String _hash_crypt_private(String password, String setting) {
|
||||||
String output = "*";
|
String output = "*";
|
||||||
|
|
||||||
// Check for correct hash
|
|
||||||
if (!setting.substring(0, 3).equals("$H$"))
|
if (!setting.substring(0, 3).equals("$H$"))
|
||||||
return output;
|
return output;
|
||||||
|
|
||||||
int count_log2 = itoa64.indexOf(setting.charAt(3));
|
int count_log2 = itoa64.indexOf(setting.charAt(3));
|
||||||
if (count_log2 < 7 || count_log2 > 30)
|
if (count_log2 < 7 || count_log2 > 30)
|
||||||
return output;
|
return output;
|
||||||
|
|
||||||
int count = 1 << count_log2;
|
int count = 1 << count_log2;
|
||||||
String salt = setting.substring(4, 12);
|
String salt = setting.substring(4, 12);
|
||||||
if (salt.length() != 8)
|
if (salt.length() != 8)
|
||||||
return output;
|
return output;
|
||||||
|
|
||||||
String m1 = md5(salt + password);
|
String m1 = md5(salt + password);
|
||||||
String hash = pack(m1);
|
String hash = pack(m1);
|
||||||
do {
|
do {
|
||||||
hash = pack(md5(hash + password));
|
hash = pack(md5(hash + password));
|
||||||
} while (--count > 0);
|
} while (--count > 0);
|
||||||
|
|
||||||
output = setting.substring(0, 12);
|
output = setting.substring(0, 12);
|
||||||
output += _hash_encode64(hash, 16);
|
output += _hash_encode64(hash, 16);
|
||||||
|
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,11 +130,9 @@ private String _hash_gensalt_private(
|
|||||||
static int hexToInt(char ch) {
|
static int hexToInt(char ch) {
|
||||||
if(ch >= '0' && ch <= '9')
|
if(ch >= '0' && ch <= '9')
|
||||||
return ch - '0';
|
return ch - '0';
|
||||||
|
|
||||||
ch = Character.toUpperCase(ch);
|
ch = Character.toUpperCase(ch);
|
||||||
if(ch >= 'A' && ch <= 'F')
|
if(ch >= 'A' && ch <= 'F')
|
||||||
return ch - 'A' + 0xA;
|
return ch - 'A' + 0xA;
|
||||||
|
|
||||||
throw new IllegalArgumentException("Not a hex character: " + ch);
|
throw new IllegalArgumentException("Not a hex character: " + ch);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,4 +158,3 @@ private String _hash_gensalt_private(
|
|||||||
return buf.toString();
|
return buf.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,16 +2,20 @@ package uk.org.whoami.authme.security;
|
|||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class RandomString
|
public class RandomString
|
||||||
{
|
{
|
||||||
|
|
||||||
private static final char[] symbols = new char[36];
|
private static final char[] chars = new char[36];
|
||||||
|
|
||||||
static {
|
static {
|
||||||
for (int idx = 0; idx < 10; ++idx)
|
for (int idx = 0; idx < 10; ++idx)
|
||||||
symbols[idx] = (char) ('0' + idx);
|
chars[idx] = (char) ('0' + idx);
|
||||||
for (int idx = 10; idx < 36; ++idx)
|
for (int idx = 10; idx < 36; ++idx)
|
||||||
symbols[idx] = (char) ('a' + idx - 10);
|
chars[idx] = (char) ('a' + idx - 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final Random random = new Random();
|
private final Random random = new Random();
|
||||||
@ -28,7 +32,7 @@ public class RandomString
|
|||||||
public String nextString()
|
public String nextString()
|
||||||
{
|
{
|
||||||
for (int idx = 0; idx < buf.length; ++idx)
|
for (int idx = 0; idx < buf.length; ++idx)
|
||||||
buf[idx] = symbols[random.nextInt(symbols.length)];
|
buf[idx] = chars[random.nextInt(chars.length)];
|
||||||
return new String(buf);
|
return new String(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,26 +131,6 @@ class Whirlpool {
|
|||||||
C[t][x] = (C[t - 1][x] >>> 8) | ((C[t - 1][x] << 56));
|
C[t][x] = (C[t - 1][x] >>> 8) | ((C[t - 1][x] << 56));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
for (int t = 0; t < 8; t++) {
|
|
||||||
System.out.println("static const u64 C" + t + "[256] = {");
|
|
||||||
for (int i = 0; i < 64; i++) {
|
|
||||||
System.out.print(" ");
|
|
||||||
for (int j = 0; j < 4; j++) {
|
|
||||||
String v = Long.toHexString(C[t][4*i + j]);
|
|
||||||
while (v.length() < 16) {
|
|
||||||
v = "0" + v;
|
|
||||||
}
|
|
||||||
System.out.print(" LL(0x" + v + "),");
|
|
||||||
}
|
|
||||||
System.out.println();
|
|
||||||
}
|
|
||||||
System.out.println("};");
|
|
||||||
System.out.println();
|
|
||||||
}
|
|
||||||
System.out.println();
|
|
||||||
//*/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* build the round constants:
|
* build the round constants:
|
||||||
*/
|
*/
|
||||||
@ -167,18 +147,6 @@ class Whirlpool {
|
|||||||
(C[6][i + 6] & 0x000000000000ff00L) ^
|
(C[6][i + 6] & 0x000000000000ff00L) ^
|
||||||
(C[7][i + 7] & 0x00000000000000ffL);
|
(C[7][i + 7] & 0x00000000000000ffL);
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
System.out.println("static const u64 rc[R + 1] = {");
|
|
||||||
for (int r = 0; r <= R; r++) {
|
|
||||||
String v = Long.toHexString(rc[r]);
|
|
||||||
while (v.length() < 16) {
|
|
||||||
v = "0" + v;
|
|
||||||
}
|
|
||||||
System.out.println(" LL(0x" + v + "),");
|
|
||||||
}
|
|
||||||
System.out.println("};");
|
|
||||||
System.out.println();
|
|
||||||
//*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -205,10 +173,10 @@ class Whirlpool {
|
|||||||
* The hashing state.
|
* The hashing state.
|
||||||
*/
|
*/
|
||||||
protected long[] hash = new long[8];
|
protected long[] hash = new long[8];
|
||||||
protected long[] K = new long[8]; // the round key
|
protected long[] K = new long[8];
|
||||||
protected long[] L = new long[8];
|
protected long[] L = new long[8];
|
||||||
protected long[] block = new long[8]; // mu(buffer)
|
protected long[] block = new long[8];
|
||||||
protected long[] state = new long[8]; // the cipher state
|
protected long[] state = new long[8];
|
||||||
|
|
||||||
public Whirlpool() {
|
public Whirlpool() {
|
||||||
}
|
}
|
||||||
@ -281,8 +249,8 @@ class Whirlpool {
|
|||||||
public void NESSIEinit() {
|
public void NESSIEinit() {
|
||||||
Arrays.fill(bitLength, (byte)0);
|
Arrays.fill(bitLength, (byte)0);
|
||||||
bufferBits = bufferPos = 0;
|
bufferBits = bufferPos = 0;
|
||||||
buffer[0] = 0; // it's only necessary to cleanup buffer[bufferPos].
|
buffer[0] = 0;
|
||||||
Arrays.fill(hash, 0L); // initial value
|
Arrays.fill(hash, 0L);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -64,7 +64,6 @@ public class CustomConfiguration extends YamlConfiguration{
|
|||||||
fos = new FileOutputStream(file);
|
fos = new FileOutputStream(file);
|
||||||
byte[] buf = new byte[1024];
|
byte[] buf = new byte[1024];
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
while ((i = fis.read(buf)) != -1) {
|
while ((i = fis.read(buf)) != -1) {
|
||||||
fos.write(buf, 0, i);
|
fos.write(buf, 0, i);
|
||||||
}
|
}
|
||||||
|
@ -22,14 +22,11 @@ public class Messages extends CustomConfiguration {
|
|||||||
|
|
||||||
private static Messages singleton = null;
|
private static Messages singleton = null;
|
||||||
|
|
||||||
|
|
||||||
public Messages() {
|
public Messages() {
|
||||||
|
|
||||||
super(new File(Settings.MESSAGE_FILE+"_"+Settings.messagesLanguage+".yml"));
|
super(new File(Settings.MESSAGE_FILE+"_"+Settings.messagesLanguage+".yml"));
|
||||||
loadDefaults();
|
loadDefaults();
|
||||||
loadFile();
|
loadFile();
|
||||||
singleton = this;
|
singleton = this;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadDefaults() {
|
private void loadDefaults() {
|
||||||
@ -80,7 +77,6 @@ public class Messages extends CustomConfiguration {
|
|||||||
private void loadFile() {
|
private void loadFile() {
|
||||||
this.load();
|
this.load();
|
||||||
this.save();
|
this.save();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String _(String msg) {
|
public String _(String msg) {
|
||||||
@ -91,7 +87,6 @@ public class Messages extends CustomConfiguration {
|
|||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Messages getInstance() {
|
public static Messages getInstance() {
|
||||||
if (singleton == null) {
|
if (singleton == null) {
|
||||||
singleton = new Messages();
|
singleton = new Messages();
|
||||||
|
@ -3,6 +3,10 @@ package uk.org.whoami.authme.settings;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class PlayersLogs extends CustomConfiguration {
|
public class PlayersLogs extends CustomConfiguration {
|
||||||
|
|
||||||
private static PlayersLogs pllog = null;
|
private static PlayersLogs pllog = null;
|
||||||
@ -15,7 +19,6 @@ public class PlayersLogs extends CustomConfiguration {
|
|||||||
load();
|
load();
|
||||||
save();
|
save();
|
||||||
players = (List<String>) this.getList("players");
|
players = (List<String>) this.getList("players");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PlayersLogs getInstance() {
|
public static PlayersLogs getInstance() {
|
||||||
@ -25,6 +28,4 @@ public class PlayersLogs extends CustomConfiguration {
|
|||||||
return pllog;
|
return pllog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -45,13 +45,12 @@ public final class Settings extends YamlConfiguration {
|
|||||||
private static List<String> getRestrictedIp;
|
private static List<String> getRestrictedIp;
|
||||||
public static List<String> getMySQLOtherUsernameColumn = null;
|
public static List<String> getMySQLOtherUsernameColumn = null;
|
||||||
public static List<String> getForcedWorlds = null;
|
public static List<String> getForcedWorlds = null;
|
||||||
|
|
||||||
public final Plugin plugin;
|
public final Plugin plugin;
|
||||||
private final File file;
|
private final File file;
|
||||||
|
|
||||||
public static DataSourceType getDataSource;
|
public static DataSourceType getDataSource;
|
||||||
public static HashAlgorithm getPasswordHash;
|
public static HashAlgorithm getPasswordHash;
|
||||||
public static HashAlgorithm rakamakHash;
|
public static HashAlgorithm rakamakHash;
|
||||||
|
public static Boolean useLogging = false;
|
||||||
|
|
||||||
public static Boolean isPermissionCheckEnabled, isRegistrationEnabled, isForcedRegistrationEnabled,
|
public static Boolean isPermissionCheckEnabled, isRegistrationEnabled, isForcedRegistrationEnabled,
|
||||||
isTeleportToSpawnEnabled, isSessionsEnabled, isChatAllowed, isAllowRestrictedIp,
|
isTeleportToSpawnEnabled, isSessionsEnabled, isChatAllowed, isAllowRestrictedIp,
|
||||||
@ -62,7 +61,6 @@ public final class Settings extends YamlConfiguration {
|
|||||||
isBackupOnStop, enablePasspartu, isStopEnabled, reloadSupport, rakamakUseIp, noConsoleSpam, removePassword, displayOtherAccounts,
|
isBackupOnStop, enablePasspartu, isStopEnabled, reloadSupport, rakamakUseIp, noConsoleSpam, removePassword, displayOtherAccounts,
|
||||||
useCaptcha, emailRegistration, multiverse, notifications, chestshop, bungee, banUnsafeIp, doubleEmailCheck, sessionExpireOnIpChange;
|
useCaptcha, emailRegistration, multiverse, notifications, chestshop, bungee, banUnsafeIp, doubleEmailCheck, sessionExpireOnIpChange;
|
||||||
|
|
||||||
|
|
||||||
public static String getNickRegex, getUnloggedinGroup, getMySQLHost, getMySQLPort,
|
public static String getNickRegex, getUnloggedinGroup, getMySQLHost, getMySQLPort,
|
||||||
getMySQLUsername, getMySQLPassword, getMySQLDatabase, getMySQLTablename,
|
getMySQLUsername, getMySQLPassword, getMySQLDatabase, getMySQLTablename,
|
||||||
getMySQLColumnName, getMySQLColumnPassword, getMySQLColumnIp, getMySQLColumnLastLogin,
|
getMySQLColumnName, getMySQLColumnPassword, getMySQLColumnIp, getMySQLColumnLastLogin,
|
||||||
@ -71,7 +69,6 @@ public final class Settings extends YamlConfiguration {
|
|||||||
rakamakUsers, rakamakUsersIp, getmailAccount, getmailPassword, getmailSMTP, getMySQLColumnId, getmailSenderName,
|
rakamakUsers, rakamakUsersIp, getmailAccount, getmailPassword, getmailSMTP, getMySQLColumnId, getmailSenderName,
|
||||||
getPredefinedSalt, getMailSubject, getMailText;
|
getPredefinedSalt, getMailSubject, getMailText;
|
||||||
|
|
||||||
|
|
||||||
public static int getWarnMessageInterval, getSessionTimeout, getRegistrationTimeout, getMaxNickLength,
|
public static int getWarnMessageInterval, getSessionTimeout, getRegistrationTimeout, getMaxNickLength,
|
||||||
getMinNickLength, getPasswordMinLen, getMovementRadius, getmaxRegPerIp, getNonActivatedGroup,
|
getMinNickLength, getPasswordMinLen, getMovementRadius, getmaxRegPerIp, getNonActivatedGroup,
|
||||||
passwordMaxLength, getRecoveryPassLength, getMailPort, maxLoginTry, captchaLength, saltLength, getmaxRegPerEmail;
|
passwordMaxLength, getRecoveryPassLength, getMailPort, maxLoginTry, captchaLength, saltLength, getmaxRegPerEmail;
|
||||||
@ -79,15 +76,8 @@ public final class Settings extends YamlConfiguration {
|
|||||||
protected static YamlConfiguration configFile;
|
protected static YamlConfiguration configFile;
|
||||||
|
|
||||||
public Settings(Plugin plugin) {
|
public Settings(Plugin plugin) {
|
||||||
//super(new File(Settings.PLUGIN_FOLDER + "/config.yml"), this.plugin);
|
|
||||||
this.file = new File(plugin.getDataFolder(),"config.yml");
|
this.file = new File(plugin.getDataFolder(),"config.yml");
|
||||||
|
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//options().indent(4);
|
|
||||||
// Override to always indent 4 spaces
|
|
||||||
if(exists()) {
|
if(exists()) {
|
||||||
load();
|
load();
|
||||||
}
|
}
|
||||||
@ -95,19 +85,12 @@ public final class Settings extends YamlConfiguration {
|
|||||||
loadDefaults(file.getName());
|
loadDefaults(file.getName());
|
||||||
load();
|
load();
|
||||||
}
|
}
|
||||||
|
|
||||||
configFile = (YamlConfiguration) plugin.getConfig();
|
configFile = (YamlConfiguration) plugin.getConfig();
|
||||||
|
|
||||||
//saveDefaults();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public void loadConfigOptions() {
|
public void loadConfigOptions() {
|
||||||
|
|
||||||
plugin.getLogger().info("Loading Configuration File...");
|
plugin.getLogger().info("Loading Configuration File...");
|
||||||
|
|
||||||
mergeConfig();
|
mergeConfig();
|
||||||
|
|
||||||
messagesLanguage = checkLang(configFile.getString("settings.messagesLanguage","en"));
|
messagesLanguage = checkLang(configFile.getString("settings.messagesLanguage","en"));
|
||||||
@ -220,16 +203,15 @@ public void loadConfigOptions() {
|
|||||||
banUnsafeIp = configFile.getBoolean("settings.restrictions.banUnsafedIP", false);
|
banUnsafeIp = configFile.getBoolean("settings.restrictions.banUnsafedIP", false);
|
||||||
doubleEmailCheck = configFile.getBoolean("settings.registration.doubleEmailCheck", false);
|
doubleEmailCheck = configFile.getBoolean("settings.registration.doubleEmailCheck", false);
|
||||||
sessionExpireOnIpChange = configFile.getBoolean("settings.sessions.sessionExpireOnIpChange", false);
|
sessionExpireOnIpChange = configFile.getBoolean("settings.sessions.sessionExpireOnIpChange", false);
|
||||||
|
useLogging = configFile.getBoolean("Security.console.logConsole", false);
|
||||||
|
|
||||||
saveDefaults();
|
saveDefaults();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public static void reloadConfigOptions(YamlConfiguration newConfig) {
|
public static void reloadConfigOptions(YamlConfiguration newConfig) {
|
||||||
configFile = newConfig;
|
configFile = newConfig;
|
||||||
|
|
||||||
//plugin.getLogger().info("RELoading Configuration File...");
|
|
||||||
messagesLanguage = checkLang(configFile.getString("settings.messagesLanguage","en"));
|
messagesLanguage = checkLang(configFile.getString("settings.messagesLanguage","en"));
|
||||||
isPermissionCheckEnabled = configFile.getBoolean("permission.EnablePermissionCheck", false);
|
isPermissionCheckEnabled = configFile.getBoolean("permission.EnablePermissionCheck", false);
|
||||||
isForcedRegistrationEnabled = configFile.getBoolean("settings.registration.force", true);
|
isForcedRegistrationEnabled = configFile.getBoolean("settings.registration.force", true);
|
||||||
@ -340,114 +322,84 @@ public static void reloadConfigOptions(YamlConfiguration newConfig) {
|
|||||||
banUnsafeIp = configFile.getBoolean("settings.restrictions.banUnsafedIP", false);
|
banUnsafeIp = configFile.getBoolean("settings.restrictions.banUnsafedIP", false);
|
||||||
doubleEmailCheck = configFile.getBoolean("settings.registration.doubleEmailCheck", false);
|
doubleEmailCheck = configFile.getBoolean("settings.registration.doubleEmailCheck", false);
|
||||||
sessionExpireOnIpChange = configFile.getBoolean("settings.sessions.sessionExpireOnIpChange", false);
|
sessionExpireOnIpChange = configFile.getBoolean("settings.sessions.sessionExpireOnIpChange", false);
|
||||||
|
useLogging = configFile.getBoolean("Security.console.logConsole", false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void mergeConfig() {
|
public void mergeConfig() {
|
||||||
|
|
||||||
if (contains("settings.restrictions.allowedPluginTeleportHandler"))
|
if (contains("settings.restrictions.allowedPluginTeleportHandler"))
|
||||||
set("settings.restrictions.allowedPluginTeleportHandler", null);
|
set("settings.restrictions.allowedPluginTeleportHandler", null);
|
||||||
|
|
||||||
if(!contains("DataSource.mySQLColumnEmail"))
|
if(!contains("DataSource.mySQLColumnEmail"))
|
||||||
set("DataSource.mySQLColumnEmail","email");
|
set("DataSource.mySQLColumnEmail","email");
|
||||||
|
|
||||||
if(contains("Email.GmailAccount")) {
|
if(contains("Email.GmailAccount")) {
|
||||||
set("Email.mailAccount", getString("Email.GmailAccount"));
|
set("Email.mailAccount", getString("Email.GmailAccount"));
|
||||||
set("Email.GmailAccount", null);
|
set("Email.GmailAccount", null);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(contains("Email.GmailPassword")) {
|
if(contains("Email.GmailPassword")) {
|
||||||
set("Email.mailPassword", getString("Email.GmailPassword"));
|
set("Email.mailPassword", getString("Email.GmailPassword"));
|
||||||
set("Email.GmailPassword", null);
|
set("Email.GmailPassword", null);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!contains("Email.RecoveryPasswordLength"))
|
if(!contains("Email.RecoveryPasswordLength"))
|
||||||
set("Email.RecoveryPasswordLength", 8);
|
set("Email.RecoveryPasswordLength", 8);
|
||||||
|
|
||||||
if(!contains("Email.mailPort"))
|
if(!contains("Email.mailPort"))
|
||||||
set("Email.mailPort", 465);
|
set("Email.mailPort", 465);
|
||||||
|
|
||||||
if(!contains("Email.mailSMTP"))
|
if(!contains("Email.mailSMTP"))
|
||||||
set("Email.mailSMTP", "smtp.gmail.com");
|
set("Email.mailSMTP", "smtp.gmail.com");
|
||||||
|
|
||||||
if(!contains("Email.mailAccount"))
|
if(!contains("Email.mailAccount"))
|
||||||
set("Email.mailAccount", "");
|
set("Email.mailAccount", "");
|
||||||
|
|
||||||
if(!contains("Email.mailPassword"))
|
if(!contains("Email.mailPassword"))
|
||||||
set("Email.mailPassword", "");
|
set("Email.mailPassword", "");
|
||||||
|
|
||||||
if(!contains("ExternalBoardOptions.mySQLOtherUsernameColumns"))
|
if(!contains("ExternalBoardOptions.mySQLOtherUsernameColumns"))
|
||||||
set("ExternalBoardOptions.mySQLOtherUsernameColumns", new ArrayList<String>());
|
set("ExternalBoardOptions.mySQLOtherUsernameColumns", new ArrayList<String>());
|
||||||
|
|
||||||
if(!contains("settings.restrictions.displayOtherAccounts"))
|
if(!contains("settings.restrictions.displayOtherAccounts"))
|
||||||
set("settings.restrictions.displayOtherAccounts", true);
|
set("settings.restrictions.displayOtherAccounts", true);
|
||||||
|
|
||||||
if(!contains("DataSource.mySQLColumnId"))
|
if(!contains("DataSource.mySQLColumnId"))
|
||||||
set("DataSource.mySQLColumnId", "id");
|
set("DataSource.mySQLColumnId", "id");
|
||||||
|
|
||||||
if(!contains("Email.mailSenderName"))
|
if(!contains("Email.mailSenderName"))
|
||||||
set("Email.mailSenderName", "");
|
set("Email.mailSenderName", "");
|
||||||
|
|
||||||
if(!contains("Xenoforo.predefinedSalt"))
|
if(!contains("Xenoforo.predefinedSalt"))
|
||||||
set("Xenoforo.predefinedSalt", "");
|
set("Xenoforo.predefinedSalt", "");
|
||||||
|
|
||||||
if(!contains("Security.captcha.useCaptcha"))
|
if(!contains("Security.captcha.useCaptcha"))
|
||||||
set("Security.captcha.useCaptcha", false);
|
set("Security.captcha.useCaptcha", false);
|
||||||
|
|
||||||
if(!contains("Security.captcha.maxLoginTry"))
|
if(!contains("Security.captcha.maxLoginTry"))
|
||||||
set("Security.captcha.maxLoginTry", 5);
|
set("Security.captcha.maxLoginTry", 5);
|
||||||
|
|
||||||
if(!contains("Security.captcha.captchaLength"))
|
if(!contains("Security.captcha.captchaLength"))
|
||||||
set("Security.captcha.captchaLength", 5);
|
set("Security.captcha.captchaLength", 5);
|
||||||
|
|
||||||
if(!contains("Email.mailSubject"))
|
if(!contains("Email.mailSubject"))
|
||||||
set("Email.mailSubject", "");
|
set("Email.mailSubject", "");
|
||||||
|
|
||||||
if(!contains("Email.mailText"))
|
if(!contains("Email.mailText"))
|
||||||
set("Email.mailText", "Dear <playername>, \n\n This is your new AuthMe password for the server : \n\n <servername> \n\n <generatedpass>\n\n Do not forget to change password after login! \n /changepassword <generatedpass> newPassword");
|
set("Email.mailText", "Dear <playername>, \n\n This is your new AuthMe password for the server : \n\n <servername> \n\n <generatedpass>\n\n Do not forget to change password after login! \n /changepassword <generatedpass> newPassword");
|
||||||
|
|
||||||
if(!contains("settings.registration.enableEmailRegistrationSystem"))
|
if(!contains("settings.registration.enableEmailRegistrationSystem"))
|
||||||
set("settings.registration.enableEmailRegistrationSystem", false);
|
set("settings.registration.enableEmailRegistrationSystem", false);
|
||||||
|
|
||||||
if(!contains("settings.security.doubleMD5SaltLength"))
|
if(!contains("settings.security.doubleMD5SaltLength"))
|
||||||
set("settings.security.doubleMD5SaltLength", 8);
|
set("settings.security.doubleMD5SaltLength", 8);
|
||||||
|
|
||||||
if(!contains("Email.maxRegPerEmail"))
|
if(!contains("Email.maxRegPerEmail"))
|
||||||
set("Email.maxRegPerEmail", 1);
|
set("Email.maxRegPerEmail", 1);
|
||||||
|
|
||||||
if(!contains("Hooks.multiverse")) {
|
if(!contains("Hooks.multiverse")) {
|
||||||
set("Hooks.multiverse", true);
|
set("Hooks.multiverse", true);
|
||||||
set("Hooks.chestshop", true);
|
set("Hooks.chestshop", true);
|
||||||
set("Hooks.notifications", true);
|
set("Hooks.notifications", true);
|
||||||
set("Hooks.bungeecord", false);
|
set("Hooks.bungeecord", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!contains("settings.restrictions.ForceSpawnOnTheseWorlds"))
|
if(!contains("settings.restrictions.ForceSpawnOnTheseWorlds"))
|
||||||
set("settings.restrictions.ForceSpawnOnTheseWorlds", new ArrayList<String>());
|
set("settings.restrictions.ForceSpawnOnTheseWorlds", new ArrayList<String>());
|
||||||
|
|
||||||
if(!contains("settings.restrictions.banUnsafedIP"))
|
if(!contains("settings.restrictions.banUnsafedIP"))
|
||||||
set("settings.restrictions.banUnsafedIP", false);
|
set("settings.restrictions.banUnsafedIP", false);
|
||||||
|
|
||||||
if(!contains("settings.registration.doubleEmailCheck"))
|
if(!contains("settings.registration.doubleEmailCheck"))
|
||||||
set("settings.registration.doubleEmailCheck", false);
|
set("settings.registration.doubleEmailCheck", false);
|
||||||
|
|
||||||
if(!contains("settings.sessions.sessionExpireOnIpChange"))
|
if(!contains("settings.sessions.sessionExpireOnIpChange"))
|
||||||
set("settings.sessions.sessionExpireOnIpChange", false);
|
set("settings.sessions.sessionExpireOnIpChange", false);
|
||||||
|
if(!contains("Security.console.logConsole"))
|
||||||
|
set("Security.console.logConsole", false);
|
||||||
|
|
||||||
plugin.getLogger().info("Merge new Config Options if needed..");
|
plugin.getLogger().info("Merge new Config Options if needed..");
|
||||||
plugin.saveConfig();
|
plugin.saveConfig();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private static HashAlgorithm getPasswordHash() {
|
private static HashAlgorithm getPasswordHash() {
|
||||||
String key = "settings.security.passwordHash";
|
String key = "settings.security.passwordHash";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return PasswordSecurity.HashAlgorithm.valueOf(configFile.getString(key,"SHA256").toUpperCase());
|
return PasswordSecurity.HashAlgorithm.valueOf(configFile.getString(key,"SHA256").toUpperCase());
|
||||||
} catch (IllegalArgumentException ex) {
|
} catch (IllegalArgumentException ex) {
|
||||||
@ -456,7 +408,6 @@ public void mergeConfig() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static HashAlgorithm getRakamakHash() {
|
private static HashAlgorithm getRakamakHash() {
|
||||||
String key = "Converter.Rakamak.newPasswordHash";
|
String key = "Converter.Rakamak.newPasswordHash";
|
||||||
|
|
||||||
@ -468,14 +419,8 @@ public void mergeConfig() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private static DataSourceType getDataSource() {
|
private static DataSourceType getDataSource() {
|
||||||
String key = "DataSource.backend";
|
String key = "DataSource.backend";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return DataSource.DataSourceType.valueOf(configFile.getString(key).toUpperCase());
|
return DataSource.DataSourceType.valueOf(configFile.getString(key).toUpperCase());
|
||||||
} catch (IllegalArgumentException ex) {
|
} catch (IllegalArgumentException ex) {
|
||||||
@ -492,46 +437,31 @@ public void mergeConfig() {
|
|||||||
public static Boolean getRestrictedIp(String name, String ip) {
|
public static Boolean getRestrictedIp(String name, String ip) {
|
||||||
|
|
||||||
Iterator<String> iter = getRestrictedIp.iterator();
|
Iterator<String> iter = getRestrictedIp.iterator();
|
||||||
|
|
||||||
/* setup a few boolean variables to test the parameters */
|
|
||||||
Boolean trueonce = false;
|
Boolean trueonce = false;
|
||||||
Boolean namefound = false;
|
Boolean namefound = false;
|
||||||
|
|
||||||
while (iter.hasNext()) {
|
while (iter.hasNext()) {
|
||||||
String[] args = iter.next().split(";");
|
String[] args = iter.next().split(";");
|
||||||
|
|
||||||
String testname = args[0];
|
String testname = args[0];
|
||||||
String testip = args[1];
|
String testip = args[1];
|
||||||
|
|
||||||
/** Changing this logic to be more customized
|
|
||||||
* test each case against the entire
|
|
||||||
* list not just the first one in the list.*/
|
|
||||||
|
|
||||||
/* Fist Check the name */
|
|
||||||
if(testname.equalsIgnoreCase(name) ) {
|
if(testname.equalsIgnoreCase(name) ) {
|
||||||
namefound = true;
|
namefound = true;
|
||||||
/* Check to see if the IP is the same */
|
|
||||||
if(testip.equalsIgnoreCase(ip)) {
|
if(testip.equalsIgnoreCase(ip)) {
|
||||||
trueonce = true;
|
trueonce = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// if the name is not found in the list let the user pass they are not being monitored
|
|
||||||
if ( namefound == false){
|
if ( namefound == false){
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// if the name and IP was found once in the list let the user pass they are in the config
|
|
||||||
if ( trueonce == true ){
|
if ( trueonce == true ){
|
||||||
return true;
|
return true;
|
||||||
// otherwise nip them in the bud and THEY SHALL NOT PASS!
|
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads the configuration from disk
|
* Loads the configuration from disk
|
||||||
*
|
*
|
||||||
@ -599,11 +529,9 @@ public void mergeConfig() {
|
|||||||
boolean success = save();
|
boolean success = save();
|
||||||
options().copyDefaults(false);
|
options().copyDefaults(false);
|
||||||
options().copyHeader(false);
|
options().copyHeader(false);
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clears current configuration defaults
|
* Clears current configuration defaults
|
||||||
*/
|
*/
|
||||||
@ -622,17 +550,9 @@ public void mergeConfig() {
|
|||||||
}
|
}
|
||||||
return getKeys(true).containsAll(getDefaults().getKeys(true));
|
return getKeys(true).containsAll(getDefaults().getKeys(true));
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
public static Settings getInstance() {
|
|
||||||
if (singleton == null) {
|
|
||||||
singleton = new Settings();
|
|
||||||
}
|
|
||||||
return singleton;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
public static String checkLang(String lang) {
|
public static String checkLang(String lang) {
|
||||||
for(messagesLang language: messagesLang.values()) {
|
for(messagesLang language: messagesLang.values()) {
|
||||||
//System.out.println(language.toString());
|
|
||||||
if(lang.toLowerCase().contains(language.toString())) {
|
if(lang.toLowerCase().contains(language.toString())) {
|
||||||
ConsoleLogger.info("Set Language: "+lang);
|
ConsoleLogger.info("Set Language: "+lang);
|
||||||
return lang;
|
return lang;
|
||||||
@ -645,4 +565,5 @@ public void mergeConfig() {
|
|||||||
public enum messagesLang {
|
public enum messagesLang {
|
||||||
en, de, br, cz, pl, fr, ru, hu, sk, es, zhtw, fi, zhcn
|
en, de, br, cz, pl, fr, ru, hu, sk, es, zhtw, fi, zhcn
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,10 @@ import java.util.List;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Xephi59
|
||||||
|
*/
|
||||||
public class Spawn extends CustomConfiguration {
|
public class Spawn extends CustomConfiguration {
|
||||||
|
|
||||||
private static Spawn spawn;
|
private static Spawn spawn;
|
||||||
@ -31,7 +35,6 @@ public class Spawn extends CustomConfiguration {
|
|||||||
set("spawn.pitch", "");
|
set("spawn.pitch", "");
|
||||||
save();
|
save();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Spawn getInstance() {
|
public static Spawn getInstance() {
|
||||||
@ -65,4 +68,5 @@ public class Spawn extends CustomConfiguration {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,6 @@ public class SpoutCfg extends CustomConfiguration{
|
|||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
private void loadDefaults() {
|
private void loadDefaults() {
|
||||||
this.set("Spout GUI enabled", true);
|
this.set("Spout GUI enabled", true);
|
||||||
//Login:
|
|
||||||
this.set("LoginScreen.enabled", true);
|
this.set("LoginScreen.enabled", true);
|
||||||
this.set("LoginScreen.exit button", "Quit");
|
this.set("LoginScreen.exit button", "Quit");
|
||||||
this.set("LoginScreen.exit message", "Good Bye");
|
this.set("LoginScreen.exit message", "Good Bye");
|
||||||
@ -30,12 +29,9 @@ public class SpoutCfg extends CustomConfiguration{
|
|||||||
this.set("LoginScreen.text", new ArrayList<String>() {{
|
this.set("LoginScreen.text", new ArrayList<String>() {{
|
||||||
add("Sample text");
|
add("Sample text");
|
||||||
add("Change this at spout.yml");
|
add("Change this at spout.yml");
|
||||||
add("------------------");
|
add("--- AuthMe Reloaded by ---");
|
||||||
add("AuthMe Reloaded by d4rkwarriors");
|
add("d4rkwarriors and Xephi59");
|
||||||
}});
|
}});
|
||||||
//Registration:
|
|
||||||
//this.set("RegistrationScreen.enabled",true);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SpoutCfg getInstance() {
|
public static SpoutCfg getInstance() {
|
||||||
|
@ -43,17 +43,14 @@ public class MessageTask implements Runnable {
|
|||||||
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Player player : plugin.getServer().getOnlinePlayers()) {
|
for (Player player : plugin.getServer().getOnlinePlayers()) {
|
||||||
if (player.getName().toLowerCase().equals(name)) {
|
if (player.getName().toLowerCase().equals(name)) {
|
||||||
player.sendMessage(msg);
|
player.sendMessage(msg);
|
||||||
|
|
||||||
BukkitScheduler sched = plugin.getServer().getScheduler();
|
BukkitScheduler sched = plugin.getServer().getScheduler();
|
||||||
BukkitTask late = sched.runTaskLater(plugin, this, interval * 20);
|
BukkitTask late = sched.runTaskLater(plugin, this, interval * 20);
|
||||||
if(LimboCache.getInstance().hasLimboPlayer(name)) {
|
if(LimboCache.getInstance().hasLimboPlayer(name)) {
|
||||||
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(late.getTaskId());
|
LimboCache.getInstance().getLimboPlayer(name).setMessageTaskId(late.getTaskId());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,13 +50,11 @@ public class TimeoutTask implements Runnable {
|
|||||||
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
if (PlayerCache.getInstance().isAuthenticated(name)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Player player : plugin.getServer().getOnlinePlayers()) {
|
for (Player player : plugin.getServer().getOnlinePlayers()) {
|
||||||
if (player.getName().toLowerCase().equals(name)) {
|
if (player.getName().toLowerCase().equals(name)) {
|
||||||
if (LimboCache.getInstance().hasLimboPlayer(name)) {
|
if (LimboCache.getInstance().hasLimboPlayer(name)) {
|
||||||
LimboPlayer inv = LimboCache.getInstance().getLimboPlayer(name);
|
LimboPlayer inv = LimboCache.getInstance().getLimboPlayer(name);
|
||||||
player.getServer().getScheduler().cancelTask(inv.getTimeoutTaskId());
|
player.getServer().getScheduler().cancelTask(inv.getTimeoutTaskId());
|
||||||
|
|
||||||
if(playerCache.doesCacheExist(name)) {
|
if(playerCache.doesCacheExist(name)) {
|
||||||
playerCache.removeCache(name);
|
playerCache.removeCache(name);
|
||||||
}
|
}
|
||||||
|
@ -100,6 +100,7 @@ Security:
|
|||||||
console:
|
console:
|
||||||
noConsoleSpam: false
|
noConsoleSpam: false
|
||||||
removePassword: true
|
removePassword: true
|
||||||
|
logConsole: false
|
||||||
captcha:
|
captcha:
|
||||||
useCaptcha: false
|
useCaptcha: false
|
||||||
maxLoginTry: 5
|
maxLoginTry: 5
|
||||||
|
@ -3,7 +3,7 @@ author: darkwarriros,Xephi
|
|||||||
website: http://www.multiplayer-italia.com/
|
website: http://www.multiplayer-italia.com/
|
||||||
description: AuthMe prevents people, which aren't logged in, from doing stuff like placing blocks, moving, typing commands or seeing the inventory of the current player.
|
description: AuthMe prevents people, which aren't logged in, from doing stuff like placing blocks, moving, typing commands or seeing the inventory of the current player.
|
||||||
main: uk.org.whoami.authme.AuthMe
|
main: uk.org.whoami.authme.AuthMe
|
||||||
version: 2.7.13b2
|
version: 2.7.14
|
||||||
softdepend: [Vault, ChestShop, Spout, Multiverse-Core, Notifications, Citizens, CombatTag]
|
softdepend: [Vault, ChestShop, Spout, Multiverse-Core, Notifications, Citizens, CombatTag]
|
||||||
commands:
|
commands:
|
||||||
register:
|
register:
|
||||||
@ -135,3 +135,6 @@ permissions:
|
|||||||
authme.vip:
|
authme.vip:
|
||||||
description: Allow vip slot when the server is full
|
description: Allow vip slot when the server is full
|
||||||
default: op
|
default: op
|
||||||
|
authme.admin.purgebannedplayers:
|
||||||
|
description: Purge banned players
|
||||||
|
default: op
|
Loading…
Reference in New Issue
Block a user