Added skin support with caching
This commit is contained in:
parent
9b2884b85d
commit
38d46dccf8
@ -4,6 +4,7 @@ import eu.mhsl.craftattack.worldmuseum.commands.GamemodeCommand;
|
||||
import eu.mhsl.craftattack.worldmuseum.commands.GcCommand;
|
||||
import eu.mhsl.craftattack.worldmuseum.commands.TeleportCommand;
|
||||
import eu.mhsl.craftattack.worldmuseum.listener.*;
|
||||
import eu.mhsl.craftattack.worldmuseum.skins.SkinCache;
|
||||
import eu.mhsl.craftattack.worldmuseum.util.Config;
|
||||
import eu.mhsl.craftattack.worldmuseum.worlds.World;
|
||||
import eu.mhsl.craftattack.worldmuseum.worlds.WorldManager;
|
||||
@ -61,7 +62,7 @@ public class Main {
|
||||
|
||||
globalEventHandler.addListener(PlayerLoginEvent.class, event -> {
|
||||
final Player player = event.getPlayer();
|
||||
player.setSkin(PlayerSkin.fromUsername(player.getUsername()));
|
||||
SkinCache.setSkin(player);
|
||||
event.setSpawningInstance(startworld);
|
||||
|
||||
player.setRespawnPoint(startworld.getSpawn());
|
||||
|
21
src/main/java/eu/mhsl/craftattack/worldmuseum/skins/SkinCache.java
Executable file
21
src/main/java/eu/mhsl/craftattack/worldmuseum/skins/SkinCache.java
Executable file
@ -0,0 +1,21 @@
|
||||
package eu.mhsl.craftattack.worldmuseum.skins;
|
||||
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.entity.Player;
|
||||
import net.minestom.server.entity.PlayerSkin;
|
||||
import net.minestom.server.timer.ExecutionType;
|
||||
import net.minestom.server.timer.TaskSchedule;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class SkinCache {
|
||||
private static final Map<String, PlayerSkin> skins = new HashMap<>();
|
||||
|
||||
public static void setSkin(Player p) {
|
||||
MinecraftServer.getSchedulerManager().scheduleTask(() -> {
|
||||
p.setSkin(skins.computeIfAbsent(p.getUsername(), PlayerSkin::fromUsername));
|
||||
System.out.println("Es sind jetzt " + skins.size() + " Skins im Cache.");
|
||||
}, TaskSchedule.immediate(), TaskSchedule.stop(), ExecutionType.ASYNC);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user