Refactor new renderer creation code

This commit is contained in:
fullwall 2024-07-06 19:30:15 +08:00
parent 194c4baadb
commit 71eed123b2

View File

@ -122,14 +122,7 @@ public class HologramTrait extends Trait {
}
private HologramRenderer createDefaultHologramRenderer() {
HologramRenderer renderer;
String hologramSetting = Setting.DEFAULT_HOLOGRAM_RENDERER.asString();
if (!SUPPORTS_DISPLAY || hologramSetting.equals("armorstand")) {
renderer = new ArmorstandRenderer();
} else {
renderer = hologramSetting.equals("interaction") ? new InteractionVehicleRenderer()
: new TextDisplayRenderer();
}
HologramRenderer renderer = createRenderer(Setting.DEFAULT_HOLOGRAM_RENDERER.asString());
if (HologramRendererCreateEvent.handlers.getRegisteredListeners().length > 0) {
HologramRendererCreateEvent event = new HologramRendererCreateEvent(npc, renderer, false);
Bukkit.getPluginManager().callEvent(event);
@ -141,17 +134,16 @@ public class HologramTrait extends Trait {
private HologramRenderer createNameRenderer() {
HologramRenderer renderer;
String setting = Setting.DEFAULT_NAME_HOLOGRAM_RENDERER.asString();
if (setting.equals("display")) {
renderer = new TextDisplayRenderer();
} else if (SpigotUtil.getVersion()[1] >= 20 && (setting.isEmpty() || setting.equals("display_vehicle"))) {
renderer = new TextDisplayVehicleRenderer();
} else if (SpigotUtil.getVersion()[1] == 19 && (setting.isEmpty() || setting.equals("interaction"))) {
renderer = new InteractionVehicleRenderer();
} else if (setting.equals("armorstand")) {
renderer = new ArmorstandRenderer();
if (setting.isEmpty()) {
if (SpigotUtil.getVersion()[1] >= 20) {
setting = "display_vehicle";
} else if (SpigotUtil.getVersion()[1] == 19) {
setting = "interaction";
} else {
renderer = new ArmorstandVehicleRenderer();
setting = "armorstand";
}
}
renderer = createRenderer(setting);
if (HologramRendererCreateEvent.handlers.getRegisteredListeners().length > 0) {
HologramRendererCreateEvent event = new HologramRendererCreateEvent(npc, renderer, true);
Bukkit.getPluginManager().callEvent(event);
@ -160,6 +152,23 @@ public class HologramTrait extends Trait {
return renderer;
}
private HologramRenderer createRenderer(String setting) {
if (!SUPPORTS_DISPLAY)
return setting.equals("armorstand_vehicle") ? new ArmorstandVehicleRenderer() : new ArmorstandRenderer();
switch (setting) {
case "display":
return new TextDisplayRenderer();
case "display_vehicle":
return new TextDisplayVehicleRenderer();
case "interaction":
return new InteractionVehicleRenderer();
case "armorstand_vehicle":
return new ArmorstandVehicleRenderer();
default:
return new ArmorstandRenderer();
}
}
public Color getDefaultBackgroundColor() {
return defaultBackgroundColor;
}