9
0
mirror of https://github.com/Xiao-MoMi/Custom-Nameplates.git synced 2025-12-30 04:09:12 +00:00
This commit is contained in:
XiaoMoMi
2023-07-19 00:20:33 +08:00
parent 695332ee99
commit faea16e517
8 changed files with 73 additions and 56 deletions

View File

@@ -18,10 +18,13 @@
package net.momirealms.customnameplates.listener;
import net.momirealms.customnameplates.object.carrier.NamedEntityCarrier;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerToggleSneakEvent;
import org.bukkit.event.vehicle.VehicleExitEvent;
import org.spigotmc.event.entity.EntityMountEvent;
public record EntityTagListener(NamedEntityCarrier namedEntityCarrier) implements Listener {
@@ -34,4 +37,11 @@ public record EntityTagListener(NamedEntityCarrier namedEntityCarrier) implement
public void onRespawn(PlayerRespawnEvent event) {
namedEntityCarrier.onRespawn(event.getPlayer());
}
@EventHandler
public void onExistVehicle(VehicleExitEvent event) {
if (event.getExited() instanceof Player player) {
namedEntityCarrier.onSneak(player, false);
}
}
}

View File

@@ -17,6 +17,7 @@
package net.momirealms.customnameplates.manager;
import com.francobm.magicosmetics.api.MagicAPI;
import net.momirealms.customnameplates.CustomNameplates;
import net.momirealms.customnameplates.object.Function;
import net.momirealms.customnameplates.object.SimpleChar;

View File

