Skip to content

项目选项

PySpigot允许您通过将名为project.yml的文件放置在项目的根文件夹中来指定特定于项目的选项。

除了main选项之外,这里列出的其余选项与常规脚本选项相同。

提示

为每个项目定义项目选项是可选的。有关更多信息,请参阅Defaults部分。

基本格式

如果您想为项目指定选项,请创建一个名为project.yml的文件,并将其放置在项目文件夹的根目录中。然后,将类似以下内容添加到文件中:

1
2
3
main: 'main.py'
enabled: true
file-logging-enabled: true
注意

project.yml文件必须命名为project.yml;不接受其他名称。此外,PySpigot仅在项目的根目录中搜索此文件,因此必须将其放置在那里。

默认值

不是每个项目都需要指定项目选项。PySpigot依赖于回退以及在项目的project.yml文件中未定义时用于项目选项的默认值。下图说明了PySpigot在项目加载时搜索项目选项的过程。

graph LR
  A[Project loads] --> B{Option present in project's project.yml?};
  B -->|Yes| C[Use option from project's project.yml]
  B -->|No| D{Default option present in config.yml?}
  D -->|Yes| E[Use default option defined in config.yml]
  D -->|No| F[Use internal default option]

PySpigot首先检查项目的project.yml文件中是否存在一个选项。如果该选项在那里没有定义,那么它将退回到config.yml中的script-option-defaults下定义的默认值。如果这里没有指定默认选项,则将退回到内部定义的默认值。

PySpigot对每个项目选项逐个执行此过程。

选项

main

指定项目的主模块。PySpigot使用这个来确定在项目加载时应该执行哪个模块。这类似于对多模块Python项目调用python main.py,其中main.py是项目的主模块。

1
main: 'main.py'

默认值: main.py

enabled

指定项目是否启用或禁用。要禁用一个项目,请将该值设置为false

1
enabled: true

默认值: true

load-priority

为项目指定一个整数加载优先级。脚本和项目按从最高到最低的加载优先级顺序加载。换句话说,具有较高加载优先级的脚本/项目会更早加载,而具有较低加载优先级的脚本/项目会更晚加载。如果多个脚本和项目具有相同的加载优先级,则按字母顺序加载。

1
load-priority: 1

默认值: 1

plugin-depend

指定该项目需要加载的插件列表。如果服务器上未加载和运行插件依赖关系的任何一个,该项目将无法加载。此外,当插件被卸载/禁用时,根据此选项指定依赖于该插件的任何项目将自动被卸载(如果config.yml中的script-unload-on-plugin-disable选项设置为true)。

1
plugin-depend: ['Citizens', 'Vault']
注意

如果在项目中使用 ProtocolLib 或 PlaceholderAPI,你不需要在这里指定它们。PySpigot 内置支持这两个插件,并且依赖管理是内部处理的。

默认值: 无(空列表)

file-logging-enabled

指定是否启用项目文件记录日志。如果此选项为true,将生成一个项目日志文件,并将任何错误消息(以及发送到项目记录器的打印消息)记录到此文件中。如果此选项为false,则不会将任何消息记录到日志文件中,但消息仍将打印到服务器控制台。

1
file-logging-enabled: true

默认值: true

min-logging-level

指定应记录到项目日志文件和控制台的最低日志级别。选项可以在JavaDocs中找到。

1
min-log-level: 'INFO'

默认值: INFO

permissions

指定项目使用的权限列表。这对希望限制对某些功能访问的项目非常有用。此部分与 Bukkit 插件的 plugin.yml 文件中定义权限的方式完全相同,具体请参阅下方链接:permissions。以下是如何定义权限、默认值和子权限的用法示例代码。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
permissions:
  permission.node.*:
    description: '这是一个权限节点'
    default: op
    children:
      permission.node.child: true
  permission.node.child:
    description: '这是一个子权限节点'
    default: true
  another.permission.node:
    description: '这是另一个权限节点'
    default: not op
  • description 是权限节点的描述,在权限列表中显示。默认值为权限节点的名称。
  • default 是权限节点的默认值,或者换句话说,谁应默认具有该权限节点。default 有四个可能值:
  • op:默认只有服务器操作员具有该权限节点。
  • not op:非操作员的玩家默认具有该权限节点。
  • true:所有玩家都具有该权限(即默认权限)。
  • false:没有玩家具有该权限(即是默认权限)。默认值为 default_permission 的值(如下所述)。
  • children 是应从父权限继承的子权限列表。每个权限节点可能有子节点。当设置为 true 时,子节点将继承父节点权限。

默认值: 无(未定义权限)

permission-default

指定权限应具有的默认值,如果它们未定义default值。

1
2
test.py:
  permission-default: true

permission-default允许的值为opnot optruefalse

  • op:只有服务器操作员默认会具有权限节点。
  • not op:非操作员的玩家会默认具有权限节点。
  • true:所有玩家将拥有该权限(即默认权限)。
  • false:没有玩家会拥有该权限(即默认权限)。

默认值: op