mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-09-06 20:28:06 +02:00
Code householding
- Various migrations from legacy settings to new settings - PlayerListener: use shouldCancelEvent() to see if chat should be canceled - Merge permission manager listener with general server listener
This commit is contained in:
parent
1182b58b99
commit
0dab887848
@ -614,7 +614,7 @@ public class AuthMe extends JavaPlugin {
|
|||||||
* Set up the permissions manager.
|
* Set up the permissions manager.
|
||||||
*/
|
*/
|
||||||
private PermissionsManager initializePermissionsManager() {
|
private PermissionsManager initializePermissionsManager() {
|
||||||
PermissionsManager manager = new PermissionsManager(Bukkit.getServer(), this, getLogger());
|
PermissionsManager manager = new PermissionsManager(Bukkit.getServer(), getLogger());
|
||||||
manager.setup();
|
manager.setup();
|
||||||
return manager;
|
return manager;
|
||||||
}
|
}
|
||||||
|
@ -271,7 +271,7 @@ public final class CommandInitializer {
|
|||||||
CommandDescription.builder()
|
CommandDescription.builder()
|
||||||
.parent(AUTHME_BASE)
|
.parent(AUTHME_BASE)
|
||||||
.labels("converter", "convert", "conv")
|
.labels("converter", "convert", "conv")
|
||||||
.description("Converter Command")
|
.description("Converter command")
|
||||||
.detailedDescription("Converter command for AuthMeReloaded.")
|
.detailedDescription("Converter command for AuthMeReloaded.")
|
||||||
.withArgument("job", "Conversion job: xauth / crazylogin / rakamak / " +
|
.withArgument("job", "Conversion job: xauth / crazylogin / rakamak / " +
|
||||||
"royalauth / vauth / sqlitetosql", false)
|
"royalauth / vauth / sqlitetosql", false)
|
||||||
|
@ -75,8 +75,8 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
private final Management management;
|
private final Management management;
|
||||||
private final BukkitService bukkitService;
|
private final BukkitService bukkitService;
|
||||||
|
|
||||||
public AuthMePlayerListener(AuthMe plugin, NewSetting settings, Messages messages, DataSource dataSource, AntiBot antiBot,
|
public AuthMePlayerListener(AuthMe plugin, NewSetting settings, Messages messages, DataSource dataSource,
|
||||||
Management management, BukkitService bukkitService) {
|
AntiBot antiBot, Management management, BukkitService bukkitService) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
this.m = messages;
|
this.m = messages;
|
||||||
@ -92,17 +92,15 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
if (Utils.checkAuth(player)) {
|
if (shouldCancelEvent(player)) {
|
||||||
if (settings.getProperty(RestrictionSettings.HIDE_CHAT)) {
|
|
||||||
for (Player p : Utils.getOnlinePlayers()) {
|
|
||||||
if (!PlayerCache.getInstance().isAuthenticated(p.getName())) {
|
|
||||||
event.getRecipients().remove(p);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
sendLoginOrRegisterMessage(player);
|
sendLoginOrRegisterMessage(player);
|
||||||
|
} else if (settings.getProperty(RestrictionSettings.HIDE_CHAT)) {
|
||||||
|
for (Player p : Utils.getOnlinePlayers()) {
|
||||||
|
if (!PlayerCache.getInstance().isAuthenticated(p.getName())) {
|
||||||
|
event.getRecipients().remove(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -349,7 +347,7 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
final String name = player.getName().toLowerCase();
|
final String name = player.getName().toLowerCase();
|
||||||
boolean isAuthAvailable = dataSource.isAuthAvailable(name);
|
boolean isAuthAvailable = dataSource.isAuthAvailable(name);
|
||||||
|
|
||||||
if (antiBot.getAntiBotStatus()==AntiBotStatus.ACTIVE && !isAuthAvailable) {
|
if (antiBot.getAntiBotStatus() == AntiBotStatus.ACTIVE && !isAuthAvailable) {
|
||||||
event.setKickMessage(m.retrieveSingle(MessageKey.KICK_ANTIBOT));
|
event.setKickMessage(m.retrieveSingle(MessageKey.KICK_ANTIBOT));
|
||||||
event.setResult(PlayerLoginEvent.Result.KICK_OTHER);
|
event.setResult(PlayerLoginEvent.Result.KICK_OTHER);
|
||||||
return;
|
return;
|
||||||
|
@ -52,6 +52,9 @@ public class AuthMeServerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Call the onPluginDisable method in the permissions manager
|
||||||
|
plugin.getPermissionsManager().onPluginDisable(event);
|
||||||
|
|
||||||
final String pluginName = event.getPlugin().getName();
|
final String pluginName = event.getPlugin().getName();
|
||||||
if ("Essentials".equalsIgnoreCase(pluginName)) {
|
if ("Essentials".equalsIgnoreCase(pluginName)) {
|
||||||
pluginHooks.unhookEssentials();
|
pluginHooks.unhookEssentials();
|
||||||
@ -82,6 +85,9 @@ public class AuthMeServerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Call the onPluginEnable method in the permissions manager
|
||||||
|
plugin.getPermissionsManager().onPluginEnable(event);
|
||||||
|
|
||||||
final String pluginName = event.getPlugin().getName();
|
final String pluginName = event.getPlugin().getName();
|
||||||
if ("Essentials".equalsIgnoreCase(pluginName)) {
|
if ("Essentials".equalsIgnoreCase(pluginName)) {
|
||||||
pluginHooks.tryHookToEssentials();
|
pluginHooks.tryHookToEssentials();
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
package fr.xephi.authme.permission;
|
package fr.xephi.authme.permission;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import de.bananaco.bpermissions.api.ApiLayer;
|
||||||
import java.util.Arrays;
|
import de.bananaco.bpermissions.api.CalculableType;
|
||||||
import java.util.List;
|
import fr.xephi.authme.command.CommandDescription;
|
||||||
import java.util.Map;
|
import fr.xephi.authme.util.CollectionUtils;
|
||||||
import java.util.logging.Logger;
|
import net.milkbowl.vault.permission.Permission;
|
||||||
|
|
||||||
import org.anjocaido.groupmanager.GroupManager;
|
import org.anjocaido.groupmanager.GroupManager;
|
||||||
import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler;
|
import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@ -18,15 +17,15 @@ import org.bukkit.plugin.Plugin;
|
|||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||||
import org.tyrannyofheaven.bukkit.zPermissions.ZPermissionsService;
|
import org.tyrannyofheaven.bukkit.zPermissions.ZPermissionsService;
|
||||||
|
|
||||||
import de.bananaco.bpermissions.api.ApiLayer;
|
|
||||||
import de.bananaco.bpermissions.api.CalculableType;
|
|
||||||
import fr.xephi.authme.command.CommandDescription;
|
|
||||||
import fr.xephi.authme.util.CollectionUtils;
|
|
||||||
import net.milkbowl.vault.permission.Permission;
|
|
||||||
import ru.tehkode.permissions.PermissionUser;
|
import ru.tehkode.permissions.PermissionUser;
|
||||||
import ru.tehkode.permissions.bukkit.PermissionsEx;
|
import ru.tehkode.permissions.bukkit.PermissionsEx;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* PermissionsManager.
|
* PermissionsManager.
|
||||||
@ -49,18 +48,10 @@ public class PermissionsManager implements PermissionsService {
|
|||||||
* Server instance.
|
* Server instance.
|
||||||
*/
|
*/
|
||||||
private final Server server;
|
private final Server server;
|
||||||
/**
|
|
||||||
* Plugin instance.
|
|
||||||
*/
|
|
||||||
private final Plugin plugin;
|
|
||||||
/**
|
/**
|
||||||
* Logger instance.
|
* Logger instance.
|
||||||
*/
|
*/
|
||||||
private Logger log;
|
private Logger log;
|
||||||
/**
|
|
||||||
* The permissions manager Bukkit listener instance.
|
|
||||||
*/
|
|
||||||
private PermissionsManagerBukkitListener bukkitListener;
|
|
||||||
/**
|
/**
|
||||||
* Type of permissions system that is currently used.
|
* Type of permissions system that is currently used.
|
||||||
* Null if no permissions system is hooked and/or used.
|
* Null if no permissions system is hooked and/or used.
|
||||||
@ -79,28 +70,11 @@ public class PermissionsManager implements PermissionsService {
|
|||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
* @param server Server instance
|
* @param server Server instance
|
||||||
* @param plugin Plugin instance
|
|
||||||
* @param log Logger
|
* @param log Logger
|
||||||
*/
|
*/
|
||||||
public PermissionsManager(Server server, Plugin plugin, Logger log) {
|
public PermissionsManager(Server server, Logger log) {
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.plugin = plugin;
|
|
||||||
this.log = log;
|
this.log = log;
|
||||||
|
|
||||||
// Create and register the Bukkit listener on the server if it's valid
|
|
||||||
if(this.server != null) {
|
|
||||||
// Create the Bukkit listener
|
|
||||||
this.bukkitListener = new PermissionsManagerBukkitListener(this);
|
|
||||||
|
|
||||||
// Get the plugin manager instance
|
|
||||||
PluginManager pluginManager = this.server.getPluginManager();
|
|
||||||
|
|
||||||
// Register the Bukkit listener
|
|
||||||
pluginManager.registerEvents(this.bukkitListener, this.plugin);
|
|
||||||
|
|
||||||
// Show a status message.
|
|
||||||
//this.log.info("Started permission plugins state listener!");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -282,15 +256,6 @@ public class PermissionsManager implements PermissionsService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the permissions manager Bukkit listener instance.
|
|
||||||
*
|
|
||||||
* @return Listener instance.
|
|
||||||
*/
|
|
||||||
public PermissionsManagerBukkitListener getListener() {
|
|
||||||
return this.bukkitListener;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if the command sender has permission for the given permissions node. If no permissions system is used or
|
* Check if the command sender has permission for the given permissions node. If no permissions system is used or
|
||||||
* if the sender is not a player (e.g. console user), the player has to be OP in order to have the permission.
|
* if the sender is not a player (e.g. console user), the player has to be OP in order to have the permission.
|
||||||
|
@ -1,85 +0,0 @@
|
|||||||
package fr.xephi.authme.permission;
|
|
||||||
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.event.server.PluginDisableEvent;
|
|
||||||
import org.bukkit.event.server.PluginEnableEvent;
|
|
||||||
|
|
||||||
public class PermissionsManagerBukkitListener implements Listener {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The permissions manager instance.
|
|
||||||
*/
|
|
||||||
private PermissionsManager permissionsManager;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether the listener is enabled or not.
|
|
||||||
*/
|
|
||||||
private boolean enabled = true;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor.\
|
|
||||||
*
|
|
||||||
* @param permissionsManager Permissions manager instance.
|
|
||||||
*/
|
|
||||||
public PermissionsManagerBukkitListener(PermissionsManager permissionsManager) {
|
|
||||||
this.permissionsManager = permissionsManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check whether the listener is enabled.
|
|
||||||
*
|
|
||||||
* @return True if the listener is enabled.
|
|
||||||
*/
|
|
||||||
public boolean isEnabled() {
|
|
||||||
return this.enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set whether the listener is enabled.
|
|
||||||
* Disabling the listener will stop the event handling until it's enabled again.
|
|
||||||
*
|
|
||||||
* @param enabled True if enabled, false if disabled.
|
|
||||||
*/
|
|
||||||
public void setEnabled(boolean enabled) {
|
|
||||||
this.enabled = enabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called when a plugin is enabled.
|
|
||||||
*
|
|
||||||
* @param event Event reference.
|
|
||||||
*/
|
|
||||||
@EventHandler
|
|
||||||
public void onPluginEnable(PluginEnableEvent event) {
|
|
||||||
// Make sure the listener is enabled
|
|
||||||
if(!isEnabled())
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Make sure the permissions manager is set
|
|
||||||
if(this.permissionsManager == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Call the onPluginEnable method in the permissions manager
|
|
||||||
permissionsManager.onPluginEnable(event);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called when a plugin is disabled.
|
|
||||||
*
|
|
||||||
* @param event Event reference.
|
|
||||||
*/
|
|
||||||
@EventHandler
|
|
||||||
public void onPluginDisable(PluginDisableEvent event) {
|
|
||||||
// Make sure the listener is enabled
|
|
||||||
if(!isEnabled())
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Make sure the permissions manager is set
|
|
||||||
if(this.permissionsManager == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Call the onPluginDisable method in the permissions manager
|
|
||||||
permissionsManager.onPluginDisable(event);
|
|
||||||
}
|
|
||||||
}
|
|
@ -14,26 +14,26 @@ import fr.xephi.authme.output.MessageKey;
|
|||||||
import fr.xephi.authme.permission.PlayerStatePermission;
|
import fr.xephi.authme.permission.PlayerStatePermission;
|
||||||
import fr.xephi.authme.process.Process;
|
import fr.xephi.authme.process.Process;
|
||||||
import fr.xephi.authme.process.ProcessService;
|
import fr.xephi.authme.process.ProcessService;
|
||||||
import fr.xephi.authme.settings.NewSetting;
|
|
||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
import fr.xephi.authme.settings.properties.HooksSettings;
|
import fr.xephi.authme.settings.properties.HooksSettings;
|
||||||
import fr.xephi.authme.settings.properties.PluginSettings;
|
import fr.xephi.authme.settings.properties.PluginSettings;
|
||||||
import fr.xephi.authme.settings.properties.RegistrationSettings;
|
import fr.xephi.authme.settings.properties.RegistrationSettings;
|
||||||
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
||||||
|
import fr.xephi.authme.settings.properties.SecuritySettings;
|
||||||
import fr.xephi.authme.task.MessageTask;
|
import fr.xephi.authme.task.MessageTask;
|
||||||
import fr.xephi.authme.task.TimeoutTask;
|
import fr.xephi.authme.task.TimeoutTask;
|
||||||
import fr.xephi.authme.util.Utils;
|
import fr.xephi.authme.util.Utils;
|
||||||
import fr.xephi.authme.util.Utils.GroupType;
|
import fr.xephi.authme.util.Utils.GroupType;
|
||||||
|
import org.apache.commons.lang.reflect.MethodUtils;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
import org.bukkit.scheduler.BukkitTask;
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
|
||||||
import org.apache.commons.lang.reflect.MethodUtils;
|
import static fr.xephi.authme.settings.properties.RestrictionSettings.PROTECT_INVENTORY_BEFORE_LOGIN;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
@ -70,13 +70,13 @@ public class AsynchronousJoin implements Process {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final String ip = Utils.getPlayerIp(player);
|
final String ip = Utils.getPlayerIp(player);
|
||||||
if (isNameRestricted(name, ip, player.getAddress().getHostName(), service.getSettings())) {
|
if (isNameRestricted(name, ip, player.getAddress().getHostName())) {
|
||||||
service.scheduleSyncDelayedTask(new Runnable() {
|
service.scheduleSyncDelayedTask(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
AuthMePlayerListener.causeByAuthMe.putIfAbsent(name, true);
|
AuthMePlayerListener.causeByAuthMe.putIfAbsent(name, true);
|
||||||
player.kickPlayer(service.retrieveSingleMessage(MessageKey.NOT_OWNER_ERROR));
|
player.kickPlayer(service.retrieveSingleMessage(MessageKey.NOT_OWNER_ERROR));
|
||||||
if (Settings.banUnsafeIp) {
|
if (service.getProperty(RestrictionSettings.BAN_UNKNOWN_IP)) {
|
||||||
plugin.getServer().banIP(ip);
|
plugin.getServer().banIP(ip);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -87,7 +87,7 @@ public class AsynchronousJoin implements Process {
|
|||||||
&& !plugin.getPermissionsManager().hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS)
|
&& !plugin.getPermissionsManager().hasPermission(player, PlayerStatePermission.ALLOW_MULTIPLE_ACCOUNTS)
|
||||||
&& !"127.0.0.1".equalsIgnoreCase(ip)
|
&& !"127.0.0.1".equalsIgnoreCase(ip)
|
||||||
&& !"localhost".equalsIgnoreCase(ip)
|
&& !"localhost".equalsIgnoreCase(ip)
|
||||||
&& hasJoinedIp(player.getName(), ip, service.getSettings())) {
|
&& hasJoinedIp(player.getName(), ip)) {
|
||||||
service.scheduleSyncDelayedTask(new Runnable() {
|
service.scheduleSyncDelayedTask(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
@ -103,7 +103,7 @@ public class AsynchronousJoin implements Process {
|
|||||||
final Location spawnLoc = service.getSpawnLoader().getSpawnLocation(player);
|
final Location spawnLoc = service.getSpawnLoader().getSpawnLocation(player);
|
||||||
final boolean isAuthAvailable = database.isAuthAvailable(name);
|
final boolean isAuthAvailable = database.isAuthAvailable(name);
|
||||||
if (isAuthAvailable) {
|
if (isAuthAvailable) {
|
||||||
if (!Settings.noTeleport) {
|
if (!service.getProperty(RestrictionSettings.NO_TELEPORT)) {
|
||||||
if (Settings.isTeleportToSpawnEnabled || (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName()))) {
|
if (Settings.isTeleportToSpawnEnabled || (Settings.isForceSpawnLocOnJoinEnabled && Settings.getForcedWorlds.contains(player.getWorld().getName()))) {
|
||||||
service.scheduleSyncDelayedTask(new Runnable() {
|
service.scheduleSyncDelayedTask(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
@ -122,12 +122,12 @@ public class AsynchronousJoin implements Process {
|
|||||||
LimboCache.getInstance().updateLimboPlayer(player);
|
LimboCache.getInstance().updateLimboPlayer(player);
|
||||||
|
|
||||||
// protect inventory
|
// protect inventory
|
||||||
if (Settings.protectInventoryBeforeLogInEnabled && plugin.inventoryProtector != null) {
|
if (service.getProperty(PROTECT_INVENTORY_BEFORE_LOGIN) && plugin.inventoryProtector != null) {
|
||||||
ProtectInventoryEvent ev = new ProtectInventoryEvent(player);
|
ProtectInventoryEvent ev = new ProtectInventoryEvent(player);
|
||||||
plugin.getServer().getPluginManager().callEvent(ev);
|
plugin.getServer().getPluginManager().callEvent(ev);
|
||||||
if (ev.isCancelled()) {
|
if (ev.isCancelled()) {
|
||||||
plugin.inventoryProtector.sendInventoryPacket(player);
|
plugin.inventoryProtector.sendInventoryPacket(player);
|
||||||
if (!Settings.noConsoleSpam) {
|
if (!service.getProperty(SecuritySettings.REMOVE_SPAM_FROM_CONSOLE)) {
|
||||||
ConsoleLogger.info("ProtectInventoryEvent has been cancelled for " + player.getName() + "...");
|
ConsoleLogger.info("ProtectInventoryEvent has been cancelled for " + player.getName() + "...");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -145,7 +145,7 @@ public class AsynchronousJoin implements Process {
|
|||||||
service.send(player, MessageKey.SESSION_RECONNECTION);
|
service.send(player, MessageKey.SESSION_RECONNECTION);
|
||||||
plugin.getManagement().performLogin(player, "dontneed", true);
|
plugin.getManagement().performLogin(player, "dontneed", true);
|
||||||
return;
|
return;
|
||||||
} else if (Settings.sessionExpireOnIpChange) {
|
} else if (service.getProperty(PluginSettings.SESSIONS_EXPIRE_ON_IP_CHANGE)) {
|
||||||
service.send(player, MessageKey.SESSION_EXPIRED);
|
service.send(player, MessageKey.SESSION_EXPIRED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -153,7 +153,7 @@ public class AsynchronousJoin implements Process {
|
|||||||
if (!Settings.unRegisteredGroup.isEmpty()) {
|
if (!Settings.unRegisteredGroup.isEmpty()) {
|
||||||
Utils.setGroup(player, Utils.GroupType.UNREGISTERED);
|
Utils.setGroup(player, Utils.GroupType.UNREGISTERED);
|
||||||
}
|
}
|
||||||
if (!Settings.isForcedRegistrationEnabled) {
|
if (!service.getProperty(RegistrationSettings.FORCE)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,7 +184,8 @@ public class AsynchronousJoin implements Process {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
player.setOp(false);
|
player.setOp(false);
|
||||||
if (!Settings.isMovementAllowed && Settings.isRemoveSpeedEnabled) {
|
if (!service.getProperty(RestrictionSettings.ALLOW_UNAUTHED_MOVEMENT)
|
||||||
|
&& service.getProperty(RestrictionSettings.REMOVE_SPEED)) {
|
||||||
player.setFlySpeed(0.0f);
|
player.setFlySpeed(0.0f);
|
||||||
player.setWalkSpeed(0.0f);
|
player.setWalkSpeed(0.0f);
|
||||||
}
|
}
|
||||||
@ -211,7 +212,7 @@ public class AsynchronousJoin implements Process {
|
|||||||
if (isAuthAvailable) {
|
if (isAuthAvailable) {
|
||||||
msg = MessageKey.LOGIN_MESSAGE;
|
msg = MessageKey.LOGIN_MESSAGE;
|
||||||
} else {
|
} else {
|
||||||
msg = Settings.emailRegistration
|
msg = service.getProperty(RegistrationSettings.USE_EMAIL_REGISTRATION)
|
||||||
? MessageKey.REGISTER_EMAIL_MESSAGE
|
? MessageKey.REGISTER_EMAIL_MESSAGE
|
||||||
: MessageKey.REGISTER_MESSAGE;
|
: MessageKey.REGISTER_MESSAGE;
|
||||||
}
|
}
|
||||||
@ -277,24 +278,22 @@ public class AsynchronousJoin implements Process {
|
|||||||
* @param name The name to check
|
* @param name The name to check
|
||||||
* @param ip The IP address of the player
|
* @param ip The IP address of the player
|
||||||
* @param domain The hostname of the IP address
|
* @param domain The hostname of the IP address
|
||||||
* @param settings The settings instance
|
|
||||||
* @return True if the name is restricted (IP/domain is not allowed for the given name),
|
* @return True if the name is restricted (IP/domain is not allowed for the given name),
|
||||||
* false if the restrictions are met or if the name has no restrictions to it
|
* false if the restrictions are met or if the name has no restrictions to it
|
||||||
*/
|
*/
|
||||||
private static boolean isNameRestricted(String name, String ip, String domain, NewSetting settings) {
|
private boolean isNameRestricted(String name, String ip, String domain) {
|
||||||
if (!settings.getProperty(RestrictionSettings.ENABLE_RESTRICTED_USERS)) {
|
if (!service.getProperty(RestrictionSettings.ENABLE_RESTRICTED_USERS)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean nameFound = false;
|
boolean nameFound = false;
|
||||||
for (String entry : settings.getProperty(RestrictionSettings.ALLOWED_RESTRICTED_USERS)) {
|
for (String entry : service.getProperty(RestrictionSettings.ALLOWED_RESTRICTED_USERS)) {
|
||||||
String[] args = entry.split(";");
|
String[] args = entry.split(";");
|
||||||
String testName = args[0];
|
String testName = args[0];
|
||||||
String testIp = args[1];
|
String testIp = args[1];
|
||||||
if (testName.equalsIgnoreCase(name)) {
|
if (testName.equalsIgnoreCase(name)) {
|
||||||
nameFound = true;
|
nameFound = true;
|
||||||
if ((ip != null && testIp.equals(ip))
|
if ((ip != null && testIp.equals(ip)) || (domain != null && testIp.equalsIgnoreCase(domain))) {
|
||||||
|| (domain != null && testIp.equalsIgnoreCase(domain))) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -302,7 +301,7 @@ public class AsynchronousJoin implements Process {
|
|||||||
return nameFound;
|
return nameFound;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasJoinedIp(String name, String ip, NewSetting settings) {
|
private boolean hasJoinedIp(String name, String ip) {
|
||||||
int count = 0;
|
int count = 0;
|
||||||
for (Player player : Utils.getOnlinePlayers()) {
|
for (Player player : Utils.getOnlinePlayers()) {
|
||||||
if (ip.equalsIgnoreCase(Utils.getPlayerIp(player))
|
if (ip.equalsIgnoreCase(Utils.getPlayerIp(player))
|
||||||
@ -310,6 +309,6 @@ public class AsynchronousJoin implements Process {
|
|||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return count >= settings.getProperty(RestrictionSettings.MAX_JOIN_PER_IP);
|
return count >= service.getProperty(RestrictionSettings.MAX_JOIN_PER_IP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ import fr.xephi.authme.process.ProcessService;
|
|||||||
import fr.xephi.authme.security.RandomString;
|
import fr.xephi.authme.security.RandomString;
|
||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
import fr.xephi.authme.settings.properties.DatabaseSettings;
|
import fr.xephi.authme.settings.properties.DatabaseSettings;
|
||||||
|
import fr.xephi.authme.settings.properties.EmailSettings;
|
||||||
import fr.xephi.authme.settings.properties.RegistrationSettings;
|
import fr.xephi.authme.settings.properties.RegistrationSettings;
|
||||||
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
||||||
import fr.xephi.authme.settings.properties.SecuritySettings;
|
import fr.xephi.authme.settings.properties.SecuritySettings;
|
||||||
@ -166,11 +167,12 @@ public class AsynchronousLogin implements Process {
|
|||||||
|
|
||||||
displayOtherAccounts(auth);
|
displayOtherAccounts(auth);
|
||||||
|
|
||||||
if (Settings.recallEmail && (StringUtils.isEmpty(email) || "your@email.com".equalsIgnoreCase(email))) {
|
if (service.getProperty(EmailSettings.RECALL_PLAYERS)
|
||||||
|
&& (StringUtils.isEmpty(email) || "your@email.com".equalsIgnoreCase(email))) {
|
||||||
service.send(player, MessageKey.ADD_EMAIL_MESSAGE);
|
service.send(player, MessageKey.ADD_EMAIL_MESSAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Settings.noConsoleSpam) {
|
if (!service.getProperty(SecuritySettings.REMOVE_SPAM_FROM_CONSOLE)) {
|
||||||
ConsoleLogger.info(realName + " logged in!");
|
ConsoleLogger.info(realName + " logged in!");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -212,7 +214,7 @@ public class AsynchronousLogin implements Process {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void displayOtherAccounts(PlayerAuth auth) {
|
private void displayOtherAccounts(PlayerAuth auth) {
|
||||||
if (!Settings.displayOtherAccounts || auth == null) {
|
if (!service.getProperty(RestrictionSettings.DISPLAY_OTHER_ACCOUNTS) || auth == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,15 +31,14 @@ public final class Settings {
|
|||||||
public static List<String> countriesBlacklist;
|
public static List<String> countriesBlacklist;
|
||||||
public static HashAlgorithm getPasswordHash;
|
public static HashAlgorithm getPasswordHash;
|
||||||
public static Pattern nickPattern;
|
public static Pattern nickPattern;
|
||||||
public static boolean isChatAllowed, isPermissionCheckEnabled,
|
public static boolean isPermissionCheckEnabled,
|
||||||
isForcedRegistrationEnabled, isTeleportToSpawnEnabled,
|
isForcedRegistrationEnabled, isTeleportToSpawnEnabled,
|
||||||
isSessionsEnabled, isAllowRestrictedIp, isMovementAllowed,
|
isSessionsEnabled, isAllowRestrictedIp,
|
||||||
isForceSingleSessionEnabled, isForceSpawnLocOnJoinEnabled,
|
isForceSingleSessionEnabled, isForceSpawnLocOnJoinEnabled,
|
||||||
isSaveQuitLocationEnabled, protectInventoryBeforeLogInEnabled,
|
isSaveQuitLocationEnabled, protectInventoryBeforeLogInEnabled,
|
||||||
isStopEnabled, reloadSupport, rakamakUseIp, noConsoleSpam,
|
isStopEnabled, reloadSupport, rakamakUseIp,
|
||||||
removePassword, displayOtherAccounts, emailRegistration,
|
removePassword, multiverse, bungee,
|
||||||
multiverse, bungee, banUnsafeIp, sessionExpireOnIpChange,
|
enableProtection, forceRegLogin, noTeleport,
|
||||||
enableProtection, recallEmail, forceRegLogin, noTeleport,
|
|
||||||
allowAllCommandsIfRegIsOptional, isRemoveSpeedEnabled;
|
allowAllCommandsIfRegIsOptional, isRemoveSpeedEnabled;
|
||||||
public static String getNickRegex, getUnloggedinGroup,
|
public static String getNickRegex, getUnloggedinGroup,
|
||||||
unRegisteredGroup, backupWindowsPath, getRegisteredGroup,
|
unRegisteredGroup, backupWindowsPath, getRegisteredGroup,
|
||||||
@ -68,13 +67,11 @@ public final class Settings {
|
|||||||
isSessionsEnabled = load(PluginSettings.SESSIONS_ENABLED);
|
isSessionsEnabled = load(PluginSettings.SESSIONS_ENABLED);
|
||||||
getSessionTimeout = configFile.getInt("settings.sessions.timeout", 10);
|
getSessionTimeout = configFile.getInt("settings.sessions.timeout", 10);
|
||||||
getRegistrationTimeout = load(RestrictionSettings.TIMEOUT);
|
getRegistrationTimeout = load(RestrictionSettings.TIMEOUT);
|
||||||
isChatAllowed = load(RestrictionSettings.ALLOW_CHAT);
|
|
||||||
getMaxNickLength = configFile.getInt("settings.restrictions.maxNicknameLength", 20);
|
getMaxNickLength = configFile.getInt("settings.restrictions.maxNicknameLength", 20);
|
||||||
getMinNickLength = configFile.getInt("settings.restrictions.minNicknameLength", 3);
|
getMinNickLength = configFile.getInt("settings.restrictions.minNicknameLength", 3);
|
||||||
getNickRegex = configFile.getString("settings.restrictions.allowedNicknameCharacters", "[a-zA-Z0-9_?]*");
|
getNickRegex = configFile.getString("settings.restrictions.allowedNicknameCharacters", "[a-zA-Z0-9_?]*");
|
||||||
nickPattern = Pattern.compile(getNickRegex);
|
nickPattern = Pattern.compile(getNickRegex);
|
||||||
isAllowRestrictedIp = load(RestrictionSettings.ENABLE_RESTRICTED_USERS);
|
isAllowRestrictedIp = load(RestrictionSettings.ENABLE_RESTRICTED_USERS);
|
||||||
isMovementAllowed = load(RestrictionSettings.ALLOW_UNAUTHED_MOVEMENT);
|
|
||||||
isRemoveSpeedEnabled = load(RestrictionSettings.REMOVE_SPEED);
|
isRemoveSpeedEnabled = load(RestrictionSettings.REMOVE_SPEED);
|
||||||
isForceSingleSessionEnabled = load(RestrictionSettings.FORCE_SINGLE_SESSION);
|
isForceSingleSessionEnabled = load(RestrictionSettings.FORCE_SINGLE_SESSION);
|
||||||
isForceSpawnLocOnJoinEnabled = load(RestrictionSettings.FORCE_SPAWN_LOCATION_AFTER_LOGIN);
|
isForceSpawnLocOnJoinEnabled = load(RestrictionSettings.FORCE_SPAWN_LOCATION_AFTER_LOGIN);
|
||||||
@ -108,23 +105,17 @@ public final class Settings {
|
|||||||
rakamakUsers = configFile.getString("Converter.Rakamak.fileName", "users.rak");
|
rakamakUsers = configFile.getString("Converter.Rakamak.fileName", "users.rak");
|
||||||
rakamakUsersIp = configFile.getString("Converter.Rakamak.ipFileName", "UsersIp.rak");
|
rakamakUsersIp = configFile.getString("Converter.Rakamak.ipFileName", "UsersIp.rak");
|
||||||
rakamakUseIp = configFile.getBoolean("Converter.Rakamak.useIp", false);
|
rakamakUseIp = configFile.getBoolean("Converter.Rakamak.useIp", false);
|
||||||
noConsoleSpam = load(SecuritySettings.REMOVE_SPAM_FROM_CONSOLE);
|
|
||||||
removePassword = configFile.getBoolean("Security.console.removePassword", true);
|
removePassword = configFile.getBoolean("Security.console.removePassword", true);
|
||||||
displayOtherAccounts = configFile.getBoolean("settings.restrictions.displayOtherAccounts", true);
|
|
||||||
maxLoginTry = configFile.getInt("Security.captcha.maxLoginTry", 5);
|
maxLoginTry = configFile.getInt("Security.captcha.maxLoginTry", 5);
|
||||||
captchaLength = configFile.getInt("Security.captcha.captchaLength", 5);
|
captchaLength = configFile.getInt("Security.captcha.captchaLength", 5);
|
||||||
emailRegistration = load(RegistrationSettings.USE_EMAIL_REGISTRATION);
|
|
||||||
saltLength = configFile.getInt("settings.security.doubleMD5SaltLength", 8);
|
saltLength = configFile.getInt("settings.security.doubleMD5SaltLength", 8);
|
||||||
multiverse = load(HooksSettings.MULTIVERSE);
|
multiverse = load(HooksSettings.MULTIVERSE);
|
||||||
bungee = load(HooksSettings.BUNGEECORD);
|
bungee = load(HooksSettings.BUNGEECORD);
|
||||||
getForcedWorlds = configFile.getStringList("settings.restrictions.ForceSpawnOnTheseWorlds");
|
getForcedWorlds = configFile.getStringList("settings.restrictions.ForceSpawnOnTheseWorlds");
|
||||||
banUnsafeIp = configFile.getBoolean("settings.restrictions.banUnsafedIP", false);
|
|
||||||
sessionExpireOnIpChange = configFile.getBoolean("settings.sessions.sessionExpireOnIpChange", true);
|
|
||||||
bCryptLog2Rounds = configFile.getInt("ExternalBoardOptions.bCryptLog2Round", 10);
|
bCryptLog2Rounds = configFile.getInt("ExternalBoardOptions.bCryptLog2Round", 10);
|
||||||
defaultWorld = configFile.getString("Purge.defaultWorld", "world");
|
defaultWorld = configFile.getString("Purge.defaultWorld", "world");
|
||||||
enableProtection = configFile.getBoolean("Protection.enableProtection", false);
|
enableProtection = configFile.getBoolean("Protection.enableProtection", false);
|
||||||
countries = configFile.getStringList("Protection.countries");
|
countries = configFile.getStringList("Protection.countries");
|
||||||
recallEmail = configFile.getBoolean("Email.recallPlayers", false);
|
|
||||||
countriesBlacklist = configFile.getStringList("Protection.countriesBlacklist");
|
countriesBlacklist = configFile.getStringList("Protection.countriesBlacklist");
|
||||||
forceRegLogin = load(RegistrationSettings.FORCE_LOGIN_AFTER_REGISTER);
|
forceRegLogin = load(RegistrationSettings.FORCE_LOGIN_AFTER_REGISTER);
|
||||||
getMaxLoginPerIp = load(RestrictionSettings.MAX_LOGIN_PER_IP);
|
getMaxLoginPerIp = load(RestrictionSettings.MAX_LOGIN_PER_IP);
|
||||||
|
@ -18,13 +18,13 @@ public class RestrictionSettings implements SettingsClass {
|
|||||||
public static final Property<Boolean> ALLOW_CHAT =
|
public static final Property<Boolean> ALLOW_CHAT =
|
||||||
newProperty("settings.restrictions.allowChat", false);
|
newProperty("settings.restrictions.allowChat", false);
|
||||||
|
|
||||||
@Comment("Can not authenticated players see the chat log?")
|
@Comment("Hide the chat log from players who are not authenticated?")
|
||||||
public static final Property<Boolean> HIDE_CHAT =
|
public static final Property<Boolean> HIDE_CHAT =
|
||||||
newProperty("settings.restrictions.hideChat", false);
|
newProperty("settings.restrictions.hideChat", false);
|
||||||
|
|
||||||
@Comment({
|
@Comment({
|
||||||
"Allow unlogged users to use all the commands if registration is not forced!",
|
"Allow unlogged users to use all the commands if registration is not forced!",
|
||||||
"WARNING: use this only if you need it!)"})
|
"WARNING: use this only if you need it!"})
|
||||||
public static final Property<Boolean> ALLOW_ALL_COMMANDS_IF_REGISTRATION_IS_OPTIONAL =
|
public static final Property<Boolean> ALLOW_ALL_COMMANDS_IF_REGISTRATION_IS_OPTIONAL =
|
||||||
newProperty("settings.restrictions.allowAllCommandsIfRegistrationIsOptional", false);
|
newProperty("settings.restrictions.allowAllCommandsIfRegistrationIsOptional", false);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user