mirror of
https://github.com/moparisthebest/xAuth
synced 2024-12-22 07:08:51 -05:00
Players are now teleported to the spawn until they have logged in (this should fix falling into the void)
Compatibility for MultiInv, Backpack, and iZone Strike system can now be toggled between kicking and banning the player's IP Added alias /l (L) for /login
This commit is contained in:
parent
5b5e11e372
commit
98f4fd015c
16
pom.xml
16
pom.xml
@ -2,7 +2,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.cypherx</groupId>
|
<groupId>com.cypherx</groupId>
|
||||||
<artifactId>xauth</artifactId>
|
<artifactId>xauth</artifactId>
|
||||||
<version>1.2.3</version>
|
<version>1.2.4</version>
|
||||||
<name>xAuth</name>
|
<name>xAuth</name>
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
@ -16,13 +16,6 @@
|
|||||||
<type>jar</type>
|
<type>jar</type>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.bukkit</groupId>
|
|
||||||
<artifactId>craftbukkit</artifactId>
|
|
||||||
<version>0.0.1-SNAPSHOT</version>
|
|
||||||
<type>jar</type>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.nijikokun.bukkit</groupId>
|
<groupId>com.nijikokun.bukkit</groupId>
|
||||||
<artifactId>Permissions</artifactId>
|
<artifactId>Permissions</artifactId>
|
||||||
@ -30,6 +23,13 @@
|
|||||||
<type>jar</type>
|
<type>jar</type>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.bukkit</groupId>
|
||||||
|
<artifactId>craftbukkit</artifactId>
|
||||||
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
|
<type>jar</type>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
<finalName>${project.name}</finalName>
|
<finalName>${project.name}</finalName>
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
package com.cypherx.xauth;
|
package com.cypherx.xauth;
|
||||||
|
|
||||||
import org.bukkit.Server;
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.PluginDescriptionFile;
|
import org.bukkit.plugin.PluginDescriptionFile;
|
||||||
import org.bukkit.craftbukkit.CraftServer;
|
|
||||||
|
|
||||||
public class CommandHandler
|
public class CommandHandler
|
||||||
{
|
{
|
||||||
@ -67,12 +66,20 @@ public class CommandHandler
|
|||||||
|
|
||||||
if (plugin.getStrikes(player) >= xAuth.settings.getInt("login.strikes.amount"))
|
if (plugin.getStrikes(player) >= xAuth.settings.getInt("login.strikes.amount"))
|
||||||
{
|
{
|
||||||
String addr = player.getAddress().getAddress().getHostAddress();
|
String action;
|
||||||
Server server = plugin.getServer();
|
|
||||||
server.dispatchCommand(((CraftServer)server).getServer().console, "ban-ip " + addr);
|
if (xAuth.settings.getStr("login.strikes.action").equals("banip"))
|
||||||
|
{
|
||||||
|
String addr = player.getAddress().getAddress().getHostAddress();
|
||||||
|
plugin.getServer().dispatchCommand(new ConsoleCommandSender(plugin.getServer()), "ban-ip " + addr);
|
||||||
|
action = addr + " banned";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
action = player.getName() + " kicked";
|
||||||
|
|
||||||
player.kickPlayer(xAuth.strings.getString("login.err.kick"));
|
player.kickPlayer(xAuth.strings.getString("login.err.kick"));
|
||||||
plugin.clearStrikes(player);
|
plugin.clearStrikes(player);
|
||||||
System.out.println("[" + pdfFile.getName() + "] " + addr + " banned by Strike system");
|
System.out.println("[" + pdfFile.getName() + "] " + action + " by strike system");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -144,8 +151,11 @@ public class CommandHandler
|
|||||||
|
|
||||||
if (target != null)
|
if (target != null)
|
||||||
{
|
{
|
||||||
if (plugin.mustRegister(target))
|
if (plugin.mustRegister(target)) {
|
||||||
|
plugin.loginLocation.put(target, target.getLocation());
|
||||||
|
target.teleport(target.getWorld().getSpawnLocation());
|
||||||
plugin.saveInventory(target);
|
plugin.saveInventory(target);
|
||||||
|
}
|
||||||
target.sendMessage(xAuth.strings.getString("unregister.target"));
|
target.sendMessage(xAuth.strings.getString("unregister.target"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -222,6 +232,8 @@ public class CommandHandler
|
|||||||
|
|
||||||
if (pTarget != null)
|
if (pTarget != null)
|
||||||
{
|
{
|
||||||
|
plugin.loginLocation.put(pTarget, pTarget.getLocation());
|
||||||
|
pTarget.teleport(pTarget.getWorld().getSpawnLocation());
|
||||||
plugin.saveInventory(pTarget);
|
plugin.saveInventory(pTarget);
|
||||||
pTarget.sendMessage(xAuth.strings.getString("logout.success.ended"));
|
pTarget.sendMessage(xAuth.strings.getString("logout.success.ended"));
|
||||||
}
|
}
|
||||||
@ -272,8 +284,11 @@ public class CommandHandler
|
|||||||
|
|
||||||
if (target != null)
|
if (target != null)
|
||||||
{
|
{
|
||||||
if (plugin.mustRegister(target))
|
if (plugin.mustRegister(target)) {
|
||||||
|
plugin.loginLocation.put(target, target.getLocation());
|
||||||
|
target.teleport(target.getWorld().getSpawnLocation());
|
||||||
plugin.saveInventory(target);
|
plugin.saveInventory(target);
|
||||||
|
}
|
||||||
target.sendMessage(xAuth.strings.getString("unregister.target"));
|
target.sendMessage(xAuth.strings.getString("unregister.target"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -334,6 +349,8 @@ public class CommandHandler
|
|||||||
|
|
||||||
if (pTarget != null)
|
if (pTarget != null)
|
||||||
{
|
{
|
||||||
|
plugin.loginLocation.put(pTarget, pTarget.getLocation());
|
||||||
|
pTarget.teleport(pTarget.getWorld().getSpawnLocation());
|
||||||
plugin.saveInventory(pTarget);
|
plugin.saveInventory(pTarget);
|
||||||
pTarget.sendMessage(xAuth.strings.getString("logout.success.ended"));
|
pTarget.sendMessage(xAuth.strings.getString("logout.success.ended"));
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@ public class Settings
|
|||||||
"misc.allowed-cmds",
|
"misc.allowed-cmds",
|
||||||
"login.strikes.enabled",
|
"login.strikes.enabled",
|
||||||
"login.strikes.amount",
|
"login.strikes.amount",
|
||||||
|
"login.strikes.action",
|
||||||
"filter.enabled",
|
"filter.enabled",
|
||||||
"filter.allowed",
|
"filter.allowed",
|
||||||
"filter.block-blankname",
|
"filter.block-blankname",
|
||||||
@ -80,6 +81,7 @@ public class Settings
|
|||||||
defaults.put("misc.autosave", true);
|
defaults.put("misc.autosave", true);
|
||||||
defaults.put("login.strikes.enabled", true);
|
defaults.put("login.strikes.enabled", true);
|
||||||
defaults.put("login.strikes.amount", 5);
|
defaults.put("login.strikes.amount", 5);
|
||||||
|
defaults.put("login.strikes.action", "kick");
|
||||||
defaults.put("filter.enabled", true);
|
defaults.put("filter.enabled", true);
|
||||||
defaults.put("filter.allowed", "abcdefghijklmnopqrstuvwxyz0123456789_- ()[]{}");
|
defaults.put("filter.allowed", "abcdefghijklmnopqrstuvwxyz0123456789_- ()[]{}");
|
||||||
defaults.put("filter.block-blankname", true);
|
defaults.put("filter.block-blankname", true);
|
||||||
@ -111,10 +113,8 @@ public class Settings
|
|||||||
private void removeKeys()
|
private void removeKeys()
|
||||||
{
|
{
|
||||||
for (String key : keyRemovals)
|
for (String key : keyRemovals)
|
||||||
{
|
|
||||||
if (config.getProperty(key) != null)
|
if (config.getProperty(key) != null)
|
||||||
config.removeProperty(key);
|
config.removeProperty(key);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void load()
|
public void load()
|
||||||
@ -164,22 +164,11 @@ public class Settings
|
|||||||
if (!(settings.get(key) instanceof List))
|
if (!(settings.get(key) instanceof List))
|
||||||
{
|
{
|
||||||
System.out.println("[xAuth] COMMAND_PREPROCESS Error: Report this in the xAuth thread.");
|
System.out.println("[xAuth] COMMAND_PREPROCESS Error: Report this in the xAuth thread.");
|
||||||
System.out.println("[xAuth] Value:" + settings.get(key));
|
System.out.println("[xAuth] Value: " + settings.get(key));
|
||||||
System.out.println("[xAuth] Attempting to autocorrect..");
|
System.out.println("[xAuth] Attempting to autocorrect..");
|
||||||
xAuth.settings = new Settings(file);
|
xAuth.settings = new Settings(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Object value = settings.get(key);
|
|
||||||
|
|
||||||
if (value instanceof String[])
|
|
||||||
System.out.println("string array");
|
|
||||||
else if (value instanceof String)
|
|
||||||
System.out.println("string");
|
|
||||||
else if (value instanceof List)
|
|
||||||
System.out.println("list");
|
|
||||||
|
|
||||||
System.out.println(value);*/
|
|
||||||
|
|
||||||
return (List<String>)settings.get(key);
|
return (List<String>)settings.get(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,6 +1,3 @@
|
|||||||
//xAuth 1.2.3
|
|
||||||
//Built against Bukkit #660, CraftBukkit #703, and Permissions v2.7
|
|
||||||
|
|
||||||
package com.cypherx.xauth;
|
package com.cypherx.xauth;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
@ -9,10 +6,13 @@ import java.security.MessageDigest;
|
|||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import net.minecraft.server.PropertyManager;
|
import net.minecraft.server.PropertyManager;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
import org.bukkit.command.ConsoleCommandSender;
|
||||||
@ -60,6 +60,7 @@ public class xAuth extends JavaPlugin
|
|||||||
private ConcurrentHashMap<String, Session> sessions = new ConcurrentHashMap<String, Session>();
|
private ConcurrentHashMap<String, Session> sessions = new ConcurrentHashMap<String, Session>();
|
||||||
private ConcurrentHashMap<Player, Date> lastNotifyTimes = new ConcurrentHashMap<Player, Date>();
|
private ConcurrentHashMap<Player, Date> lastNotifyTimes = new ConcurrentHashMap<Player, Date>();
|
||||||
private ConcurrentHashMap<String, Integer> strikes = new ConcurrentHashMap<String, Integer>();
|
private ConcurrentHashMap<String, Integer> strikes = new ConcurrentHashMap<String, Integer>();
|
||||||
|
public HashMap<Player, Location> loginLocation = new HashMap<Player, Location>();
|
||||||
private ArrayList<String> illegalNames = new ArrayList<String>();
|
private ArrayList<String> illegalNames = new ArrayList<String>();
|
||||||
|
|
||||||
public void onEnable()
|
public void onEnable()
|
||||||
@ -104,8 +105,10 @@ public class xAuth extends JavaPlugin
|
|||||||
{
|
{
|
||||||
for (Player player : players)
|
for (Player player : players)
|
||||||
{
|
{
|
||||||
if (isRegistered(player.getName()))
|
if (mustRegister(player))
|
||||||
{
|
{
|
||||||
|
loginLocation.put(player, player.getLocation());
|
||||||
|
player.teleport(player.getWorld().getSpawnLocation());
|
||||||
saveInventory(player);
|
saveInventory(player);
|
||||||
player.sendMessage(strings.getString("misc.reloaded"));
|
player.sendMessage(strings.getString("misc.reloaded"));
|
||||||
}
|
}
|
||||||
@ -118,10 +121,10 @@ public class xAuth extends JavaPlugin
|
|||||||
pm.registerEvent(Event.Type.PLAYER_DROP_ITEM, playerListener, Event.Priority.Lowest, this);
|
pm.registerEvent(Event.Type.PLAYER_DROP_ITEM, playerListener, Event.Priority.Lowest, this);
|
||||||
pm.registerEvent(Event.Type.PLAYER_PICKUP_ITEM, playerListener, Event.Priority.Lowest, this);
|
pm.registerEvent(Event.Type.PLAYER_PICKUP_ITEM, playerListener, Event.Priority.Lowest, this);
|
||||||
pm.registerEvent(Event.Type.PLAYER_INTERACT, playerListener, Event.Priority.Lowest, this);
|
pm.registerEvent(Event.Type.PLAYER_INTERACT, playerListener, Event.Priority.Lowest, this);
|
||||||
pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Event.Priority.Lowest, this);
|
pm.registerEvent(Event.Type.PLAYER_JOIN, playerListener, Event.Priority.Monitor, this);
|
||||||
pm.registerEvent(Event.Type.PLAYER_LOGIN, playerListener, Event.Priority.Lowest, this);
|
pm.registerEvent(Event.Type.PLAYER_LOGIN, playerListener, Event.Priority.Lowest, this);
|
||||||
pm.registerEvent(Event.Type.PLAYER_MOVE, playerListener, Event.Priority.Lowest, this);
|
pm.registerEvent(Event.Type.PLAYER_MOVE, playerListener, Event.Priority.Lowest, this);
|
||||||
pm.registerEvent(Event.Type.PLAYER_QUIT, playerListener, Event.Priority.Lowest, this);
|
pm.registerEvent(Event.Type.PLAYER_QUIT, playerListener, Event.Priority.Monitor, this);
|
||||||
|
|
||||||
pm.registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Lowest, this);
|
pm.registerEvent(Event.Type.BLOCK_BREAK, blockListener, Priority.Lowest, this);
|
||||||
pm.registerEvent(Event.Type.BLOCK_PLACE, blockListener, Priority.Lowest, this);
|
pm.registerEvent(Event.Type.BLOCK_PLACE, blockListener, Priority.Lowest, this);
|
||||||
@ -142,7 +145,7 @@ public class xAuth extends JavaPlugin
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
BufferedReader authReader = new BufferedReader(new FileReader(DIR + AUTH_FILE));
|
BufferedReader authReader = new BufferedReader(new FileReader(DIR + AUTH_FILE));
|
||||||
|
|
||||||
String line;
|
String line;
|
||||||
while ((line = authReader.readLine()) != null)
|
while ((line = authReader.readLine()) != null)
|
||||||
{
|
{
|
||||||
@ -162,13 +165,17 @@ public class xAuth extends JavaPlugin
|
|||||||
{
|
{
|
||||||
getServer().getScheduler().cancelAllTasks();
|
getServer().getScheduler().cancelAllTasks();
|
||||||
|
|
||||||
//Restore players inventories so they are not lost
|
//Restore players inventories and locations so they are not lost
|
||||||
Player[] players = getServer().getOnlinePlayers();
|
Player[] players = getServer().getOnlinePlayers();
|
||||||
if (players.length > 0)
|
if (players.length > 0)
|
||||||
{
|
{
|
||||||
for (Player player : players)
|
for (Player player : players) {
|
||||||
if (!sessionExists(player.getName()))
|
if (!sessionExists(player.getName())) {
|
||||||
|
player.teleport(loginLocation.get(player));
|
||||||
|
loginLocation.remove(player);
|
||||||
restoreInventory(player);
|
restoreInventory(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fullyEnabled)
|
if (fullyEnabled)
|
||||||
@ -286,6 +293,8 @@ public class xAuth extends JavaPlugin
|
|||||||
//LOGIN / LOGOUT FUNCTIONS
|
//LOGIN / LOGOUT FUNCTIONS
|
||||||
public void login(Player player)
|
public void login(Player player)
|
||||||
{
|
{
|
||||||
|
player.teleport(loginLocation.get(player));
|
||||||
|
loginLocation.remove(player);
|
||||||
startSession(player);
|
startSession(player);
|
||||||
restoreInventory(player);
|
restoreInventory(player);
|
||||||
}
|
}
|
||||||
@ -324,8 +333,11 @@ public class xAuth extends JavaPlugin
|
|||||||
if (session.isExpired(new Date(session.getLoginTime() + (settings.getInt("session.timeout") * 1000))))
|
if (session.isExpired(new Date(session.getLoginTime() + (settings.getInt("session.timeout") * 1000))))
|
||||||
removeSession(pName);
|
removeSession(pName);
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
|
player.teleport(loginLocation.get(player));
|
||||||
|
loginLocation.remove(player);
|
||||||
restoreInventory(player);
|
restoreInventory(player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addStrike(Player player)
|
public void addStrike(Player player)
|
||||||
@ -374,6 +386,9 @@ public class xAuth extends JavaPlugin
|
|||||||
|
|
||||||
public Boolean isCmdAllowed(String cmd)
|
public Boolean isCmdAllowed(String cmd)
|
||||||
{
|
{
|
||||||
|
if (cmd.equals("/register") || cmd.equals("/login") || cmd.equals("/l"))
|
||||||
|
return true;
|
||||||
|
|
||||||
if (settings.getStrList("misc.allowed-cmds").contains(cmd))
|
if (settings.getStrList("misc.allowed-cmds").contains(cmd))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@ -415,6 +430,10 @@ public class xAuth extends JavaPlugin
|
|||||||
playerInv.setChestplate(null);
|
playerInv.setChestplate(null);
|
||||||
playerInv.setLeggings(null);
|
playerInv.setLeggings(null);
|
||||||
playerInv.setBoots(null);
|
playerInv.setBoots(null);
|
||||||
|
|
||||||
|
//Backpack fix
|
||||||
|
player.saveData();
|
||||||
|
//end Backpack fix
|
||||||
}
|
}
|
||||||
|
|
||||||
public void restoreInventory(Player player)
|
public void restoreInventory(Player player)
|
||||||
@ -423,7 +442,21 @@ public class xAuth extends JavaPlugin
|
|||||||
|
|
||||||
if (inventory.containsKey(player))
|
if (inventory.containsKey(player))
|
||||||
{
|
{
|
||||||
playerInv.setContents(inventory.get(player));
|
ItemStack[] inv = inventory.get(player);
|
||||||
|
|
||||||
|
//Backpack fix
|
||||||
|
if (playerInv.getSize() > inv.length)
|
||||||
|
{
|
||||||
|
ItemStack[] newInv = new ItemStack[playerInv.getSize()];
|
||||||
|
|
||||||
|
for(int i = 0; i < inv.length; i++)
|
||||||
|
newInv[i] = inv[i];
|
||||||
|
|
||||||
|
inv = newInv;
|
||||||
|
}
|
||||||
|
//end Backpack fix
|
||||||
|
|
||||||
|
playerInv.setContents(inv);
|
||||||
inventory.remove(player);
|
inventory.remove(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -492,6 +525,8 @@ public class xAuth extends JavaPlugin
|
|||||||
|
|
||||||
if (player != null)
|
if (player != null)
|
||||||
{
|
{
|
||||||
|
loginLocation.put(player, player.getLocation());
|
||||||
|
player.teleport(player.getWorld().getSpawnLocation());
|
||||||
saveInventory(player);
|
saveInventory(player);
|
||||||
player.sendMessage(strings.getString("logout.success.ended"));
|
player.sendMessage(strings.getString("logout.success.ended"));
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.cypherx.xauth;
|
package com.cypherx.xauth;
|
||||||
|
|
||||||
//import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.player.*;
|
import org.bukkit.event.player.*;
|
||||||
|
|
||||||
@ -37,6 +37,9 @@ public class xAuthPlayerListener extends PlayerListener
|
|||||||
|
|
||||||
if (!plugin.isLoggedIn(player))
|
if (!plugin.isLoggedIn(player))
|
||||||
{
|
{
|
||||||
|
plugin.loginLocation.put(player, player.getLocation());
|
||||||
|
player.teleport(player.getWorld().getSpawnLocation());
|
||||||
|
|
||||||
if (!plugin.isRegistered(player.getName()))
|
if (!plugin.isRegistered(player.getName()))
|
||||||
{
|
{
|
||||||
if (!plugin.mustRegister(player))
|
if (!plugin.mustRegister(player))
|
||||||
@ -129,8 +132,12 @@ public class xAuthPlayerListener extends PlayerListener
|
|||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
plugin.handleEvent(player, event);
|
plugin.handleEvent(player, event);
|
||||||
|
|
||||||
if (event.isCancelled())
|
Location loc = player.getWorld().getSpawnLocation();
|
||||||
player.teleport(event.getFrom());
|
|
||||||
|
if (event.isCancelled() && player.teleport(loc)) {
|
||||||
|
event.setTo(loc);
|
||||||
|
event.setFrom(loc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Prevents player from picking up items
|
//Prevents player from picking up items
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
name: xAuth
|
name: xAuth
|
||||||
main: com.cypherx.xauth.xAuth
|
main: com.cypherx.xauth.xAuth
|
||||||
version: 1.2.3
|
version: 1.2.4
|
||||||
description: Allows players to register and maintain an account while the server is in offline-mode.
|
description: Allows players to register and maintain an account while the server is in offline-mode.
|
||||||
authors:
|
author: CypherX
|
||||||
- CypherX
|
|
||||||
|
|
||||||
commands:
|
commands:
|
||||||
register:
|
register:
|
||||||
description: Register your player name
|
description: Register your player name
|
||||||
usage: /register <password>
|
usage: /register <password>
|
||||||
login:
|
login:
|
||||||
|
aliases: [l]
|
||||||
description: Authenticate yourself
|
description: Authenticate yourself
|
||||||
usage: /login <password>
|
usage: /login <password>
|
||||||
changepw:
|
changepw:
|
||||||
|
Loading…
Reference in New Issue
Block a user