mirror of
https://github.com/GeyserMC/Floodgate.git
synced 2025-12-30 20:29:30 +00:00
Temp fix to make 1.13+ instant Skin updating work
This commit is contained in:
@@ -42,6 +42,7 @@ import org.geysermc.floodgate.config.loader.ConfigLoader;
|
||||
import org.geysermc.floodgate.link.PlayerLinkLoader;
|
||||
import org.geysermc.floodgate.module.ConfigLoadedModule;
|
||||
import org.geysermc.floodgate.module.PostInitializeModule;
|
||||
import org.geysermc.floodgate.platform.pluginmessage.PluginMessageHandler;
|
||||
import org.geysermc.floodgate.util.LanguageManager;
|
||||
|
||||
public class FloodgatePlatform {
|
||||
@@ -67,7 +68,7 @@ public class FloodgatePlatform {
|
||||
@Inject
|
||||
public void init(@Named("dataDirectory") Path dataDirectory, ConfigLoader configLoader,
|
||||
PlayerLinkLoader playerLinkLoader, HandshakeHandler handshakeHandler,
|
||||
Injector injector) {
|
||||
Injector injector, PluginMessageHandler pluginMessageHandler) {
|
||||
|
||||
if (!Files.isDirectory(dataDirectory)) {
|
||||
try {
|
||||
@@ -89,6 +90,7 @@ public class FloodgatePlatform {
|
||||
guice.injectMembers(languageManager);
|
||||
guice.injectMembers(playerLinkLoader);
|
||||
guice.injectMembers(handshakeHandler);
|
||||
guice.injectMembers(pluginMessageHandler);
|
||||
|
||||
PlayerLink link = playerLinkLoader.load();
|
||||
|
||||
|
||||
@@ -66,6 +66,7 @@ public abstract class SkinHandler {
|
||||
logger.info(uploadResult.getResponse().toString());
|
||||
messageHandler.sendSkinResponse(
|
||||
player.getJavaUniqueId(), uploadResult.getResponse().toString());
|
||||
applySkin(player, uploadResult);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
2
pom.xml
2
pom.xml
@@ -45,7 +45,7 @@
|
||||
|
||||
<properties>
|
||||
<geyser.version>1.2.0-SNAPSHOT</geyser.version>
|
||||
<spigot.version>1.12-R0.1-SNAPSHOT</spigot.version>
|
||||
<spigot.version>1.13-R0.1-SNAPSHOT</spigot.version>
|
||||
<bungee.version>1.15-SNAPSHOT</bungee.version>
|
||||
<velocity.version>1.1.0</velocity.version>
|
||||
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
|
||||
package org.geysermc.floodgate.pluginmessage;
|
||||
|
||||
import com.google.common.base.Charsets;
|
||||
import java.util.UUID;
|
||||
import org.apache.commons.codec.Charsets;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.plugin.messaging.Messenger;
|
||||
|
||||
@@ -26,15 +26,17 @@
|
||||
package org.geysermc.floodgate.pluginmessage;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.inject.Inject;
|
||||
import com.mojang.authlib.GameProfile;
|
||||
import com.mojang.authlib.properties.Property;
|
||||
import com.mojang.authlib.properties.PropertyMap;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Collection;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.geysermc.floodgate.SpigotPlugin;
|
||||
import org.geysermc.floodgate.api.logger.FloodgateLogger;
|
||||
import org.geysermc.floodgate.api.player.FloodgatePlayer;
|
||||
import org.geysermc.floodgate.config.FloodgateConfig;
|
||||
import org.geysermc.floodgate.platform.pluginmessage.PluginMessageHandler;
|
||||
import org.geysermc.floodgate.skin.SkinHandler;
|
||||
import org.geysermc.floodgate.skin.SkinUploader.UploadResult;
|
||||
@@ -50,10 +52,19 @@ public class SpigotSkinHandler extends SkinHandler {
|
||||
GET_PROFILE_METHOD = ReflectionUtils.getMethod(craftPlayerClass, "getProfile");
|
||||
}
|
||||
|
||||
private SpigotPlugin plugin;
|
||||
private FloodgateConfig config;
|
||||
|
||||
public SpigotSkinHandler(PluginMessageHandler messageHandler, FloodgateLogger logger) {
|
||||
super(messageHandler, logger);
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void init(SpigotPlugin plugin, FloodgateConfig config) {
|
||||
this.plugin = plugin;
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applySkin(FloodgatePlayer floodgatePlayer, UploadResult result) {
|
||||
Player player = Bukkit.getPlayer(floodgatePlayer.getCorrectUniqueId());
|
||||
@@ -75,12 +86,15 @@ public class SpigotSkinHandler extends SkinHandler {
|
||||
response.get("signature").getAsString());
|
||||
properties.put("textures", property);
|
||||
|
||||
//todo add config option, because this might cause some issues I guess?
|
||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
||||
if (p != player) {
|
||||
p.hidePlayer(player);
|
||||
p.showPlayer(player);
|
||||
}
|
||||
if (config.isApplySkinDirectly()) {
|
||||
plugin.getServer().getScheduler().runTask(plugin, () -> {
|
||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
||||
if (p != player) {
|
||||
p.hidePlayer(plugin, player);
|
||||
p.showPlayer(plugin, player);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user