mirror of
https://github.com/Xiao-MoMi/Custom-Nameplates.git
synced 2025-12-19 15:09:23 +00:00
make player not weak reference
This commit is contained in:
@@ -54,6 +54,7 @@ public class ChatControlRedProvider extends AbstractChatMessageProvider implemen
|
||||
CNPlayer cnPlayer = plugin.getPlayer(player.getUniqueId());
|
||||
if (cnPlayer == null) return;
|
||||
plugin.getScheduler().async().execute(() -> {
|
||||
plugin.debug(() -> "Channel: " + event.getChannel().getName());
|
||||
manager.onChat(cnPlayer, event.getMessage(), event.getChannel().getName());
|
||||
});
|
||||
}
|
||||
|
||||
@@ -21,10 +21,7 @@ import io.netty.channel.Channel;
|
||||
import net.momirealms.customnameplates.api.AbstractCNPlayer;
|
||||
import net.momirealms.customnameplates.api.CustomNameplates;
|
||||
import net.momirealms.customnameplates.api.util.Vector3;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.Registry;
|
||||
import org.bukkit.*;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
import org.bukkit.attribute.AttributeInstance;
|
||||
import org.bukkit.entity.Entity;
|
||||
@@ -37,44 +34,28 @@ import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class BukkitCNPlayer extends AbstractCNPlayer {
|
||||
|
||||
public class BukkitCNPlayer extends AbstractCNPlayer<Player> {
|
||||
private static final Attribute scaleAttribute = Registry.ATTRIBUTE.get(NamespacedKey.minecraft("generic.scale"));
|
||||
|
||||
private Reference<Player> player;
|
||||
|
||||
public BukkitCNPlayer(CustomNameplates plugin, Channel channel) {
|
||||
super(plugin, channel);
|
||||
}
|
||||
|
||||
public void setPlayer(Player player) {
|
||||
super.setPlayer(player);
|
||||
this.player = new WeakReference<>(player);
|
||||
super.entityId = player.getEntityId();
|
||||
super.uuid = player.getUniqueId();
|
||||
super.name = player.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInitialized() {
|
||||
return player != null;
|
||||
return this.player != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Player player() {
|
||||
return player.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return player().getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID uuid() {
|
||||
return player().getUniqueId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int entityID() {
|
||||
return player().getEntityId();
|
||||
return super.player;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -52,9 +52,9 @@ public class BukkitChatManager extends AbstractChatManager {
|
||||
} else if (ConfigManager.chatEss() && Bukkit.getPluginManager().isPluginEnabled("EssentialsChat")) {
|
||||
this.chatProvider = new EssentialsChatProvider(plugin, this);
|
||||
plugin.getPluginLogger().info("EssentialsChat hooked!");
|
||||
} else if (ConfigManager.chatChatControlRed() && Bukkit.getPluginManager().isPluginEnabled("ChatControlRed")) {
|
||||
} else if (ConfigManager.chatChatControlRed() && Bukkit.getPluginManager().isPluginEnabled("ChatControl")) {
|
||||
this.chatProvider = new ChatControlRedProvider(plugin, this);
|
||||
plugin.getPluginLogger().info("ChatControlRed hooked!");
|
||||
plugin.getPluginLogger().info("ChatControl hooked!");
|
||||
} else if (ConfigManager.chatChatty() && Bukkit.getPluginManager().isPluginEnabled("Chatty")) {
|
||||
this.chatProvider = new ChattyProvider(plugin, this);
|
||||
plugin.getPluginLogger().info("Chatty hooked!");
|
||||
|
||||
@@ -289,7 +289,7 @@ public class BukkitCustomNameplates extends CustomNameplates implements Listener
|
||||
MainTask.reset();
|
||||
// reload players
|
||||
for (CNPlayer player : getOnlinePlayers()) {
|
||||
((AbstractCNPlayer) player).reload();
|
||||
((AbstractCNPlayer<?>) player).reload();
|
||||
}
|
||||
// clear requirement ids
|
||||
this.requirementManager.reload();
|
||||
@@ -404,6 +404,14 @@ public class BukkitCustomNameplates extends CustomNameplates implements Listener
|
||||
}
|
||||
}
|
||||
|
||||
public void handleQuit(CNPlayer cnPlayer) {
|
||||
entityIDFastLookup.remove(cnPlayer.entityID());
|
||||
onlinePlayerMap.remove(cnPlayer.uuid());
|
||||
if (VersionHelper.isFolia()) {
|
||||
foliaLocationTracker.remove(cnPlayer.name());
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true)
|
||||
public void onChangeWorld(PlayerChangedWorldEvent event) {
|
||||
if (VersionHelper.isFolia()) return;
|
||||
|
||||
@@ -53,7 +53,7 @@ public class BubblesForceEquipCommand extends BukkitCommandFeature<CommandSender
|
||||
.required("bubble", StringParser.stringComponent().suggestionProvider(new SuggestionProvider<>() {
|
||||
@Override
|
||||
public @NonNull CompletableFuture<? extends @NonNull Iterable<? extends @NonNull Suggestion>> suggestionsFuture(@NonNull CommandContext<Object> context, @NonNull CommandInput input) {
|
||||
return CompletableFuture.completedFuture(plugin.getBubbleManager().bubbles().stream().map(it -> Suggestion.suggestion(it.id())).toList());
|
||||
return CompletableFuture.completedFuture(plugin.getBubbleManager().bubbleConfigs().stream().map(it -> Suggestion.suggestion(it.id())).toList());
|
||||
}
|
||||
}))
|
||||
.handler(context -> {
|
||||
|
||||
Reference in New Issue
Block a user