diff --git a/build.gradle b/build.gradle index 20190c573..13ef9d925 100644 --- a/build.gradle +++ b/build.gradle @@ -177,9 +177,9 @@ dependencies { // Shaded implementation 'com.dfsek:Paralithic:0.4.0' implementation 'io.papermc:paperlib:1.0.5' - implementation "net.kyori:adventure-text-minimessage:4.1.0-SNAPSHOT" + implementation "net.kyori:adventure-text-minimessage:4.2.0-SNAPSHOT" implementation "net.kyori:adventure-platform-bukkit:4.0.0-SNAPSHOT" - implementation 'net.kyori:adventure-api:4.9.0' + implementation 'net.kyori:adventure-api:4.9.1' // Dynamically Loaded implementation 'io.timeandspace:smoothie-map:2.0.2' diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java index 980fed36b..ef1cc5971 100644 --- a/src/main/java/com/volmit/iris/Iris.java +++ b/src/main/java/com/volmit/iris/Iris.java @@ -54,6 +54,8 @@ import com.volmit.iris.util.scheduling.J; import com.volmit.iris.util.scheduling.Queue; import com.volmit.iris.util.scheduling.ShurikenQueue; import io.papermc.lib.PaperLib; +import net.kyori.adventure.audience.Audience; +import net.kyori.adventure.key.Key; import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.kyori.adventure.text.serializer.ComponentSerializer; import org.bukkit.Bukkit; @@ -67,12 +69,15 @@ import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; import org.bukkit.generator.ChunkGenerator; import org.bukkit.plugin.Plugin; +import org.jetbrains.annotations.NotNull; import java.io.*; import java.lang.annotation.Annotation; import java.net.URL; import java.util.Date; import java.util.Map; +import java.util.UUID; +import java.util.function.Predicate; @SuppressWarnings("CanBeFinal") public class Iris extends VolmitPlugin implements Listener { @@ -103,7 +108,7 @@ public class Iris extends VolmitPlugin implements Listener { } private void enable() { - audiences = BukkitAudiences.create(this); + setupAudience(); sender = new VolmitSender(Bukkit.getConsoleSender()); sender.setTag(getTag()); instance = this; @@ -116,6 +121,78 @@ public class Iris extends VolmitPlugin implements Listener { services.values().forEach(this::registerListener); } + private void setupAudience() { + try + { + audiences = BukkitAudiences.create(this); + } + + catch(Throwable e) + { + e.printStackTrace(); + Audience dummy = new Audience() {}; + IrisSettings.get().getGeneral().setUseConsoleCustomColors(false); + IrisSettings.get().getGeneral().setUseCustomColorsIngame(false); + Iris.error("Failed to setup Adventure API... No custom colors :("); + audiences = new BukkitAudiences() { + @Override + public @NotNull Audience sender(@NotNull CommandSender sender) { + return dummy; + } + + @Override + public @NotNull Audience player(@NotNull Player player) { + return dummy; + } + + @Override + public @NotNull Audience filter(@NotNull Predicate filter) { + return dummy; + } + + @Override + public @NotNull Audience all() { + return dummy; + } + + @Override + public @NotNull Audience console() { + return dummy; + } + + @Override + public @NotNull Audience players() { + return dummy; + } + + @Override + public @NotNull Audience player(@NotNull UUID playerId) { + return dummy; + } + + @Override + public @NotNull Audience permission(@NotNull String permission) { + return dummy; + } + + @Override + public @NotNull Audience world(@NotNull Key world) { + return dummy; + } + + @Override + public @NotNull Audience server(@NotNull String serverName) { + return dummy; + } + + @Override + public void close() { + + } + }; + } + } + public void postShutdown(Runnable r) { postShutdown.add(r); } diff --git a/src/main/java/com/volmit/iris/engine/IrisEngine.java b/src/main/java/com/volmit/iris/engine/IrisEngine.java index 9b06734f2..beccb012d 100644 --- a/src/main/java/com/volmit/iris/engine/IrisEngine.java +++ b/src/main/java/com/volmit/iris/engine/IrisEngine.java @@ -31,6 +31,7 @@ import com.volmit.iris.engine.actuator.IrisTerrainNormalActuator; import com.volmit.iris.engine.data.cache.AtomicCache; import com.volmit.iris.engine.framework.*; import com.volmit.iris.engine.mantle.EngineMantle; +import com.volmit.iris.engine.modifier.IrisBodyModifier; import com.volmit.iris.engine.modifier.IrisCarveModifier; import com.volmit.iris.engine.modifier.IrisDepositModifier; import com.volmit.iris.engine.modifier.IrisPostModifier; @@ -184,12 +185,14 @@ public class IrisEngine implements Engine { var cave = new IrisCarveModifier(this); var post = new IrisPostModifier(this); var deposit = new IrisDepositModifier(this); + var bodies = new IrisBodyModifier(this); registerStage((x, z, k, p, m) -> getMantle().generateMatter(x >> 4, z >> 4, m)); registerStage((x, z, k, p, m) -> terrain.actuate(x, z, k, m)); registerStage((x, z, k, p, m) -> biome.actuate(x, z, p, m)); - registerStage((x, z, k, p, m) -> decorant.actuate(x, z, k, m)); registerStage((x, z, k, p, m) -> cave.modify(x >> 4, z >> 4, k, m)); + registerStage((x, z, k, p, m) -> bodies.modify(x >> 4, z >> 4, k, m)); + registerStage((x, z, k, p, m) -> decorant.actuate(x, z, k, m)); registerStage((x, z, k, p, m) -> post.modify(x, z, k, m)); registerStage((x, z, k, p, m) -> deposit.modify(x, z, k, m)); registerStage((x, z, K, p, m) -> getMantle().insertMatter(x >> 4, z >> 4, BlockData.class, K, m)); diff --git a/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java b/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java index 5513c3c05..bb731cbbe 100644 --- a/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java +++ b/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java @@ -37,6 +37,7 @@ import net.kyori.adventure.title.Title; import org.bukkit.Server; import org.bukkit.Sound; import org.bukkit.command.CommandSender; +import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; import org.bukkit.permissions.Permission; import org.bukkit.permissions.PermissionAttachment; @@ -315,8 +316,14 @@ public class VolmitSender implements CommandSender { return; } + if((!IrisSettings.get().getGeneral().isUseCustomColorsIngame() && s instanceof Player) || !IrisSettings.get().getGeneral().isUseConsoleCustomColors()) + { + s.sendMessage(C.translateAlternateColorCodes('&', getTag() + message)); + return; + } + if (message.contains("")) { - s.sendMessage(message.replaceAll("\\Q\\E", "")); + s.sendMessage(C.translateAlternateColorCodes('&', getTag() + message.replaceAll("\\Q\\E", ""))); return; } @@ -340,6 +347,12 @@ public class VolmitSender implements CommandSender { return; } + if((!IrisSettings.get().getGeneral().isUseCustomColorsIngame() && s instanceof Player) || !IrisSettings.get().getGeneral().isUseConsoleCustomColors()) + { + s.sendMessage(C.translateAlternateColorCodes('&', message)); + return; + } + if (message.contains("")) { s.sendMessage(message.replaceAll("\\Q\\E", "")); return;