Skip to content

Commit

Permalink
Use teams by FancySitula
Browse files Browse the repository at this point in the history
  • Loading branch information
OliverSchlueter committed Oct 16, 2024
1 parent 8812452 commit c21bf48
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 23 deletions.
1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ dependencies {
implementation(project(":implementation_1_19_4", configuration = "reobf"))

implementation("de.oliver:FancyLib:${findProperty("fancyLibVersion")}")
implementation("de.oliver:FancySitula:${findProperty("fancySitulaVersion")}")
compileOnly("org.lushplugins:ChatColorHandler:${findProperty("chatcolorhandlerVersion")}")
implementation("de.oliver.FancyAnalytics:api:${findProperty("fancyAnalyticsVersion")}")
implementation("de.oliver.FancyAnalytics:logger:${findProperty("fancyLoggerVersion")}")
Expand Down
1 change: 1 addition & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
minecraftVersion=1.21.1
fancyLibVersion=33
fancySitulaVersion=0.0.10
fancyAnalyticsVersion=0.1.3
fancyLoggerVersion=0.0.6
plotsquaredVersion=7.2.0
Expand Down
1 change: 1 addition & 0 deletions implementation_1_21_1/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ dependencies {

compileOnly(project(":api"))
compileOnly("de.oliver:FancyLib:${findProperty("fancyLibVersion")}")
compileOnly("de.oliver:FancySitula:${findProperty("fancySitulaVersion")}")
compileOnly("org.lushplugins:ChatColorHandler:${findProperty("chatcolorhandlerVersion")}")
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,13 @@
import de.oliver.fancynpcs.api.NpcData;
import de.oliver.fancynpcs.api.events.NpcSpawnEvent;
import de.oliver.fancynpcs.api.utils.NpcEquipmentSlot;
import de.oliver.fancysitula.api.entities.FS_RealPlayer;
import de.oliver.fancysitula.api.packets.FS_Color;
import de.oliver.fancysitula.api.teams.FS_CollisionRule;
import de.oliver.fancysitula.api.teams.FS_NameTagVisibility;
import de.oliver.fancysitula.api.teams.FS_Team;
import de.oliver.fancysitula.factories.FancySitula;
import io.papermc.paper.adventure.PaperAdventure;
import org.lushplugins.chatcolorhandler.ModernChatColorHandler;
import net.minecraft.Optionull;
import net.minecraft.core.Holder;
import net.minecraft.core.registries.BuiltInRegistries;
Expand All @@ -33,8 +38,6 @@
import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.attributes.AttributeInstance;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.scores.PlayerTeam;
import net.minecraft.world.scores.Team;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.CraftServer;
Expand All @@ -43,6 +46,7 @@
import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
import org.bukkit.entity.Player;
import org.lushplugins.chatcolorhandler.ModernChatColorHandler;

import java.util.*;
import java.util.concurrent.TimeUnit;
Expand Down Expand Up @@ -199,26 +203,24 @@ public void update(Player player) {
return;
}

FS_RealPlayer fsPlayer = new FS_RealPlayer(player);
ServerPlayer serverPlayer = ((CraftPlayer) player).getHandle();

PlayerTeam team = new PlayerTeam(serverPlayer.getScoreboard(), "npc-" + localName);
team.getPlayers().clear();
team.getPlayers().add(npc instanceof ServerPlayer npcPlayer ? npcPlayer.getGameProfile().getName() : npc.getStringUUID());

boolean isTeamCreatedForPlayer = isTeamCreated.getOrDefault(serverPlayer.getUUID(), false);
serverPlayer.connection.send(ClientboundSetPlayerTeamPacket.createAddOrModifyPacket(team, !isTeamCreatedForPlayer));

if (!isTeamCreatedForPlayer) {
isTeamCreated.put(serverPlayer.getUUID(), true);
}

if (!data.isCollidable()) {
team.setCollisionRule(Team.CollisionRule.NEVER);
}

team.setColor(PaperAdventure.asVanilla(data.getGlowingColor()));
FS_Team team = new FS_Team(
"fancynnpcs-" + localName,
net.kyori.adventure.text.Component.text("fancynpcs"),
true,
true,
data.getDisplayName().equals("<empty>") ? FS_NameTagVisibility.NEVER : FS_NameTagVisibility.ALWAYS,
data.isCollidable() ? FS_CollisionRule.ALWAYS : FS_CollisionRule.NEVER,
FS_Color.WHITE, //TODO use glowing color
ModernChatColorHandler.translate(data.getDisplayName(), player),
net.kyori.adventure.text.Component.empty(),
List.of(npc instanceof ServerPlayer playerNpc ? playerNpc.getGameProfile().getName() : npc.getStringUUID())
);
FancySitula.TEAM_FACTORY.createTeamFor(fsPlayer, team);

net.kyori.adventure.text.Component displayName = ModernChatColorHandler.translate(data.getDisplayName(), serverPlayer.getBukkitEntity());
net.kyori.adventure.text.Component displayName = ModernChatColorHandler.translate(data.getDisplayName(), player);
Component vanillaComponent = PaperAdventure.asVanilla(displayName);
if (!(npc instanceof ServerPlayer)) {
npc.setCustomName(vanillaComponent);
Expand All @@ -227,14 +229,11 @@ public void update(Player player) {
if (data.getDisplayName().equalsIgnoreCase("<empty>")) {
npc.setCustomName(null);
npc.setCustomNameVisible(false);
team.setNameTagVisibility(Team.Visibility.NEVER);
} else {
npc.setCustomNameVisible(true);
team.setNameTagVisibility(Team.Visibility.ALWAYS);
}

if (npc instanceof ServerPlayer npcPlayer) {
team.setPlayerPrefix(vanillaComponent);
npcPlayer.listName = vanillaComponent;

EnumSet<ClientboundPlayerInfoUpdatePacket.Action> actions = EnumSet.noneOf(ClientboundPlayerInfoUpdatePacket.Action.class);
Expand Down

0 comments on commit c21bf48

Please sign in to comment.