From aa24c67d8947db258c72ff7f76f69b35965db192 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=B9=E8=8B=A5=E6=B3=A0?= <98583550+ZhuRuoLing@users.noreply.github.com> Date: Mon, 21 Nov 2022 18:25:45 +0800 Subject: [PATCH] feat(minecraft_command_register): make minecraft_command_register fits the mod MCDRCommandFabric (#66) * Update __init__.py make this plugin fits MCDRCommandsFabric mod * Update __init__.py create mcdr command !!manual_update --- .../minecraft_command_register/__init__.py | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/minecraft_command_register/minecraft_command_register/__init__.py b/minecraft_command_register/minecraft_command_register/__init__.py index c5ea34c..e85ae7d 100644 --- a/minecraft_command_register/minecraft_command_register/__init__.py +++ b/minecraft_command_register/minecraft_command_register/__init__.py @@ -1,6 +1,7 @@ import json +from enum import Enum -from mcdreforged.api.types import PluginServerInterface +from mcdreforged.api.all import * from mcdreforged.mcdr_server import MCDReforgedServer from mcdreforged.plugin.plugin_registry import PluginCommandHolder @@ -8,24 +9,40 @@ class Node: + type: str = "GREEDY_STRING" + children = {} + def __init__(self, node): self.children = {} - + self.type = "LITERAL" # Argument children for argument_child in node._children: - child_name = f'<{argument_child._ArgumentNode__name}>' + child_name = f'Argument<{argument_child._ArgumentNode__name}>' self.children[child_name] = Node(argument_child) # Literal children for key, literal_children in node._children_literal.items(): self.children[key] = Node(literal_children[0]) + # has children + if not node._children: + match type(node).__name__: + case "Integer": + self.type = "INTEGER" + case "Float": + self.type = "DOUBLE" + case "QuotableText": + self.type = "GREEDY_STRING" + case "Text": + self.type = "WORD" + case _: + self.type = "NOTHING" @property def dict(self): if self.children: return {key: value.dict for key, value in self.children.items()} else: - return None + return self.type def register(server: PluginServerInterface): @@ -61,6 +78,10 @@ def new_on_plugin_registry_changed(): mcdr_server.on_plugin_registry_changed = new_on_plugin_registry_changed + server.register_command(Literal("!!manual_update").runs( + lambda src, ctx: register(server) + )) + def on_server_startup(server: PluginServerInterface): register(server)