[DEV] [NEED TEST] BungeeCord
Add a way to send player login on other AuthMe instance through BungeeCord plugin channel
This commit is contained in:
parent
9c86fbd8bf
commit
d01713a2f5
@ -3,6 +3,9 @@ package fr.xephi.authme.hooks;
|
|||||||
import com.google.common.io.ByteArrayDataInput;
|
import com.google.common.io.ByteArrayDataInput;
|
||||||
import com.google.common.io.ByteStreams;
|
import com.google.common.io.ByteStreams;
|
||||||
import fr.xephi.authme.AuthMe;
|
import fr.xephi.authme.AuthMe;
|
||||||
|
import fr.xephi.authme.cache.auth.PlayerAuth;
|
||||||
|
import fr.xephi.authme.cache.auth.PlayerCache;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.messaging.PluginMessageListener;
|
import org.bukkit.plugin.messaging.PluginMessageListener;
|
||||||
|
|
||||||
@ -43,6 +46,30 @@ public class BungeeCordMessage implements PluginMessageListener {
|
|||||||
// Put the IP (only the ip not the port) in the hashMap
|
// Put the IP (only the ip not the port) in the hashMap
|
||||||
plugin.realIp.put(player.getName().toLowerCase(), ip);
|
plugin.realIp.put(player.getName().toLowerCase(), ip);
|
||||||
}
|
}
|
||||||
|
if (subChannel.equals("Forward"))
|
||||||
|
{
|
||||||
|
String str = in.readUTF();
|
||||||
|
if (!str.startsWith("AuthMe"))
|
||||||
|
return;
|
||||||
|
String[] args = str.split(";");
|
||||||
|
try {
|
||||||
|
String name = args[2];
|
||||||
|
PlayerAuth auth = plugin.database.getAuth(name);
|
||||||
|
if (auth == null)
|
||||||
|
return;
|
||||||
|
if (args[1].equalsIgnoreCase("login"))
|
||||||
|
{
|
||||||
|
PlayerCache.getInstance().addPlayer(auth);
|
||||||
|
plugin.database.setLogged(name);
|
||||||
|
}
|
||||||
|
else if (args[1].equalsIgnoreCase("logout"))
|
||||||
|
{
|
||||||
|
PlayerCache.getInstance().removePlayer(name);
|
||||||
|
plugin.database.setUnlogged(name);
|
||||||
|
}
|
||||||
|
} catch (Exception e)
|
||||||
|
{}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,6 +14,10 @@ import fr.xephi.authme.listener.AuthMePlayerListener;
|
|||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
import fr.xephi.authme.util.Utils;
|
import fr.xephi.authme.util.Utils;
|
||||||
import fr.xephi.authme.util.Utils.GroupType;
|
import fr.xephi.authme.util.Utils.GroupType;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.DataOutputStream;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -113,6 +117,21 @@ public class ProcessSyncronousPlayerLogin implements Runnable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void sendBungeeMessage() {
|
||||||
|
ByteArrayOutputStream b = new ByteArrayOutputStream();
|
||||||
|
DataOutputStream out = new DataOutputStream(b);
|
||||||
|
try {
|
||||||
|
String str = "AuthMe;login;" + name;
|
||||||
|
out.writeUTF("Forward");
|
||||||
|
out.writeUTF("ALL");
|
||||||
|
out.writeUTF("AuthMe");
|
||||||
|
out.writeShort(str.length());
|
||||||
|
out.writeUTF(str);
|
||||||
|
player.sendPluginMessage(plugin, "BungeeCord", b.toByteArray());
|
||||||
|
} catch (Exception e)
|
||||||
|
{}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method run.
|
* Method run.
|
||||||
*
|
*
|
||||||
@ -186,7 +205,8 @@ public class ProcessSyncronousPlayerLogin implements Runnable {
|
|||||||
// The Login event now fires (as intended) after everything is processed
|
// The Login event now fires (as intended) after everything is processed
|
||||||
Bukkit.getServer().getPluginManager().callEvent(new LoginEvent(player, true));
|
Bukkit.getServer().getPluginManager().callEvent(new LoginEvent(player, true));
|
||||||
player.saveData();
|
player.saveData();
|
||||||
|
if (Settings.bungee)
|
||||||
|
sendBungeeMessage();
|
||||||
// Login is finish, display welcome message
|
// Login is finish, display welcome message
|
||||||
if (Settings.useWelcomeMessage)
|
if (Settings.useWelcomeMessage)
|
||||||
if (Settings.broadcastWelcomeMessage) {
|
if (Settings.broadcastWelcomeMessage) {
|
||||||
|
|||||||
@ -9,6 +9,10 @@ import fr.xephi.authme.output.Messages;
|
|||||||
import fr.xephi.authme.settings.Settings;
|
import fr.xephi.authme.settings.Settings;
|
||||||
import fr.xephi.authme.task.MessageTask;
|
import fr.xephi.authme.task.MessageTask;
|
||||||
import fr.xephi.authme.task.TimeoutTask;
|
import fr.xephi.authme.task.TimeoutTask;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.DataOutputStream;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
@ -38,6 +42,21 @@ public class ProcessSyncronousPlayerLogout implements Runnable {
|
|||||||
this.name = player.getName().toLowerCase();
|
this.name = player.getName().toLowerCase();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void sendBungeeMessage() {
|
||||||
|
ByteArrayOutputStream b = new ByteArrayOutputStream();
|
||||||
|
DataOutputStream out = new DataOutputStream(b);
|
||||||
|
try {
|
||||||
|
String str = "AuthMe;login;" + name;
|
||||||
|
out.writeUTF("Forward");
|
||||||
|
out.writeUTF("ALL");
|
||||||
|
out.writeUTF("AuthMe");
|
||||||
|
out.writeShort(str.length());
|
||||||
|
out.writeUTF(str);
|
||||||
|
player.sendPluginMessage(plugin, "BungeeCord", b.toByteArray());
|
||||||
|
} catch (Exception e)
|
||||||
|
{}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method run.
|
* Method run.
|
||||||
*
|
*
|
||||||
@ -76,6 +95,8 @@ public class ProcessSyncronousPlayerLogout implements Runnable {
|
|||||||
}
|
}
|
||||||
// Player is now logout... Time to fire event !
|
// Player is now logout... Time to fire event !
|
||||||
Bukkit.getServer().getPluginManager().callEvent(new LogoutEvent(player));
|
Bukkit.getServer().getPluginManager().callEvent(new LogoutEvent(player));
|
||||||
|
if (Settings.bungee)
|
||||||
|
sendBungeeMessage();
|
||||||
m.send(player, MessageKey.LOGOUT_SUCCESS);
|
m.send(player, MessageKey.LOGOUT_SUCCESS);
|
||||||
ConsoleLogger.info(player.getName() + " logged out");
|
ConsoleLogger.info(player.getName() + " logged out");
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user