Skip to content

PySpigot的管理器

PySpigot提供了各种管理器,可以更轻松地与Bukkit/Spigot API的各个部分以及其他插件、数据库等进行交互。要了解如何将这些管理器导入到您的脚本中,请查看下文。目前PySpigot内置的管理器包括:

此外,PySpigot还包括两个可选的管理器,如果运行在服务器上的插件满足它们的依赖关系,则可用:

要访问管理器,必须将其导入到脚本中。以下表格总结了如何访问管理器,但请阅读下面的部分,以获取有关如何导入它们的更多详细信息:

管理员 通过辅助模块访问 在 PySpigot 下访问 独立导入
脚本管理器 pyspigot.script_manager() PySpigot.script from dev.magicmq.pyspigot.manager.script import ScriptManager
监听器管理器 pyspigot.listener_manager() PySpigot.listener from dev.magicmq.pyspigot.manager.listener import ListenerManager
命令管理器 pyspigot.command_manager() PySpigot.command from dev.magicmq.pyspigot.manager.command import CommandManager
任务管理器 pyspigot.task_manager() PySpigot.scheduler from dev.magicmq.pyspigot.manager.task import TaskManager
配置管理器 pyspigot.config_manager() PySpigot.config from dev.magicmq.pyspigot.manager.config import ConfigManager
数据库管理器 pyspigot.database_manager() PySpigot.database from dev.nagicmq.pyspigot.manager.database import DatabaseManager
Redis 管理器 pyspigot.redis_manager() PySpigot.redis from dev.magicmq.pyspigot.manager.redis import RedisManager
协议管理器 pyspigot.protocol_manager() PySpigot.protocol from dev.magicmq.pyspigot.manager.protocol import ProtocolManager
占位符管理器 pyspigot.placeholder_manager() PySpigot.placeholder from dev.magicmq.pyspigot.manager.placeholder import PlaceholderManager
警告

协议管理器和占位符管理器是可选管理器。只有在加载并启用ProtocolLib和/或PlaceholderAPI插件时才应访问这些管理器。

使用 PySpigot 的管理器

要使用这些管理器,必须将它们导入到您的脚本中。这可以通过三种方式完成:

通过 pyspigot.py 辅助库导入管理器

PySpigot附带了一个pyspigot.py辅助模块,该模块包含在PySpigot JAR文件中。该模块包含了几个帮助函数,使得更容易访问所有管理器。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import pyspigot as ps

ps.script_manager().<function>
ps.listener_manager().<function>
ps.command_manager().<function>
ps.task_manager().<function>
ps.config_manager().<function>
ps.protocol_manager().<function>
ps.placeholder_manager().<function>
ps.database_manager().<function>
ps.redis_manager().<function>

在上述代码中,PySpigot库被导入为ps。然后,通过调用库中的函数来获取每个管理器。当然,您也可以为了在代码中多个位置轻松使用而将所需的管理器分配给一个变量,如下所示:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import pyspigot as ps

script = ps.script_manager()
listener = ps.listener_manager()
command = ps.command_manager()
...

script.<function>
listener.<function>
command.<function>
...

有关pyspigot.py辅助模块更多信息和文档,请参阅PySpigot辅助模块页面。

使用 PySpigot 类一次性导入所有管理器

这曾经是访问管理器的首选方法,但自版本0.5.0起不再是首选方法。尽管如此,该方法仍然有效,如果需要可以使用。

1
2
3
4
5
6
7
8
9
from dev.magicmq.pyspigot import PySpigot as ps

ps.script.<function>
ps.listener.<function>
ps.command.<function>
ps.scheduler.<function>
ps.config.<function>
ps.protocol.<function>
ps.placeholder.<function>

在上述代码中,使用ps来导入PySpigot。可以通过简化的名称调用管理者,比如通过script来调用ScriptManager,通过listener来调用ListenerManager,通过command来调用CommandManager,通过scheduler来调用TaskManager,通过config来调用ConfigManager,通过protocol来调用ProtocolManager。

单独导入每个管理者类

也可以直接从PySpigot的Java代码中单独导入每个管理者类。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from dev.magicmq.pyspigot.manager.script import ScriptManager as script
from dev.magicmq.pyspigot.manager.listener import ListenerManager as listener
from dev.magicmq.pyspigot.manager.command import CommandManager as command
from dev.magicmq.pyspigot.manager.task import TaskManager as scheduler
from dev.magicmq.pyspigot.manager.config import ConfigManager as config
from dev.magicmq.pyspigot.manager.protocol import ProtocolManager as protocol

script.get().<function>
listener.get().<function>
command.get().<function>
...
Warning

如果单独导入一个管理者类,每次调用管理者时 必须 使用get()