9
0
mirror of https://github.com/Xiao-MoMi/Custom-Nameplates.git synced 2025-12-19 15:09:23 +00:00
This commit is contained in:
XiaoMoMi
2023-06-09 01:25:47 +08:00
parent 6986d8c526
commit 600db13d3b
11 changed files with 105 additions and 7 deletions

View File

@@ -4,7 +4,7 @@ plugins {
} }
group = 'net.momirealms' group = 'net.momirealms'
version = '2.2.0.7.3' version = '2.2.0.8'
repositories { repositories {
maven {name = "aliyun-repo"; url = "https://maven.aliyun.com/repository/public/"} maven {name = "aliyun-repo"; url = "https://maven.aliyun.com/repository/public/"}
@@ -29,10 +29,11 @@ dependencies {
compileOnly ('org.geysermc.floodgate:api:2.0-SNAPSHOT') compileOnly ('org.geysermc.floodgate:api:2.0-SNAPSHOT')
compileOnly ('net.md-5:bungeecord-api:1.19-R0.1-SNAPSHOT') compileOnly ('net.md-5:bungeecord-api:1.19-R0.1-SNAPSHOT')
compileOnly ('com.github.LoneDev6:api-itemsadder:3.2.3c') compileOnly ('com.github.LoneDev6:api-itemsadder:3.2.3c')
implementation ('net.kyori:adventure-api:4.13.1') compileOnly ('com.github.FrancoBM12:API-MagicCosmetics:2.2.0')
implementation ('net.kyori:adventure-api:4.14.0')
implementation ('net.kyori:adventure-platform-bukkit:4.3.0') implementation ('net.kyori:adventure-platform-bukkit:4.3.0')
implementation ('net.kyori:adventure-text-minimessage:4.13.1') implementation ('net.kyori:adventure-text-minimessage:4.14.0')
implementation ('net.kyori:adventure-text-serializer-gson:4.13.1') implementation ('net.kyori:adventure-text-serializer-gson:4.14.0')
implementation ("org.bstats:bstats-bukkit:3.0.1") implementation ("org.bstats:bstats-bukkit:3.0.1")
implementation fileTree (dir:'libs',includes:['BiomeAPI.jar']) implementation fileTree (dir:'libs',includes:['BiomeAPI.jar'])
} }
@@ -61,6 +62,7 @@ processResources {
shadowJar { shadowJar {
relocate ('net.kyori', 'net.momirealms.customnameplates.libs.net.kyori') relocate ('net.kyori', 'net.momirealms.customnameplates.libs.net.kyori')
relocate ('org.bstats', 'net.momirealms.customnameplates.libs.org.bstats') relocate ('org.bstats', 'net.momirealms.customnameplates.libs.org.bstats')
relocate ('net.momirealms', 'net.momirealms.customnameplates.libs.net.momirealms')
} }
tasks.register("delete", Delete).get().delete("build/libs/"+project.name+"-"+project.version+".jar") tasks.register("delete", Delete).get().delete("build/libs/"+project.name+"-"+project.version+".jar")

BIN
libs/oraxen-api.jar Normal file

Binary file not shown.

View File

@@ -0,0 +1,63 @@
package net.momirealms.customnameplates.listener.compatibility;
import com.francobm.magicosmetics.api.Cosmetic;
import com.francobm.magicosmetics.api.CosmeticType;
import com.francobm.magicosmetics.api.MagicAPI;
import com.francobm.magicosmetics.cache.cosmetics.Hat;
import com.francobm.magicosmetics.events.CosmeticChangeEquipEvent;
import com.francobm.magicosmetics.events.CosmeticEquipEvent;
import com.francobm.magicosmetics.events.CosmeticUnEquipEvent;
import net.momirealms.customnameplates.object.armorstand.ArmorStandManager;
import net.momirealms.customnameplates.object.nameplate.mode.EntityTag;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
public class MagicCosmeticsListener implements Listener {
private final EntityTag entityTag;
public MagicCosmeticsListener(EntityTag entityTag) {
this.entityTag = entityTag;
}
@EventHandler
public void onChangeCos(CosmeticChangeEquipEvent event) {
final Cosmetic cosmetic = event.getNewCosmetic();
final Player player = event.getPlayer();
if (cosmetic instanceof Hat hat) {
ArmorStandManager asm = entityTag.getArmorStandManager(player);
if (asm != null) {
asm.setHatOffset(hat.getOffSetY());
}
}
}
@EventHandler
public void onEquip(CosmeticEquipEvent event) {
final Cosmetic cosmetic = event.getCosmetic();
final Player player = event.getPlayer();
if (cosmetic instanceof Hat hat) {
ArmorStandManager asm = entityTag.getArmorStandManager(player);
if (asm != null) {
asm.setHatOffset(hat.getOffSetY());
}
}
}
@EventHandler
public void onUnEquip(CosmeticUnEquipEvent event) {
final Player player = event.getPlayer();
if (event.getCosmeticType() == CosmeticType.HAT) {
ArmorStandManager asm = entityTag.getArmorStandManager(player);
if (asm != null) {
asm.setHatOffset(0);
}
}
}
//TODO Lack an event
public void onJoin(Player player) {
}
}

View File

@@ -205,7 +205,6 @@ public class ChatBubblesManager extends EntityTag {
@Override @Override
public void onJoin(Player player) { public void onJoin(Player player) {
super.onJoin(player); super.onJoin(player);
super.createArmorStandManager(player);
} }
@Override @Override
@@ -214,6 +213,10 @@ public class ChatBubblesManager extends EntityTag {
coolDownMap.remove(player); coolDownMap.remove(player);
} }
public void init(Player player) {
createArmorStandManager(player);
}
private boolean isCoolDown(Player player, int lines) { private boolean isCoolDown(Player player, int lines) {
long time = System.currentTimeMillis(); long time = System.currentTimeMillis();
if (time - (coolDownMap.getOrDefault(player, time - (long) coolDown * lines)) < (long) coolDown * lines) return true; if (time - (coolDownMap.getOrDefault(player, time - (long) coolDown * lines)) < (long) coolDown * lines) return true;

View File

@@ -162,6 +162,8 @@ public class NameplateManager extends Function {
contentMap.put(new ConditionalText(requirements, text), offset); contentMap.put(new ConditionalText(requirements, text), offset);
} }
} }
} else if (mode == DisplayMode.TEXT_DISPLAY) {
} else if (mode == DisplayMode.DISABLE) { } else if (mode == DisplayMode.DISABLE) {
this.nameplateTag = new DisableNameplate(plugin); this.nameplateTag = new DisableNameplate(plugin);
} }

