From 403025afe74e465d5480174638e481ac0a25f3d0 Mon Sep 17 00:00:00 2001 From: JH3Y50N Date: Thu, 5 Mar 2020 22:11:23 -0300 Subject: [PATCH] Native support to AuthMe Legacy (BETA) NOT TESTED. --- .classpath | 18 +-- bin/JH_AuthMeBridge/bungee$1.class | Bin 1489 -> 1485 bytes bin/JH_AuthMeBridge/bungee.class | Bin 8514 -> 8510 bytes bin/JH_AuthMeBridge/spigot$1.class | Bin 1083 -> 1079 bytes bin/JH_AuthMeBridge/spigot.class | Bin 4168 -> 4168 bytes bungee.yml | 12 +- plugin.yml | 14 +-- src/JH_AuthMeBridge/spigot.java | 184 +++++++++++++++-------------- 8 files changed, 115 insertions(+), 113 deletions(-) diff --git a/.classpath b/.classpath index 1dedd36..2d92e36 100644 --- a/.classpath +++ b/.classpath @@ -1,9 +1,9 @@ - - - - - - - - - + + + + + + + + + diff --git a/bin/JH_AuthMeBridge/bungee$1.class b/bin/JH_AuthMeBridge/bungee$1.class index e67a3a02aa7c25279461f5262432b86ee69312d1..facc3cd509f6217328c9d771f99b5214305aa0c6 100644 GIT binary patch delta 47 zcmcb}eU^K}6c#0W1||k(1_lOhE$yugTv|HY8F)4Vxl9cFK$4Atk%3|JE*5b{0OQaH A?EnA( delta 51 zcmX@heUW>^6c#mS1||k(1_lOhE$yugTv|HY8F)4Vxl9cFK#~hcGcYhRux{SQBF+c^ D{|*QI diff --git a/bin/JH_AuthMeBridge/bungee.class b/bin/JH_AuthMeBridge/bungee.class index a08952e5867196a1513e4e4f96855dacbbafd4e6..5835a569a5b4b260e2c81d9d8f683ec16820215a 100644 GIT binary patch delta 45 zcmX@)w9je72MI=t%^xMg7$yA}gc%qZ+!(kR+!=%zyciT1d>GUjd>M2$r%2sn0{|fh B3YP!? delta 49 zcmdnzbjWGL2MI=-%^xMg7-fSPL>L$t+!(kR+!=%zyciT1d>GUjd>M2Y{1^;2CrI66 F0{}>03myOf diff --git a/bin/JH_AuthMeBridge/spigot$1.class b/bin/JH_AuthMeBridge/spigot$1.class index 4414f36bf51b6a9451e67c15ce0af6294b592eed..eb9dca01ddbde793c03c7846094e632de8966ec9 100644 GIT binary patch delta 39 vcmdnZv7KW>1v8`N4F delta 76 zcmX@1a6(~22oGb>=1`t0CS5BAK?Z9E2?iSmB?emtO$Iv#GX{Gg%Yng%!I2@1!HXe| f!IvSK!H*$>Az< logados = new ArrayList<>(); - - public Boolean isLogged(Player player){ - return logados.contains(player.getName()); - } - - public Boolean isLogged(String player){ - return logados.contains(player); - } -} +package JH_AuthMeBridge; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +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.java.JavaPlugin; +import org.bukkit.plugin.messaging.PluginMessageListener; +import org.bukkit.scheduler.BukkitRunnable; + +import fr.xephi.authme.events.LoginEvent; + +public class spigot extends JavaPlugin implements Listener, PluginMessageListener { + + /* + Made by Jheyson Henrique + */ + + @Override + public void onEnable() { + Bukkit.getPluginManager().registerEvents(this, this); + Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); + Bukkit.getMessenger().registerIncomingPluginChannel(this, "BungeeCord", this); + } + + @EventHandler + public void onLogin(LoginEvent event){ + try { + ByteArrayOutputStream b = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(b); + out.writeUTF("JH_AuthMeBridge"); + out.writeUTF(event.getPlayer().getName()); + Bukkit.getServer().sendPluginMessage(this, "BungeeCord", b.toByteArray()); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @EventHandler + public void onQuit(PlayerQuitEvent event){ + if(isLogged(event.getPlayer())){ + logados.remove(event.getPlayer().getName()); + } + } + + @Override + public void onPluginMessageReceived(String channel, Player p, byte[] message) { + + try { + DataInputStream in = new DataInputStream(new ByteArrayInputStream(message)); + String subchannel = in.readUTF(); + //System.out.println((p != null ? p.getName() : " not found ") + " received from channel" + channel + " and subchannel " + subchannel); + if(subchannel.equals("JH_AuthMeBridge")){ + String input = in.readUTF(); + if(isLogged(input))return; + Player player = Bukkit.getPlayer(input); + if(player != null && player.isOnline()){ + new BukkitRunnable() + { + public void run() + { + // For older versions of Authme + //fr.xephi.authme.api.API.forceLogin(player); + fr.xephi.authme.api.v3.AuthMeApi.getInstance().forceLogin(player); + logados.add(player.getName()); + } + }.runTaskLater(this, 25L); + } + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + List logados = new ArrayList<>(); + + public Boolean isLogged(Player player){ + return logados.contains(player.getName()); + } + + public Boolean isLogged(String player){ + return logados.contains(player); + } +}