2018-08-26 12:56:17 +02:00
|
|
|
package JH_AuthMeBridge;
|
|
|
|
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
|
import java.io.DataInputStream;
|
|
|
|
import java.io.DataOutputStream;
|
|
|
|
import java.io.IOException;
|
2018-10-07 23:54:14 +02:00
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
2018-08-26 12:56:17 +02:00
|
|
|
|
|
|
|
import org.bukkit.Bukkit;
|
|
|
|
import org.bukkit.entity.Player;
|
|
|
|
import org.bukkit.event.EventHandler;
|
|
|
|
import org.bukkit.event.Listener;
|
2018-10-07 23:54:14 +02:00
|
|
|
import org.bukkit.event.player.PlayerQuitEvent;
|
2018-08-26 12:56:17 +02:00
|
|
|
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 {
|
2019-08-27 18:22:26 +02:00
|
|
|
|
|
|
|
/*
|
|
|
|
Made by Jheyson Henrique
|
|
|
|
*/
|
|
|
|
|
2018-08-26 12:56:17 +02:00
|
|
|
@Override
|
|
|
|
public void onEnable() {
|
|
|
|
Bukkit.getPluginManager().registerEvents(this, this);
|
2018-10-07 23:54:14 +02:00
|
|
|
Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
|
2018-08-26 12:56:17 +02:00
|
|
|
Bukkit.getMessenger().registerIncomingPluginChannel(this, "BungeeCord", this);
|
|
|
|
}
|
|
|
|
|
|
|
|
@EventHandler
|
2018-10-07 23:54:14 +02:00
|
|
|
public void onLogin(LoginEvent event){
|
2018-08-26 12:56:17 +02:00
|
|
|
try {
|
2018-10-07 23:54:14 +02:00
|
|
|
ByteArrayOutputStream b = new ByteArrayOutputStream();
|
|
|
|
DataOutputStream out = new DataOutputStream(b);
|
2018-08-26 12:56:17 +02:00
|
|
|
out.writeUTF("JH_AuthMeBridge");
|
|
|
|
out.writeUTF(event.getPlayer().getName());
|
2018-10-07 23:54:14 +02:00
|
|
|
Bukkit.getServer().sendPluginMessage(this, "BungeeCord", b.toByteArray());
|
2018-08-26 12:56:17 +02:00
|
|
|
} catch (IOException e) {
|
|
|
|
e.printStackTrace();
|
2018-10-07 23:54:14 +02:00
|
|
|
}
|
2018-08-26 12:56:17 +02:00
|
|
|
}
|
|
|
|
|
2018-10-07 23:54:14 +02:00
|
|
|
@EventHandler
|
|
|
|
public void onQuit(PlayerQuitEvent event){
|
|
|
|
if(isLogged(event.getPlayer())){
|
|
|
|
logados.remove(event.getPlayer().getName());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-08-26 12:56:17 +02:00
|
|
|
@Override
|
2018-10-07 23:54:14 +02:00
|
|
|
public void onPluginMessageReceived(String channel, Player p, byte[] message) {
|
2018-08-26 12:56:17 +02:00
|
|
|
try {
|
2018-10-07 23:54:14 +02:00
|
|
|
DataInputStream in = new DataInputStream(new ByteArrayInputStream(message));
|
2018-08-26 12:56:17 +02:00
|
|
|
String subchannel = in.readUTF();
|
|
|
|
if(subchannel.equals("JH_AuthMeBridge")){
|
2018-10-07 23:54:14 +02:00
|
|
|
String input = in.readUTF();
|
|
|
|
if(isLogged(input))return;
|
2018-08-26 12:56:17 +02:00
|
|
|
Player player = Bukkit.getPlayer(input);
|
2018-10-07 23:54:14 +02:00
|
|
|
if(player != null && player.isOnline()){
|
2018-08-26 12:56:17 +02:00
|
|
|
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);
|
2018-10-07 23:54:14 +02:00
|
|
|
logados.add(player.getName());
|
2018-08-26 12:56:17 +02:00
|
|
|
}
|
2019-08-27 18:22:26 +02:00
|
|
|
}.runTaskLater(this, 25L);
|
2018-08-26 12:56:17 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (IOException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
2018-10-07 23:54:14 +02:00
|
|
|
|
|
|
|
List<String> logados = new ArrayList<>();
|
|
|
|
|
|
|
|
public Boolean isLogged(Player player){
|
|
|
|
return logados.contains(player.getName());
|
|
|
|
}
|
|
|
|
|
|
|
|
public Boolean isLogged(String player){
|
|
|
|
return logados.contains(player);
|
|
|
|
}
|
2018-08-26 12:56:17 +02:00
|
|
|
}
|