View File

@@ -36,6 +36,7 @@ public class ArmorStandManager {
private final Vector<Player> nearbyPlayers; private final Vector<Player> nearbyPlayers;
private Player[] nearbyPlayerArray ; private Player[] nearbyPlayerArray ;
private final Player owner; private final Player owner;
private double hatOffset;
public ArmorStandManager(Player owner) { public ArmorStandManager(Player owner) {
this.owner = owner; this.owner = owner;
@@ -170,4 +171,13 @@ public class ArmorStandManager {
fakeArmorStand.teleport(); fakeArmorStand.teleport();
} }
} }
public double getHatOffset() {
return hatOffset;
}
public void setHatOffset(double hatOffset) {
this.hatOffset = hatOffset;
teleport();
}
} }

View File

@@ -204,6 +204,7 @@ public class FakeArmorStand {
else y += 1.8; else y += 1.8;
} }
else y += 0.2; else y += 0.2;
y += asm.getHatOffset();
return new Location(null, x, y, z); return new Location(null, x, y, z);
} }

View File

@@ -20,5 +20,6 @@ package net.momirealms.customnameplates.object.nameplate.mode;
public enum DisplayMode { public enum DisplayMode {
TEAM, TEAM,
ARMOR_STAND, ARMOR_STAND,
TEXT_DISPLAY,
DISABLE DISABLE
} }

View File