@@ -188,7 +188,8 @@ public class ResourceManager {
try (BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream(outPut), StandardCharsets.UTF_8))) {
writer.write(sb.toString()
.replace("{hide}", !ConfigManager.hideScoreboardNumber ? "" : "if (Position.z == 0.0\n" +
.replace("{hide}", !ConfigManager.hideScoreboardNumber ? "" :
"if (Position.z == 0.0\n" +
" && gl_Position.x >= 0.94\n" +
" && gl_Position.y >= -0.35\n" +
" && vertexColor.g == 84.0/255.0\n" +
@@ -199,40 +200,41 @@ public class ResourceManager {
" gl_Position = ProjMat * ModelViewMat * vec4(ScreenSize + 100.0, 0.0, ScreenSize + 100.0);\n" +
" }"
)
.replace("{IA}", !ConfigManager.iaShaderSupport ? "" : "if (Color.xyz == vec3(255., 255., 254.) / 255.) {\n" +
" gl_Position = ProjMat * ModelViewMat * vertex;\n" +
" vertexColor = ((.6 + .6 * cos(6. * (gl_Position.x + GameTime * 1000.) + vec4(0, 23, 21, 1))) + vec4(0., 0., 0., 1.)) * texelFetch(Sampler2, UV2 / 16, 0);\n" +
" } else if(Color.xyz == vec3(255., 255., 253.) / 255.) {\n" +
" gl_Position = ProjMat * ModelViewMat * vertex;\n" +
" vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0);\n" +
" gl_Position.y = gl_Position.y + sin(GameTime * 12000. + (gl_Position.x * 6)) / 150.;\n" +
" } else if (Color.xyz == vec3(255., 255., 252.) / 255.) {\n" +
" gl_Position = ProjMat * ModelViewMat * vertex;\n" +
" vertexColor = ((.6 + .6 * cos(6. * (gl_Position.x + GameTime * 1000.) + vec4(0, 23, 21, 1))) + vec4(0., 0., 0., 1.)) * texelFetch(Sampler2, UV2 / 16, 0);\n" +
" gl_Position.y = gl_Position.y + sin(GameTime*12000. + (gl_Position.x*6)) / 150.;\n" +
" } else if (Color.xyz == vec3(255., 255., 251.) / 255.) {\n" +
" vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0);\n" +
" float vertexId = mod(gl_VertexID, 4.0);\n" +
" if (vertex.z <= 0.) {\n" +
" if (vertexId == 3. || vertexId == 0.) vertex.y += cos(GameTime * 12000. / 4) * 0.1;\n" +
" vertex.y += max(cos(GameTime*12000. / 4) * 0.1, 0.);\n" +
" } else {\n" +
" if (vertexId == 3. || vertexId == 0.) vertex.y -= cos(GameTime * 12000. / 4) * 3;\n" +
" vertex.y -= max(cos(GameTime*12000. / 4) * 4, 0.);\n" +
" }\n" +
" gl_Position = ProjMat * ModelViewMat * vertex;\n" +
" } else if (Color.xyz == vec3(255., 254., 254.) / 255.) {\n" +
" float vertexId = mod(gl_VertexID, 4.0);\n" +
" if (vertex.z <= 0.) {\n" +
" if (vertexId == 3. || vertexId == 0.) vertex.y += cos(GameTime * 12000. / 4) * 0.1;\n" +
" vertex.y += max(cos(GameTime*12000. / 4) * 0.1, 0.);\n" +
" } else {\n" +
" if (vertexId == 3. || vertexId == 0.) vertex.y -= cos(GameTime * 12000. / 4) * 3;\n" +
" vertex.y -= max(cos(GameTime*12000. / 4) * 4, 0.);\n" +
" }\n" +
" vertexColor = ((.6 + .6 * cos(6. * (gl_Position.x + GameTime * 1000.) + vec4(0, 23, 21, 1))) + vec4(0., 0., 0., 1.)) * texelFetch(Sampler2, UV2 / 16, 0);\n" +
" gl_Position = ProjMat * ModelViewMat * vertex;\n" +
" } else ")
.replace("{IA}", !ConfigManager.iaShaderSupport ? "" :
"if (Color.xyz == vec3(255., 255., 254.) / 255.) {\n" +
" gl_Position = ProjMat * ModelViewMat * vertex;\n" +
" vertexColor = ((.6 + .6 * cos(6. * (gl_Position.x + GameTime * 1000.) + vec4(0, 23, 21, 1))) + vec4(0., 0., 0., 1.)) * texelFetch(Sampler2, UV2 / 16, 0);\n" +
" } else if(Color.xyz == vec3(255., 255., 253.) / 255.) {\n" +
" gl_Position = ProjMat * ModelViewMat * vertex;\n" +
" vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0);\n" +
" gl_Position.y = gl_Position.y + sin(GameTime * 12000. + (gl_Position.x * 6)) / 150.;\n" +
" } else if (Color.xyz == vec3(255., 255., 252.) / 255.) {\n" +
" gl_Position = ProjMat * ModelViewMat * vertex;\n" +
" vertexColor = ((.6 + .6 * cos(6. * (gl_Position.x + GameTime * 1000.) + vec4(0, 23, 21, 1))) + vec4(0., 0., 0., 1.)) * texelFetch(Sampler2, UV2 / 16, 0);\n" +
" gl_Position.y = gl_Position.y + sin(GameTime*12000. + (gl_Position.x*6)) / 150.;\n" +
" } else if (Color.xyz == vec3(255., 255., 251.) / 255.) {\n" +
" vertexColor = Color * texelFetch(Sampler2, UV2 / 16, 0);\n" +
" float vertexId = mod(gl_VertexID, 4.0);\n" +
" if (vertex.z <= 0.) {\n" +
" if (vertexId == 3. || vertexId == 0.) vertex.y += cos(GameTime * 12000. / 4) * 0.1;\n" +
" vertex.y += max(cos(GameTime*12000. / 4) * 0.1, 0.);\n" +
" } else {\n" +
" if (vertexId == 3. || vertexId == 0.) vertex.y -= cos(GameTime * 12000. / 4) * 3;\n" +
" vertex.y -= max(cos(GameTime*12000. / 4) * 4, 0.);\n" +
" }\n" +
" gl_Position = ProjMat * ModelViewMat * vertex;\n" +
" } else if (Color.xyz == vec3(255., 254., 254.) / 255.) {\n" +
" float vertexId = mod(gl_VertexID, 4.0);\n" +
" if (vertex.z <= 0.) {\n" +
" if (vertexId == 3. || vertexId == 0.) vertex.y += cos(GameTime * 12000. / 4) * 0.1;\n" +
" vertex.y += max(cos(GameTime*12000. / 4) * 0.1, 0.);\n" +
" } else {\n" +
" if (vertexId == 3. || vertexId == 0.) vertex.y -= cos(GameTime * 12000. / 4) * 3;\n" +
" vertex.y -= max(cos(GameTime*12000. / 4) * 4, 0.);\n" +
" }\n" +
" vertexColor = ((.6 + .6 * cos(6. * (gl_Position.x + GameTime * 1000.) + vec4(0, 23, 21, 1))) + vec4(0., 0., 0., 1.)) * texelFetch(Sampler2, UV2 / 16, 0);\n" +
" gl_Position = ProjMat * ModelViewMat * vertex;\n" +
" } else ")
);
} catch (IOException e) {

View File

@@ -166,8 +166,7 @@ public class NamedEntityImpl implements NamedEntity {
for (Player viewer : asm.getNearbyPlayers()) {
respawn(viewer);
}
}
else {
} else {
refresh();
}
}
@@ -242,21 +241,26 @@ public class NamedEntityImpl implements NamedEntity {
private double getY() {
Entity vehicle = owner.getVehicle();
if (vehicle != null) {
if (vehicle.getType() == EntityType.HORSE) {
return vehicle.getLocation().getY() + 0.85;
}
if (vehicle.getType() == EntityType.DONKEY) {
return vehicle.getLocation().getY() + 0.525;
}
if (vehicle.getType() == EntityType.PIG) {
return vehicle.getLocation().getY() + 0.325;
}
if (vehicle.getType() == EntityType.STRIDER) {
return vehicle.getLocation().getY() + 1.15;
switch (vehicle.getType()) {
case BOAT, CHEST_BOAT -> {
return vehicle.getLocation().getY() - 0.325;
}
case HORSE -> {
return vehicle.getLocation().getY() + 0.85;
}
case DONKEY -> {
return vehicle.getLocation().getY() + 0.525;
}
case PIG -> {
return vehicle.getLocation().getY() + 0.325;
}
case STRIDER -> {
return vehicle.getLocation().getY() + 1.15;
}
}
}
if (owner.getPose() == Pose.SWIMMING || owner.isGliding()) {
return owner.getLocation().getY() - 1.22;
return owner.getLocation().getY() - 1.25;
}
return owner.getLocation().getY();
}

View File

@@ -58,7 +58,7 @@ public class VehicleChecker extends Function {
for (Player player : Bukkit.getOnlinePlayers()) {
this.refresh(player);
}
},20,20);
},4,4);
}
@Override

View File

@@ -1,5 +1,5 @@
# Armor_Stand / Text_Display (1.19.4+)
mode: Text_Display
mode: Armor_Stand
# Text display options
text-display-options:
@@ -40,7 +40,7 @@ line-spacing: 0.4
bottom-line-Y-offset: 0.4
# Seconds
# This decides how long will the chat hologram remains
# This decides how long will the chat bubble remain
# 气泡的停留时间
stay-time: 8
@@ -52,6 +52,6 @@ characters-per-line: 30
# 单次最大文字长度
max-character-length: 100
# Cool Down
# Cool down (seconds)
# 发送冷却
cool-down: 1