From 3fcd6edb2ae93d40494bac82bb3f9fce0b4e6a61 Mon Sep 17 00:00:00 2001 From: HypherionMC Date: Thu, 20 Jul 2023 19:37:17 +0200 Subject: [PATCH] [WIP] Initial abstraction layer work --- .../abstraction/commands/AbstractCommand.java | 16 ++++++++ .../server/AbstractFakePlayer.java | 40 +++++++++++++++++++ .../abstraction/server/AbstractServer.java | 12 ++++++ .../abstraction/text/AbstractComponent.java | 23 +++++++++++ 4 files changed, 91 insertions(+) create mode 100644 Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/commands/AbstractCommand.java create mode 100644 Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/server/AbstractFakePlayer.java create mode 100644 Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/server/AbstractServer.java create mode 100644 Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/text/AbstractComponent.java diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/commands/AbstractCommand.java b/Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/commands/AbstractCommand.java new file mode 100644 index 0000000..901a5fb --- /dev/null +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/commands/AbstractCommand.java @@ -0,0 +1,16 @@ +package com.hypherionmc.craterlib.core.abstraction.commands; + +import com.mojang.brigadier.context.CommandContext; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.network.chat.MutableComponent; + +public class AbstractCommand { + + public static void replySuccess(CommandContext stack, MutableComponent message) { + stack.getSource().sendSuccess(() -> message, false); + } + + public static void replyFailure(CommandContext stack, MutableComponent message) { + stack.getSource().sendFailure(message); + } +} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/server/AbstractFakePlayer.java b/Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/server/AbstractFakePlayer.java new file mode 100644 index 0000000..9c6b5bd --- /dev/null +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/server/AbstractFakePlayer.java @@ -0,0 +1,40 @@ +package com.hypherionmc.craterlib.core.abstraction.server; + +import net.minecraft.commands.CommandSource; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.server.MinecraftServer; +import net.minecraft.world.phys.Vec2; +import net.minecraft.world.phys.Vec3; + +import java.util.UUID; +import java.util.function.Supplier; + +public class AbstractFakePlayer extends CommandSourceStack { + + private final UUID uuid; + + public AbstractFakePlayer(MinecraftServer server, String name, MutableComponent displayName, UUID uuid) { + super(CommandSource.NULL, Vec3.ZERO, Vec2.ZERO, server.overworld(), 4, name, displayName, server, null); + this.uuid = uuid; + } + + public void onSuccess(Component component, boolean bl) { + + } + + @Override + public void sendSuccess(Supplier component, boolean bl) { + this.onSuccess(component.get(), bl); + } + + @Override + public void sendFailure(Component component) { + sendSuccess(() -> component, false); + } + + public UUID getUuid() { + return uuid; + } +} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/server/AbstractServer.java b/Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/server/AbstractServer.java new file mode 100644 index 0000000..dc6d200 --- /dev/null +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/server/AbstractServer.java @@ -0,0 +1,12 @@ +package com.hypherionmc.craterlib.core.abstraction.server; + +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.server.MinecraftServer; + +public class AbstractServer { + + public static void broadcastMessage(MinecraftServer server, MutableComponent message) { + server.getPlayerList().broadcastSystemMessage(message, false); + } + +} diff --git a/Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/text/AbstractComponent.java b/Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/text/AbstractComponent.java new file mode 100644 index 0000000..568b4d8 --- /dev/null +++ b/Common/src/main/java/com/hypherionmc/craterlib/core/abstraction/text/AbstractComponent.java @@ -0,0 +1,23 @@ +package com.hypherionmc.craterlib.core.abstraction.text; + +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.network.chat.Style; + +public class AbstractComponent { + + public static MutableComponent literal(String component) { + return Component.literal(component); + } + + public static MutableComponent translatable(String component) { + return Component.translatable(component); + } + + public static Component safeCopy(Component inComponent) { + String value = inComponent.getString(); + Style style = inComponent.getStyle(); + return Component.literal(value).withStyle(style); + } + +}