use of net.md_5.bungee.api.event.PostLoginEvent in project BungeeCord by SpigotMC.
the class InitialHandler method finish.
private void finish() {
if (isOnlineMode()) {
// Check for multiple connections
// We have to check for the old name first
ProxiedPlayer oldName = bungee.getPlayer(getName());
if (oldName != null) {
// TODO See #1218
oldName.disconnect(bungee.getTranslation("already_connected_proxy"));
}
// And then also for their old UUID
ProxiedPlayer oldID = bungee.getPlayer(getUniqueId());
if (oldID != null) {
// TODO See #1218
oldID.disconnect(bungee.getTranslation("already_connected_proxy"));
}
} else {
// In offline mode the existing user stays and we kick the new one
ProxiedPlayer oldName = bungee.getPlayer(getName());
if (oldName != null) {
// TODO See #1218
disconnect(bungee.getTranslation("already_connected_proxy"));
return;
}
}
offlineId = UUID.nameUUIDFromBytes(("OfflinePlayer:" + getName()).getBytes(Charsets.UTF_8));
if (uniqueId == null) {
uniqueId = offlineId;
}
Callback<LoginEvent> complete = new Callback<LoginEvent>() {
@Override
public void done(LoginEvent result, Throwable error) {
if (result.isCancelled()) {
disconnect(result.getCancelReasonComponents());
return;
}
if (ch.isClosed()) {
return;
}
ch.getHandle().eventLoop().execute(new Runnable() {
@Override
public void run() {
if (!ch.isClosing()) {
UserConnection userCon = new UserConnection(bungee, ch, getName(), InitialHandler.this);
userCon.setCompressionThreshold(BungeeCord.getInstance().config.getCompressionThreshold());
userCon.init();
unsafe.sendPacket(new LoginSuccess(getUniqueId(), getName()));
ch.setProtocol(Protocol.GAME);
ch.getHandle().pipeline().get(HandlerBoss.class).setHandler(new UpstreamBridge(bungee, userCon));
bungee.getPluginManager().callEvent(new PostLoginEvent(userCon));
ServerInfo server;
if (bungee.getReconnectHandler() != null) {
server = bungee.getReconnectHandler().getServer(userCon);
} else {
server = AbstractReconnectHandler.getForcedHost(InitialHandler.this);
}
if (server == null) {
server = bungee.getServerInfo(listener.getDefaultServer());
}
userCon.connect(server, null, true, ServerConnectEvent.Reason.JOIN_PROXY);
}
}
});
}
};
// fire login event
bungee.getPluginManager().callEvent(new LoginEvent(InitialHandler.this, complete));
}
use of net.md_5.bungee.api.event.PostLoginEvent in project CommandBlocker by TreyRuffy.
the class Update method onJoin.
@EventHandler
public void onJoin(PostLoginEvent e) {
if (!notifyAboutUpdate)
return;
MethodInterface mi = Universal.get().getMethods();
Configuration config = (Configuration) mi.getConfig();
if (!config.getBoolean("Updates.Check")) {
return;
}
if (!config.getBoolean("Updates.TellPlayers")) {
return;
}
ProxiedPlayer p = e.getPlayer();
if (!p.hasPermission("cb.updates")) {
return;
}
for (Component msgToSend : mi.getOldMessages("Updates", "UpdateFound")) {
HashMap<String, String> placeholders = new HashMap<>();
placeholders.put("%s", latestUpdateVersion);
mi.sendMessage(p, Variables.translateVariables(msgToSend, p, placeholders));
}
}
use of net.md_5.bungee.api.event.PostLoginEvent in project DiscordBot by LXGaming.
the class PlayerListener method onPostLogin.
@EventHandler(priority = EventPriority.HIGHEST)
public void onPostLogin(PostLoginEvent event) {
if (event.getPlayer() == null) {
return;
}
if (!DiscordBotCore.getInstance().getConfiguration().isPlayerJoin() || event.getPlayer().hasPermission("DiscordBot.Silent")) {
return;
}
Message message = new Message().setChannel(DiscordBotCore.getInstance().getConfiguration().getChannels().get("Global").getChannel()).setFormat(DiscordBotCore.getInstance().getConfiguration().getPlayerFormat().get("Join")).setName(event.getPlayer().getName()).setNick(event.getPlayer().getDisplayName()).setServer("Unknown").setMessage("Joined").setDiscord(true).setMinecraft(false).setConsole(false).setRedis(false);
if (event.getPlayer().getServer() != null && event.getPlayer().getServer().getInfo() != null) {
message.setServer(event.getPlayer().getServer().getInfo().getName());
}
DiscordBotCore.getInstance().getMessageSender().sendMessage(message);
return;
}
use of net.md_5.bungee.api.event.PostLoginEvent in project ChangeSkin by games647.
the class ConnectListener method onPlayerLogin.
@EventHandler(priority = EventPriority.HIGH)
public void onPlayerLogin(PostLoginEvent postLoginEvent) {
ProxiedPlayer player = postLoginEvent.getPlayer();
UserPreference preferences = plugin.getLoginSession(player.getPendingConnection());
if (preferences == null || isBlacklistEnabled()) {
return;
}
preferences.getTargetSkin().ifPresent(skin -> plugin.getApi().applySkin(player, skin));
}
use of net.md_5.bungee.api.event.PostLoginEvent in project HuskSync by WiIIiam278.
the class BungeeEventListener method onPostLogin.
@EventHandler(priority = EventPriority.LOWEST)
public void onPostLogin(PostLoginEvent event) {
final ProxiedPlayer player = event.getPlayer();
ProxyServer.getInstance().getScheduler().runAsync(plugin, () -> {
// Ensure the player has data on SQL and that it is up-to-date
HuskSyncBungeeCord.dataManager.ensurePlayerExists(player.getUniqueId(), player.getName());
// Get the player's data from SQL
final Map<Settings.SynchronisationCluster, PlayerData> data = HuskSyncBungeeCord.dataManager.getPlayerData(player.getUniqueId());
// Update the player's data from SQL onto the cache
assert data != null;
for (Settings.SynchronisationCluster cluster : data.keySet()) {
HuskSyncBungeeCord.dataManager.playerDataCache.get(cluster).updatePlayer(data.get(cluster));
}
// Send a message asking the bukkit to request data on join
try {
new RedisMessage(RedisMessage.MessageType.REQUEST_DATA_ON_JOIN, new RedisMessage.MessageTarget(Settings.ServerType.BUKKIT, null, null), RedisMessage.RequestOnJoinUpdateType.ADD_REQUESTER.toString(), player.getUniqueId().toString()).send();
} catch (IOException e) {
plugin.getBungeeLogger().log(Level.SEVERE, "Failed to serialize request data on join message data");
e.printStackTrace();
}
});
}
Aggregations