@@ -19,6 +19,7 @@ package net.momirealms.customnameplates.object.nameplate.mode;
import net.momirealms.customnameplates.CustomNameplates; import net.momirealms.customnameplates.CustomNameplates;
import net.momirealms.customnameplates.listener.EntityTagListener; import net.momirealms.customnameplates.listener.EntityTagListener;
import net.momirealms.customnameplates.listener.compatibility.MagicCosmeticsListener;
import net.momirealms.customnameplates.object.armorstand.ArmorStandManager; import net.momirealms.customnameplates.object.armorstand.ArmorStandManager;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameMode; import org.bukkit.GameMode;
@@ -34,10 +35,14 @@ public abstract class EntityTag extends AbstractNameplateTag {
protected EntityTagListener entityTagListener; protected EntityTagListener entityTagListener;
protected PacketsHandler handler; protected PacketsHandler handler;
protected MagicCosmeticsListener magicCosmeticsListener;
protected EntityTag(CustomNameplates plugin) { protected EntityTag(CustomNameplates plugin) {
super(plugin); super(plugin);
this.entityTagListener = new EntityTagListener(this); this.entityTagListener = new EntityTagListener(this);
if (Bukkit.getPluginManager().getPlugin("MagicCosmetics") != null) {
this.magicCosmeticsListener = new MagicCosmeticsListener(this);
}
} }
@Override @Override
@@ -45,6 +50,7 @@ public abstract class EntityTag extends AbstractNameplateTag {
super.load(); super.load();
handler.load(); handler.load();
Bukkit.getPluginManager().registerEvents(entityTagListener, CustomNameplates.getInstance()); Bukkit.getPluginManager().registerEvents(entityTagListener, CustomNameplates.getInstance());
if (magicCosmeticsListener != null) Bukkit.getPluginManager().registerEvents(magicCosmeticsListener, CustomNameplates.getInstance());
} }
@Override @Override
@@ -56,11 +62,13 @@ public abstract class EntityTag extends AbstractNameplateTag {
} }
armorStandManagerMap.clear(); armorStandManagerMap.clear();
HandlerList.unregisterAll(entityTagListener); HandlerList.unregisterAll(entityTagListener);
if (magicCosmeticsListener != null) HandlerList.unregisterAll(magicCosmeticsListener);
} }
@Override @Override
public void onJoin(Player player) { public void onJoin(Player player) {
handler.onJoin(player); handler.onJoin(player);
init(player);
} }
@Override @Override
@@ -72,6 +80,10 @@ public abstract class EntityTag extends AbstractNameplateTag {
} }
} }
public void init(Player player) {
}
public ArmorStandManager createArmorStandManager(Player player) { public ArmorStandManager createArmorStandManager(Player player) {
ArmorStandManager asm = new ArmorStandManager(player); ArmorStandManager asm = new ArmorStandManager(player);
armorStandManagerMap.put(player, asm); armorStandManagerMap.put(player, asm);

View File

@@ -56,14 +56,17 @@ public class ArmorStandTag extends EntityTag {
@Override @Override
public void onJoin(Player player) { public void onJoin(Player player) {
super.onJoin(player); super.onJoin(player);
ArmorStandManager asm = createArmorStandManager(player);
asm.initNameplateArmorStands();
for (Player viewer : Bukkit.getOnlinePlayers()) { for (Player viewer : Bukkit.getOnlinePlayers()) {
spawnArmorStands(viewer, player); spawnArmorStands(viewer, player);
spawnArmorStands(player, viewer); spawnArmorStands(player, viewer);
} }
} }
public void init(Player player) {
ArmorStandManager asm = createArmorStandManager(player);
asm.initNameplateArmorStands();
}
@Override @Override
public void loadToAllPlayers() { public void loadToAllPlayers() {
super.loadToAllPlayers(); super.loadToAllPlayers();

View File

@@ -11,6 +11,7 @@ softdepend:
- TAB - TAB
- Oraxen - Oraxen
- TrChat - TrChat
- MagicCosmetics
commands: commands:
customnameplates: customnameplates:
usage: /customnameplates usage: /customnameplates