mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2025-02-01 20:41:28 +01:00
Add Converter command
This commit is contained in:
parent
535c96738d
commit
9001cd4ebc
@ -30,6 +30,7 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import com.earth2me.essentials.Essentials;
|
||||
import com.maxmind.geoip.LookupService;
|
||||
import com.onarandombox.MultiverseCore.MultiverseCore;
|
||||
@ -43,6 +44,7 @@ import fr.xephi.authme.cache.limbo.LimboPlayer;
|
||||
import fr.xephi.authme.commands.AdminCommand;
|
||||
import fr.xephi.authme.commands.CaptchaCommand;
|
||||
import fr.xephi.authme.commands.ChangePasswordCommand;
|
||||
import fr.xephi.authme.commands.ConverterCommand;
|
||||
import fr.xephi.authme.commands.EmailCommand;
|
||||
import fr.xephi.authme.commands.LoginCommand;
|
||||
import fr.xephi.authme.commands.LogoutCommand;
|
||||
@ -299,6 +301,7 @@ public class AuthMe extends JavaPlugin {
|
||||
this.getCommand("passpartu").setExecutor(new PasspartuCommand(this));
|
||||
this.getCommand("email").setExecutor(new EmailCommand(this, database));
|
||||
this.getCommand("captcha").setExecutor(new CaptchaCommand(this));
|
||||
this.getCommand("converter").setExecutor(new ConverterCommand(this, database));
|
||||
|
||||
if(!Settings.isForceSingleSessionEnabled) {
|
||||
ConsoleLogger.showError("ATTENTION by disabling ForceSingleSession, your server protection is set to low");
|
||||
|
@ -301,36 +301,6 @@ public class AdminCommand implements CommandExecutor {
|
||||
m._(sender, "error");
|
||||
}
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("convertflattosql")) {
|
||||
FlatToSql converter = new FlatToSql();
|
||||
try {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, converter);
|
||||
} catch (Exception e) {
|
||||
sender.sendMessage("[AuthMe] Error while converting to authme.sql");
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("flattosqlite")) {
|
||||
FlatToSqlite converter = new FlatToSqlite(sender);
|
||||
try {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, converter);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("xauthimport")) {
|
||||
Converter converter = new xAuthConverter(plugin, database, sender);
|
||||
try {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, converter);
|
||||
} catch (Exception e) {
|
||||
sender.sendMessage("Error while importing xAuth data, check your logs");
|
||||
}
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("crazyloginimport")) {
|
||||
Converter converter = new CrazyLoginConverter(plugin, database, sender);
|
||||
try {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, converter);
|
||||
} catch (Exception e) {
|
||||
sender.sendMessage("Error while importing CrazyLogin datas, check your logs");
|
||||
}
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("getemail")) {
|
||||
if (args.length != 2) {
|
||||
sender.sendMessage("Usage: /authme getemail playername");
|
||||
@ -363,14 +333,6 @@ public class AdminCommand implements CommandExecutor {
|
||||
if (PlayerCache.getInstance().getAuth(playername) != null)
|
||||
PlayerCache.getInstance().updatePlayer(getAuth);
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("convertfromrakamak")) {
|
||||
Converter converter = new RakamakConverter(plugin, database, sender);
|
||||
try {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, converter);
|
||||
} catch (Exception e) {
|
||||
sender.sendMessage("Error while importing Rakamak data, check your logs");
|
||||
}
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("setspawn")) {
|
||||
try {
|
||||
if (sender instanceof Player) {
|
||||
@ -568,14 +530,6 @@ public class AdminCommand implements CommandExecutor {
|
||||
}
|
||||
sender.sendMessage("Usage : /authme switchantibot on/off");
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("royalauth")) {
|
||||
Converter converter = new RoyalAuthConverter(plugin);
|
||||
try {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, converter);
|
||||
} catch (Exception e) {
|
||||
sender.sendMessage("Error while importing RoyalAuth data, check your logs");
|
||||
}
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("getip")) {
|
||||
if (args.length < 2) {
|
||||
sender.sendMessage("Usage : /authme getip onlinePlayerName");
|
||||
|
112
src/main/java/fr/xephi/authme/commands/ConverterCommand.java
Normal file
112
src/main/java/fr/xephi/authme/commands/ConverterCommand.java
Normal file
@ -0,0 +1,112 @@
|
||||
package fr.xephi.authme.commands;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import fr.xephi.authme.AuthMe;
|
||||
import fr.xephi.authme.converter.Converter;
|
||||
import fr.xephi.authme.converter.CrazyLoginConverter;
|
||||
import fr.xephi.authme.converter.FlatToSql;
|
||||
import fr.xephi.authme.converter.FlatToSqlite;
|
||||
import fr.xephi.authme.converter.RakamakConverter;
|
||||
import fr.xephi.authme.converter.RoyalAuthConverter;
|
||||
import fr.xephi.authme.converter.vAuthConverter;
|
||||
import fr.xephi.authme.converter.xAuthConverter;
|
||||
import fr.xephi.authme.datasource.DataSource;
|
||||
import fr.xephi.authme.settings.Messages;
|
||||
|
||||
|
||||
public class ConverterCommand implements CommandExecutor {
|
||||
|
||||
private AuthMe plugin;
|
||||
private Messages m = Messages.getInstance();
|
||||
private DataSource database;
|
||||
|
||||
public ConverterCommand(AuthMe plugin, DataSource database) {
|
||||
this.plugin = plugin;
|
||||
this.database = database;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command cmnd, String label, final String[] args) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!plugin.authmePermissible(sender, "authme.admin.converter")) {
|
||||
m._(sender, "no_perm");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage("Usage : /converter flattosql | flattosqlite | xauth | crazylogin | rakamak | royalauth | vauth");
|
||||
return true;
|
||||
}
|
||||
|
||||
ConvertType type = ConvertType.valueOf(args[0]);
|
||||
if (type == null) {
|
||||
m._(sender, "error");
|
||||
return true;
|
||||
}
|
||||
Converter converter = null;
|
||||
switch (type) {
|
||||
case ftsql:
|
||||
converter = new FlatToSql();
|
||||
break;
|
||||
case ftsqlite:
|
||||
converter = new FlatToSqlite(sender);
|
||||
break;
|
||||
case xauth:
|
||||
converter = new xAuthConverter(plugin, database, sender);
|
||||
break;
|
||||
case crazylogin:
|
||||
converter = new CrazyLoginConverter(plugin, database, sender);
|
||||
break;
|
||||
case rakamak:
|
||||
converter = new RakamakConverter(plugin, database, sender);
|
||||
break;
|
||||
case royalauth:
|
||||
converter = new RoyalAuthConverter(plugin);
|
||||
break;
|
||||
case vauth:
|
||||
converter = new vAuthConverter(plugin, database, sender);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
if (converter == null) {
|
||||
m._(sender, "error");
|
||||
return true;
|
||||
}
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, converter);
|
||||
sender.sendMessage("[AuthMe] Successfully converted from " + args[0]);
|
||||
return true;
|
||||
}
|
||||
|
||||
public enum ConvertType {
|
||||
|
||||
ftsql("flattosql"),
|
||||
ftsqlite("flattosqlite"),
|
||||
xauth("xauth"),
|
||||
crazylogin("crazylogin"),
|
||||
rakamak("rakamak"),
|
||||
royalauth("royalauth"),
|
||||
vauth("vauth");
|
||||
|
||||
String name;
|
||||
|
||||
ConvertType(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
ConvertType fromName(String name) {
|
||||
return ConvertType.valueOf(name);
|
||||
}
|
||||
}
|
||||
}
|
@ -60,18 +60,18 @@ public class FlatToSql implements Converter {
|
||||
br = new BufferedReader(new FileReader(source));
|
||||
sql = new BufferedWriter(new FileWriter(output));
|
||||
String createDB = "CREATE TABLE IF NOT EXISTS " + tableName + " ("
|
||||
+ columnID + " INTEGER AUTO_INCREMENT,"
|
||||
+ columnName + " VARCHAR(255) NOT NULL UNIQUE,"
|
||||
+ columnPassword + " VARCHAR(255) NOT NULL,"
|
||||
+ columnIp + " VARCHAR(40) NOT NULL DEFAULT '127.0.0.1',"
|
||||
+ columnLastLogin + " BIGINT DEFAULT '0',"
|
||||
+ lastlocX + " DOUBLE NOT NULL DEFAULT '0.0',"
|
||||
+ lastlocY + " DOUBLE NOT NULL DEFAULT '0.0',"
|
||||
+ lastlocZ + " DOUBLE NOT NULL DEFAULT '0.0',"
|
||||
+ lastlocWorld + " VARCHAR(255) DEFAULT 'world',"
|
||||
+ columnEmail + " VARCHAR(255) DEFAULT 'your@email.com',"
|
||||
+ columnLogged + " SMALLINT NOT NULL DEFAULT '0',"
|
||||
+ "CONSTRAINT table_const_prim PRIMARY KEY (" + columnID + "));";
|
||||
+ columnID + " INTEGER AUTO_INCREMENT,"
|
||||
+ columnName + " VARCHAR(255) NOT NULL UNIQUE,"
|
||||
+ columnPassword + " VARCHAR(255) NOT NULL,"
|
||||
+ columnIp + " VARCHAR(40) NOT NULL DEFAULT '127.0.0.1',"
|
||||
+ columnLastLogin + " BIGINT NOT NULL DEFAULT '" + System.currentTimeMillis() + "',"
|
||||
+ lastlocX + " DOUBLE NOT NULL DEFAULT '0.0',"
|
||||
+ lastlocY + " DOUBLE NOT NULL DEFAULT '0.0',"
|
||||
+ lastlocZ + " DOUBLE NOT NULL DEFAULT '0.0',"
|
||||
+ lastlocWorld + " VARCHAR(255) DEFAULT 'world',"
|
||||
+ columnEmail + " VARCHAR(255) DEFAULT 'your@email.com',"
|
||||
+ columnLogged + " SMALLINT NOT NULL DEFAULT '0',"
|
||||
+ "CONSTRAINT table_const_prim PRIMARY KEY (" + columnID + "));";
|
||||
sql.write(createDB);
|
||||
String line;
|
||||
String newline;
|
||||
|
31
src/main/java/fr/xephi/authme/converter/vAuthConverter.java
Normal file
31
src/main/java/fr/xephi/authme/converter/vAuthConverter.java
Normal file
@ -0,0 +1,31 @@
|
||||
package fr.xephi.authme.converter;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import fr.xephi.authme.AuthMe;
|
||||
import fr.xephi.authme.ConsoleLogger;
|
||||
import fr.xephi.authme.datasource.DataSource;
|
||||
|
||||
public class vAuthConverter implements Converter {
|
||||
|
||||
public AuthMe plugin;
|
||||
public DataSource database;
|
||||
public CommandSender sender;
|
||||
|
||||
public vAuthConverter(AuthMe plugin, DataSource database, CommandSender sender) {
|
||||
this.plugin = plugin;
|
||||
this.database = database;
|
||||
this.sender = sender;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
new vAuthFileReader(plugin, database, sender).convert();
|
||||
} catch (Exception e) {
|
||||
sender.sendMessage(e.getMessage());
|
||||
ConsoleLogger.showError(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
75
src/main/java/fr/xephi/authme/converter/vAuthFileReader.java
Normal file
75
src/main/java/fr/xephi/authme/converter/vAuthFileReader.java
Normal file
@ -0,0 +1,75 @@
|
||||
package fr.xephi.authme.converter;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Scanner;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import fr.xephi.authme.AuthMe;
|
||||
import fr.xephi.authme.api.API;
|
||||
import fr.xephi.authme.cache.auth.PlayerAuth;
|
||||
import fr.xephi.authme.datasource.DataSource;
|
||||
|
||||
public class vAuthFileReader {
|
||||
|
||||
public AuthMe plugin;
|
||||
public DataSource database;
|
||||
public CommandSender sender;
|
||||
|
||||
public vAuthFileReader(AuthMe plugin, DataSource database, CommandSender sender) {
|
||||
this.plugin = plugin;
|
||||
this.database = database;
|
||||
this.sender = sender;
|
||||
}
|
||||
|
||||
public void convert() throws IOException {
|
||||
final File file = new File(plugin.getDataFolder().getParent() + "/vAuth/passwords.yml");
|
||||
Scanner scanner = null;
|
||||
try {
|
||||
scanner = new Scanner(file);
|
||||
while(scanner.hasNextLine()) {
|
||||
String line = scanner.nextLine();
|
||||
String name = line.split(": ")[0];
|
||||
String password = line.split(": ")[1];
|
||||
PlayerAuth auth = null;
|
||||
if (isUUIDinstance(password)) {
|
||||
String pname = null;
|
||||
try {
|
||||
pname = Bukkit.getOfflinePlayer(UUID.fromString(name)).getName();
|
||||
} catch (Exception e) {
|
||||
pname = getName(UUID.fromString(name));
|
||||
} catch (NoSuchMethodError e) {
|
||||
pname = getName(UUID.fromString(name));
|
||||
}
|
||||
if (pname == null) continue;
|
||||
auth = new PlayerAuth(pname.toLowerCase(), password, "127.0.0.1", System.currentTimeMillis(), "your@email.com", pname);
|
||||
} else {
|
||||
auth = new PlayerAuth(name, password, "127.0.0.1", System.currentTimeMillis(), "your@email.com", API.getPlayerRealName(name));
|
||||
}
|
||||
if (auth != null) database.saveAuth(auth);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean isUUIDinstance(String s) {
|
||||
if (String.valueOf(s.charAt(8)).equalsIgnoreCase("-")) return true;
|
||||
return true;
|
||||
}
|
||||
|
||||
private String getName(UUID uuid) {
|
||||
try {
|
||||
for (OfflinePlayer op : Bukkit.getOfflinePlayers()) {
|
||||
if (op.getUniqueId().compareTo(uuid) == 0) return op.getName();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@ -95,7 +95,7 @@ public class MySQLDataSource implements DataSource {
|
||||
+ columnName + " VARCHAR(255) NOT NULL UNIQUE,"
|
||||
+ columnPassword + " VARCHAR(255) NOT NULL,"
|
||||
+ columnIp + " VARCHAR(40) NOT NULL DEFAULT '127.0.0.1',"
|
||||
+ columnLastLogin + " BIGINT DEFAULT '0',"
|
||||
+ columnLastLogin + " BIGINT NOT NULL DEFAULT '" + System.currentTimeMillis() + "',"
|
||||
+ lastlocX + " DOUBLE NOT NULL DEFAULT '0.0',"
|
||||
+ lastlocY + " DOUBLE NOT NULL DEFAULT '0.0',"
|
||||
+ lastlocZ + " DOUBLE NOT NULL DEFAULT '0.0',"
|
||||
|
@ -124,7 +124,7 @@ public class MySQLThread extends Thread implements DataSource {
|
||||
+ columnName + " VARCHAR(255) NOT NULL UNIQUE,"
|
||||
+ columnPassword + " VARCHAR(255) NOT NULL,"
|
||||
+ columnIp + " VARCHAR(40) NOT NULL DEFAULT '127.0.0.1',"
|
||||
+ columnLastLogin + " BIGINT DEFAULT '0',"
|
||||
+ columnLastLogin + " BIGINT NOT NULL DEFAULT '" + System.currentTimeMillis() + "',"
|
||||
+ lastlocX + " DOUBLE NOT NULL DEFAULT '0.0',"
|
||||
+ lastlocY + " DOUBLE NOT NULL DEFAULT '0.0',"
|
||||
+ lastlocZ + " DOUBLE NOT NULL DEFAULT '0.0',"
|
||||
|
@ -35,6 +35,9 @@ commands:
|
||||
captcha:
|
||||
description: Captcha
|
||||
usage: /captcha theCaptcha
|
||||
converter:
|
||||
description: Converter from different other auth plugins
|
||||
usage: /converter <datatype>
|
||||
permissions:
|
||||
authme.player.*:
|
||||
description: Gives access to all authme player commands
|
||||
@ -64,6 +67,7 @@ permissions:
|
||||
authme.admin.switchantibot: true
|
||||
authme.bypassantibot: true
|
||||
authme.admin.getip: true
|
||||
authme.admin.converter: true
|
||||
authme.register:
|
||||
description: Register an account
|
||||
default: true
|
||||
@ -106,12 +110,6 @@ permissions:
|
||||
authme.admin.purge:
|
||||
description: AuthMe unregister command
|
||||
default: op
|
||||
authme.admin.convertflattosql:
|
||||
description: Convert File to Sql method
|
||||
default: op
|
||||
authme.admin.convertfromrakamak:
|
||||
description: Convert from Rakamak database to AuthMe
|
||||
default: op
|
||||
authme.admin.lastlogin:
|
||||
description: Get last login date about a player
|
||||
default: op
|
||||
@ -124,9 +122,6 @@ permissions:
|
||||
authme.admin.accounts:
|
||||
description: Display Players Accounts
|
||||
default: op
|
||||
authme.admin.xauthimport:
|
||||
description: Import xAuth Database to AuthMe Database
|
||||
default: op
|
||||
authme.captcha:
|
||||
description: Captcha
|
||||
default: true
|
||||
@ -142,9 +137,6 @@ permissions:
|
||||
authme.admin.purgebannedplayers:
|
||||
description: Purge banned players
|
||||
default: op
|
||||
authme.admin.flattosqlite:
|
||||
description: Convert File to Sqlite method
|
||||
default: op
|
||||
authme.bypassforcesurvival:
|
||||
description: Bypass all ForceSurvival features
|
||||
default: false
|
||||
@ -157,9 +149,6 @@ permissions:
|
||||
authme.bypassantibot:
|
||||
description: Bypass the AntiBot check
|
||||
default: op
|
||||
authme.admin.royalauth:
|
||||
description: Import RoyalAuth database into AuthMe
|
||||
default: op
|
||||
authme.admin.setfirstspawn:
|
||||
description: Set the AuthMe First Spawn Point
|
||||
default: op
|
||||
@ -169,6 +158,6 @@ permissions:
|
||||
authme.admin.getip:
|
||||
description: Get IP from a player ( fake and real )
|
||||
default: op
|
||||
authme.admin.crazyloginimport:
|
||||
description: Import CrazyLogin database into AuthMe database
|
||||
authme.admin.converter:
|
||||
description: Allow /converter command
|
||||
default: op
|
Loading…
Reference in New Issue
Block a user