Merge branch 'master' of https://github.com/AuthMe-Team/AuthMeReloaded into 674-purge-process-refactor
This commit is contained in:
commit
d35005167e
@ -192,31 +192,28 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
@EventHandler(priority = EventPriority.LOW)
|
@EventHandler(priority = EventPriority.LOW)
|
||||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
if (player != null) {
|
management.performJoin(player);
|
||||||
// Schedule login task so works after the prelogin
|
|
||||||
// (Fix found by Koolaid5000)
|
|
||||||
bukkitService.runTask(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
management.performJoin(player);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note ljacqu 20160528: AsyncPlayerPreLoginEvent is not fired by all servers in offline mode
|
// Note ljacqu 20160528: AsyncPlayerPreLoginEvent is not fired by all servers in offline mode
|
||||||
// e.g. CraftBukkit does not. So we need to run crucial things in onPlayerLogin, too
|
// e.g. CraftBukkit does not. So we need to run crucial things in onPlayerLogin, too
|
||||||
|
|
||||||
|
// Note sgdc3 20160619: No performance improvements if we do the same thing on the Sync method
|
||||||
|
// let's try to remove this, about the single session issue,
|
||||||
|
// i tried to use the low priority to the sync handler
|
||||||
|
|
||||||
|
/*
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
public void onPreLogin(AsyncPlayerPreLoginEvent event) {
|
public void onPreLogin(AsyncPlayerPreLoginEvent event) {
|
||||||
final String name = event.getName().toLowerCase();
|
final String name = event.getName().toLowerCase();
|
||||||
final boolean isAuthAvailable = dataSource.isAuthAvailable(event.getName());
|
//final boolean isAuthAvailable = dataSource.isAuthAvailable(event.getName());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Potential performance improvement: make checkAntiBot not require `isAuthAvailable` info and use
|
// Potential performance improvement: make checkAntiBot not require `isAuthAvailable` info and use
|
||||||
// "checkKickNonRegistered" as last -> no need to query the DB before checking antibot / name
|
// "checkKickNonRegistered" as last -> no need to query the DB before checking antibot / name
|
||||||
onJoinVerifier.checkAntibot(name, isAuthAvailable);
|
// onJoinVerifier.checkAntibot(name, isAuthAvailable);
|
||||||
onJoinVerifier.checkKickNonRegistered(isAuthAvailable);
|
// onJoinVerifier.checkKickNonRegistered(isAuthAvailable);
|
||||||
onJoinVerifier.checkIsValidName(name);
|
// onJoinVerifier.checkIsValidName(name);
|
||||||
// Note #760: Single session must be checked here - checking with PlayerLoginEvent is too late and
|
// Note #760: Single session must be checked here - checking with PlayerLoginEvent is too late and
|
||||||
// the first connection will have been kicked. This means this feature doesn't work on CraftBukkit.
|
// the first connection will have been kicked. This means this feature doesn't work on CraftBukkit.
|
||||||
onJoinVerifier.checkSingleSession(name);
|
onJoinVerifier.checkSingleSession(name);
|
||||||
@ -225,8 +222,9 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER);
|
event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.LOW)
|
||||||
public void onPlayerLogin(PlayerLoginEvent event) {
|
public void onPlayerLogin(PlayerLoginEvent event) {
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
if (Utils.isUnrestricted(player)) {
|
if (Utils.isUnrestricted(player)) {
|
||||||
@ -237,12 +235,14 @@ public class AuthMePlayerListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final String name = player.getName().toLowerCase();
|
final String name = player.getName();
|
||||||
|
final String lowerName = name.toLowerCase();
|
||||||
final PlayerAuth auth = dataSource.getAuth(player.getName());
|
final PlayerAuth auth = dataSource.getAuth(player.getName());
|
||||||
final boolean isAuthAvailable = (auth != null);
|
final boolean isAuthAvailable = (auth != null);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
onJoinVerifier.checkAntibot(name, isAuthAvailable);
|
onJoinVerifier.checkSingleSession(lowerName);
|
||||||
|
onJoinVerifier.checkAntibot(lowerName, isAuthAvailable);
|
||||||
onJoinVerifier.checkKickNonRegistered(isAuthAvailable);
|
onJoinVerifier.checkKickNonRegistered(isAuthAvailable);
|
||||||
onJoinVerifier.checkIsValidName(name);
|
onJoinVerifier.checkIsValidName(name);
|
||||||
onJoinVerifier.checkNameCasing(player, auth);
|
onJoinVerifier.checkNameCasing(player, auth);
|
||||||
|
|||||||
@ -14,20 +14,24 @@ import com.comphenix.protocol.wrappers.EnumWrappers.PlayerInfoAction;
|
|||||||
import com.comphenix.protocol.wrappers.PlayerInfoData;
|
import com.comphenix.protocol.wrappers.PlayerInfoData;
|
||||||
import com.comphenix.protocol.wrappers.WrappedChatComponent;
|
import com.comphenix.protocol.wrappers.WrappedChatComponent;
|
||||||
import com.comphenix.protocol.wrappers.WrappedGameProfile;
|
import com.comphenix.protocol.wrappers.WrappedGameProfile;
|
||||||
|
|
||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
import fr.xephi.authme.ConsoleLogger;
|
import fr.xephi.authme.ConsoleLogger;
|
||||||
import fr.xephi.authme.cache.auth.PlayerCache;
|
import fr.xephi.authme.cache.auth.PlayerCache;
|
||||||
import fr.xephi.authme.util.BukkitService;
|
import fr.xephi.authme.util.BukkitService;
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class AuthMeTablistPacketAdapter extends PacketAdapter {
|
public class AuthMeTablistPacketAdapter extends PacketAdapter {
|
||||||
|
|
||||||
private final BukkitService bukkitService;
|
private final BukkitService bukkitService;
|
||||||
|
private boolean isRegistered;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public AuthMeTablistPacketAdapter(AuthMe plugin, BukkitService bukkitService) {
|
public AuthMeTablistPacketAdapter(AuthMe plugin, BukkitService bukkitService) {
|
||||||
@ -50,6 +54,10 @@ public class AuthMeTablistPacketAdapter extends PacketAdapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void sendTablist(Player receiver) {
|
public void sendTablist(Player receiver) {
|
||||||
|
if (!isRegistered) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
WrappedGameProfile gameProfile = WrappedGameProfile.fromPlayer(receiver);
|
WrappedGameProfile gameProfile = WrappedGameProfile.fromPlayer(receiver);
|
||||||
|
|
||||||
ProtocolManager protocolManager = ProtocolLibrary.getProtocolManager();
|
ProtocolManager protocolManager = ProtocolLibrary.getProtocolManager();
|
||||||
@ -85,6 +93,7 @@ public class AuthMeTablistPacketAdapter extends PacketAdapter {
|
|||||||
public void register() {
|
public void register() {
|
||||||
if (MinecraftVersion.getCurrentVersion().isAtLeast(MinecraftVersion.BOUNTIFUL_UPDATE)) {
|
if (MinecraftVersion.getCurrentVersion().isAtLeast(MinecraftVersion.BOUNTIFUL_UPDATE)) {
|
||||||
ProtocolLibrary.getProtocolManager().addPacketListener(this);
|
ProtocolLibrary.getProtocolManager().addPacketListener(this);
|
||||||
|
isRegistered = true;
|
||||||
} else {
|
} else {
|
||||||
ConsoleLogger.info("The hideTablist feature is not compatible with your minecraft version");
|
ConsoleLogger.info("The hideTablist feature is not compatible with your minecraft version");
|
||||||
ConsoleLogger.info("It requires 1.8+. Disabling the hideTablist feature...");
|
ConsoleLogger.info("It requires 1.8+. Disabling the hideTablist feature...");
|
||||||
@ -93,5 +102,6 @@ public class AuthMeTablistPacketAdapter extends PacketAdapter {
|
|||||||
|
|
||||||
public void unregister() {
|
public void unregister() {
|
||||||
ProtocolLibrary.getProtocolManager().removePacketListener(this);
|
ProtocolLibrary.getProtocolManager().removePacketListener(this);
|
||||||
|
isRegistered = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,9 +49,10 @@ public class ProcessSynchronousPlayerLogout implements SynchronousProcess {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void restoreSpeedEffect(Player player) {
|
private void restoreSpeedEffect(Player player) {
|
||||||
if (service.getProperty(RestrictionSettings.REMOVE_SPEED)) {
|
if (!service.getProperty(RestrictionSettings.ALLOW_UNAUTHED_MOVEMENT)
|
||||||
player.setWalkSpeed(0.0F);
|
&& service.getProperty(RestrictionSettings.REMOVE_SPEED)) {
|
||||||
player.setFlySpeed(0.0F);
|
player.setFlySpeed(0.0f);
|
||||||
|
player.setWalkSpeed(0.0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -27,7 +27,7 @@ import org.bukkit.potion.PotionEffectType;
|
|||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import static fr.xephi.authme.settings.properties.RestrictionSettings.HIDE_TABLIST_BEFORE_LOGIN;
|
import static fr.xephi.authme.settings.properties.RestrictionSettings.PROTECT_INVENTORY_BEFORE_LOGIN;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
@ -98,7 +98,7 @@ public class ProcessSyncPasswordRegister implements SynchronousProcess {
|
|||||||
|
|
||||||
Utils.teleportToSpawn(player);
|
Utils.teleportToSpawn(player);
|
||||||
|
|
||||||
if (service.getProperty(HIDE_TABLIST_BEFORE_LOGIN) && plugin.inventoryProtector != null) {
|
if (service.getProperty(PROTECT_INVENTORY_BEFORE_LOGIN) && plugin.inventoryProtector != null) {
|
||||||
RestoreInventoryEvent event = new RestoreInventoryEvent(player);
|
RestoreInventoryEvent event = new RestoreInventoryEvent(player);
|
||||||
bukkitService.callEvent(event);
|
bukkitService.callEvent(event);
|
||||||
if (!event.isCancelled()) {
|
if (!event.isCancelled()) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user