mcdrpost.api.default_version_handler 源代码

from typing import Any

from mcdrpost.constants import OFFHAND_CODE
from mcdrpost.data_structure import Item
from mcdrpost.version_handler.abstract_version_handler import AbstractVersionHandler

# for doc building
try:
    import minecraft_data_api as api
except ImportError:
    api: Any = None


[文档] class DefaultVersionHandler(AbstractVersionHandler): """这是对 Minecraft 1.17~1.20.5 的简易 Handler"""
[文档] def get_offhand_item(self, player: str) -> Item: item = api.convert_minecraft_json( self.server.rcon_query(f"data get entity {player} {OFFHAND_CODE}") ) return Item(id=item["id"], count=item["Count"], components=item.get("tag", {}))
[文档] def replace(self, player: str, item: Item) -> None: self.server.execute( f"item replace entity {player} {OFFHAND_CODE} with {self.item2str(item)}" )
[文档] @staticmethod def item2str(item: Item) -> str: return f"{item.id}{item.components} {item.count}"