From 7ecb83ae278f702fca9a34d40e6fb9fda40ffd40 Mon Sep 17 00:00:00 2001 From: Aya <31237389+tal5@users.noreply.github.com> Date: Sun, 15 Jan 2023 14:36:45 +0000 Subject: [PATCH] Add client tag base (from #6) --- .../denizenscript/clientizen/Clientizen.java | 1 + .../clientizen/tags/ClientTagBase.java | 53 +++++++++++++++++++ .../tags/ClientizenTagRegistry.java | 2 +- 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/denizenscript/clientizen/tags/ClientTagBase.java diff --git a/src/main/java/com/denizenscript/clientizen/Clientizen.java b/src/main/java/com/denizenscript/clientizen/Clientizen.java index 490913f..3ee68e3 100644 --- a/src/main/java/com/denizenscript/clientizen/Clientizen.java +++ b/src/main/java/com/denizenscript/clientizen/Clientizen.java @@ -52,6 +52,7 @@ public void onInitializeClient() { CoreUtilities.basicContext = new ClientizenTagContext(true, null, null); CoreUtilities.errorButNoDebugContext = new ClientizenTagContext(false, null, null); DenizenCore.init(coreImplementation); + DenizenCore.reloadSaves(); // Configure Denizen-Core CoreConfiguration.allowConsoleRedirection = false; diff --git a/src/main/java/com/denizenscript/clientizen/tags/ClientTagBase.java b/src/main/java/com/denizenscript/clientizen/tags/ClientTagBase.java new file mode 100644 index 0000000..bc743d0 --- /dev/null +++ b/src/main/java/com/denizenscript/clientizen/tags/ClientTagBase.java @@ -0,0 +1,53 @@ +package com.denizenscript.clientizen.tags; + +import com.denizenscript.denizencore.DenizenCore; +import com.denizenscript.denizencore.objects.ObjectTag; +import com.denizenscript.denizencore.objects.core.ElementTag; +import com.denizenscript.denizencore.objects.core.ListTag; +import com.denizenscript.denizencore.objects.core.MapTag; +import com.denizenscript.denizencore.objects.core.TimeTag; +import com.denizenscript.denizencore.tags.PseudoObjectTagBase; +import com.denizenscript.denizencore.tags.TagManager; + +public class ClientTagBase extends PseudoObjectTagBase { + + public static ClientTagBase instance; + + public ClientTagBase() { + instance = this; + TagManager.registerStaticTagBaseHandler(ClientTagBase.class, "client", t -> instance); + } + + @Override + public void register() { +// tagProcessor.registerTag(ListTag.class, "loaded_entities", (attribute, object) -> { +// ListTag list = new ListTag(); +// for (Entity entity : MinecraftClient.getInstance().world.getEntities()) { +// list.addObject(new EntityTag(entity)); +// } +// return list; +// }); +// tagProcessor.registerTag(EntityTag.class, "target", (attribute, object) -> { +// Entity target = MinecraftClient.getInstance().targetedEntity; +// return target != null ? new EntityTag(target) : null; +// }); +// tagProcessor.registerTag(EntityTag.class, "self_entity", (attribute, object) -> { +// return new EntityTag(MinecraftClient.getInstance().player); +// }); + tagProcessor.registerTag(ElementTag.class, ElementTag.class, "has_flag", (attribute, object, param) -> { + return new ElementTag(DenizenCore.serverFlagMap.hasFlag(param.asString())); + }); + tagProcessor.registerTag(ObjectTag.class, ElementTag.class, "flag", (attribute, object, param) -> { + return DenizenCore.serverFlagMap.doFlagTag(attribute); + }); + tagProcessor.registerTag(TimeTag.class, ElementTag.class, "flag_expiration", (attribute, object, param) -> { + return DenizenCore.serverFlagMap.doFlagExpirationTag(attribute); + }); + tagProcessor.registerTag(ListTag.class, "list_flags", (attribute, object) -> { + return DenizenCore.serverFlagMap.doListFlagsTag(attribute); + }); + tagProcessor.registerTag(MapTag.class, "flag_map", (attribute, object) -> { + return DenizenCore.serverFlagMap.doFlagMapTag(attribute); + }); + } +} diff --git a/src/main/java/com/denizenscript/clientizen/tags/ClientizenTagRegistry.java b/src/main/java/com/denizenscript/clientizen/tags/ClientizenTagRegistry.java index a9bba87..ec08244 100644 --- a/src/main/java/com/denizenscript/clientizen/tags/ClientizenTagRegistry.java +++ b/src/main/java/com/denizenscript/clientizen/tags/ClientizenTagRegistry.java @@ -3,6 +3,6 @@ public class ClientizenTagRegistry { public static void registerTagHandlers() { - + new ClientTagBase(); } }