It works!
This commit is contained in:
parent
5cf88f308a
commit
401933038d
@ -22,7 +22,7 @@ import fr.xephi.authme.listener.PlayerListener;
|
||||
import fr.xephi.authme.listener.PlayerListener111;
|
||||
import fr.xephi.authme.listener.PlayerListener19;
|
||||
import fr.xephi.authme.listener.PlayerListener19Spigot;
|
||||
import fr.xephi.authme.listener.PlayerQuitListener;
|
||||
import fr.xephi.authme.listener.DoubleLoginFixListener;
|
||||
import fr.xephi.authme.listener.GuiCaptchaHandler;
|
||||
import fr.xephi.authme.listener.ServerListener;
|
||||
import fr.xephi.authme.mail.EmailService;
|
||||
@ -85,7 +85,7 @@ public class AuthMe extends JavaPlugin {
|
||||
private BukkitService bukkitService;
|
||||
private Injector injector;
|
||||
private BackupService backupService;
|
||||
private ConsoleLogger logger;
|
||||
public static ConsoleLogger logger;
|
||||
/**
|
||||
* Constructor.
|
||||
*/
|
||||
@ -207,7 +207,7 @@ public class AuthMe extends JavaPlugin {
|
||||
// 注册玩家退出事件监听
|
||||
if (settings.getProperty(SecuritySettings.ANTI_GHOST_PLAYERS) || settings.getProperty(SecuritySettings.SMART_ASYNC_TELEPORT)/* || settings.getProperty(SecuritySettings.GUI_CAPTCHA)*/) {
|
||||
if (settings.getProperty(SecuritySettings.ANTI_GHOST_PLAYERS)) {
|
||||
getServer().getPluginManager().registerEvents(new PlayerQuitListener((Plugin) this), this);
|
||||
getServer().getPluginManager().registerEvents(new DoubleLoginFixListener((Plugin) this), this);
|
||||
}
|
||||
if (settings.getProperty(SecuritySettings.GUI_CAPTCHA) && getServer().getPluginManager().isPluginEnabled("ProtocolLib")) {
|
||||
getServer().getPluginManager().registerEvents(new GuiCaptchaHandler((Plugin) this), this);
|
||||
|
||||
@ -0,0 +1,50 @@
|
||||
package fr.xephi.authme.listener;
|
||||
//Prevent Ghost Players
|
||||
|
||||
import fr.xephi.authme.AuthMe;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
|
||||
public class DoubleLoginFixListener implements Listener {
|
||||
private final Plugin plugin;
|
||||
|
||||
|
||||
|
||||
public DoubleLoginFixListener(Plugin plugin) {
|
||||
this.plugin = plugin;
|
||||
|
||||
}
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
Collection<? extends Player> PlayerList = Bukkit.getServer().getOnlinePlayers();
|
||||
HashSet<String> PlayerSet = new HashSet<String>();
|
||||
for (Player ep : PlayerList) {
|
||||
if (PlayerSet.contains(ep.getName().toLowerCase())) {
|
||||
ep.kickPlayer("You have been disconnected due to doubled login.");
|
||||
break;
|
||||
}
|
||||
PlayerSet.add(ep.getName().toLowerCase());
|
||||
}
|
||||
}
|
||||
}
|
||||
// @EventHandler
|
||||
// public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
// Player player = event.getPlayer();
|
||||
// String LastAddr = Objects.requireNonNull(player.getAddress()).getAddress().getHostAddress();
|
||||
// Bukkit.getScheduler().runTaskLater(plugin, new Runnable() {
|
||||
// @Override
|
||||
// public void run() {
|
||||
// if (player.isOnline()) {
|
||||
// player.kickPlayer("You have been disconnected.");
|
||||
// }
|
||||
// }
|
||||
// }, 20L); // 20 ticks = 1 second
|
||||
// }
|
||||
//}
|
||||
@ -1,14 +1,11 @@
|
||||
package fr.xephi.authme.listener;
|
||||
|
||||
import com.comphenix.protocol.PacketType;
|
||||
import com.comphenix.protocol.ProtocolLibrary;
|
||||
import com.comphenix.protocol.events.ListenerPriority;
|
||||
import com.comphenix.protocol.events.PacketAdapter;
|
||||
import com.comphenix.protocol.events.PacketEvent;
|
||||
|
||||
import fr.xephi.authme.AuthMe;
|
||||
import fr.xephi.authme.api.v3.AuthMeApi;
|
||||
|
||||
import fr.xephi.authme.settings.properties.HooksSettings;
|
||||
import fr.xephi.authme.settings.properties.RestrictionSettings;
|
||||
import fr.xephi.authme.settings.properties.SecuritySettings;
|
||||
|
||||
@ -1,31 +0,0 @@
|
||||
package fr.xephi.authme.listener;
|
||||
//Prevent Ghost Players
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class PlayerQuitListener implements Listener {
|
||||
private final Plugin plugin;
|
||||
public PlayerQuitListener(Plugin plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
@EventHandler
|
||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
String LastAddr = Objects.requireNonNull(player.getAddress()).getAddress().getHostAddress();
|
||||
Bukkit.getScheduler().runTaskLater(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (player.isOnline()) {
|
||||
player.kickPlayer("You have been disconnected.");
|
||||
}
|
||||
}
|
||||
}, 20L); // 20 ticks = 1 second
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user