diff --git a/bukkit/pom.xml b/bukkit/pom.xml index 6abd4b73..e2e4d4f8 100644 --- a/bukkit/pom.xml +++ b/bukkit/pom.xml @@ -51,6 +51,12 @@ jitpack.io https://jitpack.io + + + + placeholderapi + http://repo.extendedclip.com/content/repositories/placeholderapi/ + @@ -76,12 +82,26 @@ 3.6.5 - - com.github.ProtocolSupport - ProtocolSupport + + com.github.ProtocolSupport + ProtocolSupport - a4f060dc46 - + a4f060dc46 + + + + me.clip + placeholderapi + 2.6.0 + provided + true + + + * + * + + + @@ -110,10 +130,10 @@ - - com.github.games647 - LogIt - 9e3581db27 + + com.github.games647 + LogIt + 9e3581db27 true provided @@ -122,7 +142,7 @@ * - + com.github.RoyalDev diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java index 1a6b650c..5f8ac26a 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/FastLoginBukkit.java @@ -27,6 +27,8 @@ import java.util.concurrent.ThreadFactory; import java.util.logging.Level; import java.util.logging.Logger; +import me.clip.placeholderapi.PlaceholderAPI; + import net.md_5.bungee.api.ChatColor; import org.bukkit.command.CommandSender; @@ -49,7 +51,7 @@ public class FastLoginBukkit extends JavaPlugin implements PlatformPlugin session = FastLoginCore.buildCache(1, -1); + private final ConcurrentMap loginSession = FastLoginCore.buildCache(1, -1); @Override public void onEnable() { @@ -64,7 +66,7 @@ public class FastLoginBukkit extends JavaPlugin implements PlatformPlugin getSessions() { - return session; + public ConcurrentMap getLoginSessions() { + return loginSession; } /** diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/PremiumPlaceholder.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/PremiumPlaceholder.java new file mode 100644 index 00000000..81cc30b3 --- /dev/null +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/PremiumPlaceholder.java @@ -0,0 +1,35 @@ +package com.github.games647.fastlogin.bukkit; + +import me.clip.placeholderapi.PlaceholderHook; + +import org.bukkit.entity.Player; +import org.bukkit.metadata.MetadataValue; + +import java.util.List; + +public class PremiumPlaceholder extends PlaceholderHook { + + private final FastLoginBukkit plugin; + + public PremiumPlaceholder(FastLoginBukkit plugin) { + this.plugin = plugin; + } + + @Override + public String onPlaceholderRequest(Player player, String variable) { + if (player != null && "fastlogin_status".contains(variable)) { + List metadata = player.getMetadata(plugin.getName()); + if (metadata == null) { + return "unknown"; + } + + if (metadata.size() > 0) { + return "premium"; + } else { + return "cracked"; + } + } + + return null; + } +} diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/BungeeCordListener.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/BungeeCordListener.java index f6d1d004..93146be8 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/BungeeCordListener.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/BungeeCordListener.java @@ -58,9 +58,6 @@ public class BungeeCordListener implements PluginMessageListener { Player checkedPlayer = plugin.getServer().getPlayerExact(playerName); //fail if target player is blacklisted because already authed or wrong bungeecord id if (checkedPlayer != null && !checkedPlayer.hasMetadata(plugin.getName())) { - //blacklist this target player for BungeeCord Id brute force attacks - player.setMetadata(plugin.getName(), new FixedMetadataValue(plugin, true)); - //bungeecord UUID long mostSignificantBits = dataInput.readLong(); long leastSignificantBits = dataInput.readLong(); @@ -80,7 +77,7 @@ public class BungeeCordListener implements PluginMessageListener { if ("AUTO_LOGIN".equalsIgnoreCase(subchannel)) { BukkitLoginSession playerSession = new BukkitLoginSession(playerName, true); playerSession.setVerified(true); - plugin.getSessions().put(id, playerSession); + plugin.getLoginSessions().put(id, playerSession); Bukkit.getScheduler().runTaskAsynchronously(plugin, new ForceLoginTask(plugin.getCore(), player)); } else if ("AUTO_REGISTER".equalsIgnoreCase(subchannel)) { Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> { @@ -90,7 +87,7 @@ public class BungeeCordListener implements PluginMessageListener { if (authPlugin == null || !authPlugin.isRegistered(playerName)) { BukkitLoginSession playerSession = new BukkitLoginSession(playerName, false); playerSession.setVerified(true); - plugin.getSessions().put(id, playerSession); + plugin.getLoginSessions().put(id, playerSession); new ForceLoginTask(plugin.getCore(), player).run(); } } catch (Exception ex) { diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/LoginSkinApplyListener.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/LoginSkinApplyListener.java index 9c7f4c50..eb429239 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/LoginSkinApplyListener.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/LoginSkinApplyListener.java @@ -43,7 +43,7 @@ public class LoginSkinApplyListener implements Listener { if (plugin.getConfig().getBoolean("forwardSkin")) { //go through every session, because player.getAddress is null //loginEvent.getAddress is just a InetAddress not InetSocketAddres, so not unique enough - for (BukkitLoginSession session : plugin.getSessions().values()) { + for (BukkitLoginSession session : plugin.getLoginSessions().values()) { if (session.getUsername().equals(player.getName())) { String signature = session.getSkinSignature(); String skinData = session.getEncodedSkinData(); diff --git a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/NameCheckTask.java b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/NameCheckTask.java index 38e31ee9..57955439 100644 --- a/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/NameCheckTask.java +++ b/bukkit/src/main/java/com/github/games647/fastlogin/bukkit/listener/protocollib/NameCheckTask.java @@ -61,7 +61,7 @@ public class NameCheckTask extends JoinManagement premium player if (propertiesResolveEvent.hasProperty("textures") && session != null) { @@ -60,7 +60,7 @@ public class ProtocolSupportListener extends JoinManagement { @@ -25,7 +26,11 @@ public class ForceLoginTask extends ForceLoginMangement