Implement forwardSkin + forwardUUID config option for Bungee

This commit is contained in:
games647
2016-04-27 17:13:27 +02:00
parent 57a59045ce
commit 36974450ce
2 changed files with 31 additions and 5 deletions

View File

@ -23,10 +23,10 @@
<url>https://repo.ellune.net/content/repositories/snapshots/</url>
</repository>-->
<!-- BungeeCord -->
<!--BungeeCord with also the part outside the API-->
<repository>
<id>bungeecord-repo</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<id>RYRED-REPO</id>
<url>http://mvn.ryred.co/repository/snapshots/</url>
</repository>
<!--Github automatic maven builds-->
@ -39,9 +39,8 @@
<dependencies>
<dependency>
<groupId>net.md-5</groupId>
<artifactId>bungeecord-api</artifactId>
<artifactId>bungeecord-proxy</artifactId>
<version>1.9-SNAPSHOT</version>
<type>jar</type>
<scope>provided</scope>
</dependency>
<!-- <dependency>

View File

@ -1,6 +1,7 @@
package com.github.games647.fastlogin.bungee;
import com.github.games647.fastlogin.bungee.hooks.BungeeAuthPlugin;
import com.google.common.base.Charsets;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
@ -11,10 +12,14 @@ import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.connection.PendingConnection;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.connection.Server;
import net.md_5.bungee.api.event.LoginEvent;
import net.md_5.bungee.api.event.PluginMessageEvent;
import net.md_5.bungee.api.event.PreLoginEvent;
import net.md_5.bungee.api.event.ServerConnectedEvent;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.connection.InitialHandler;
import net.md_5.bungee.connection.LoginResult;
import net.md_5.bungee.connection.LoginResult.Property;
import net.md_5.bungee.event.EventHandler;
/**
@ -58,6 +63,28 @@ public class PlayerConnectionListener implements Listener {
}
}
@EventHandler
public void onLogin(LoginEvent loginEvent) {
PendingConnection connection = loginEvent.getConnection();
String username = connection.getName();
if (connection.isOnlineMode()) {
//bungeecord will do this automatically so override it on disabled option
if (!plugin.getConfiguration().getBoolean("premiumUuid")) {
UUID offlineUUID = UUID.nameUUIDFromBytes(("OfflinePlayer:" + username).getBytes(Charsets.UTF_8));
connection.setUniqueId(offlineUUID);
}
if (!plugin.getConfiguration().getBoolean("forwardSkin")) {
InitialHandler initialHandler = (InitialHandler) connection;
//this is null on offline mode
LoginResult loginProfile = initialHandler.getLoginProfile();
if (loginProfile != null) {
loginProfile.setProperties(new Property[]{});
}
}
}
}
@EventHandler
public void onServerConnected(ServerConnectedEvent serverConnectedEvent) {
ProxiedPlayer player = serverConnectedEvent.getPlayer();