⚡ BungeePteroPower ⚡ 当玩家加入/离开时启动/停止服务器!1,7

⚡ BungeePteroPower ⚡ 当玩家加入/离开时启动/停止服务器!1,7

BungeePteroPower
[图片]

BungeePteroPower 是一个插件,可以根据玩家数量自动启动/停止服务器。
当玩家加入或离开 Bungeecord 代理服务器时,它可以在翼龙面板上启动和停止服务器。
这有助于节省服务器资源并更有效地管理服务器。

主要特点

  • 当服务器上有一段时间没有玩家时,使用 Pterodactyl 的 API 自动停止服务器。
  • 当玩家加入服务器时,使用 Pterodactyl 的 API 自动启动服务器。
  • 可以为每个服务器配置关闭前的时间。
  • 权限设置允许指定可以手动启动服务器的玩家和加入时启用自动启动的玩家。

[图片]

要求

  • Java 11 或更高版本

开始

  1. 在翼龙面板中获取 API 密钥。
    • 翼龙的客户端 API 密钥可以在帐户页面的“API 凭据”选项卡中找到。
  2. 将插件添加到 BungeeCord 服务器并启动它。
  3. 在生成的 plugins/BungeePteroPower/config.yml 文件中配置所需的设置
    代码(文本):
    # 翼龙配置
    翼龙:
    # 翼龙面板
    的 URL # 如果您使用 Cloudflare Tunnel,则需要在旁路设置中允许 ip。
    url: “https://panel.example.com”
    # 翼龙面板的客户端 API 密钥。它以“ptlc_”开头。
    # 您可以在“账户”页面的“API 凭证”页签找到客户端 API 密钥。
    apiKey: “ptlc_000000000000000000000000000000000000000000”

    # 每个服务器配置
    服务器:
    pvp:
    # 翼龙服务器 ID
    # 您可以在服务器页面的 URL 中找到翼龙服务器 ID。
    # 例如,如果 URL 为 https://panel.example.com/server/1234abcd,则服务器 ID 为 1234abcd。
    id: 1234abcd
    # 最后一个玩家离开后停止服务器的时间(以秒为单位)。
    # 如果不想自动停止服务器,请设置为 -1。
    # 如果设置为 0,则服务器将在最后一个玩家离开后立即停止。
    超时:30
     

  4. 使用 /ptero reload 命令重新加载配置。
  5. 配置权限设置
    (您必须配置权限才能使用此插件,否则玩家将无法执行任何操作!
    您可以使用以下任一方法。
    • 使用像 LuckPerms 这样的权限插件。
      1. 对于 LuckPerms,请使用以下命令设置权限:
        代码(文本):
        # 播放器可以启动所有服务器
        /lp 用户<player_name>权限集 ptero.autostart.*
        # 播放器可以启动特定服务器
        /lp 用户 <player_name>权限集 ptero.autostart.<server_name>
        # 所有玩家都可以启动所有服务器
        /lp 组默认权限集 ptero.autostart.*

         

        ※ <player_name>是指玩家的名字,<server_name>是指BungeeCord config.yml中指定的服务器名称。

    • 使用内置权限设置。
      1. 打开config.yml。
      2. 将以下设置添加到config.yml文件。
        代码(文本):
        permissions:
        default:
        # 所有玩家都可以启动所有服务器
        – ptero.autostart.*
        # 所有玩家都可以启动特定的服务器
        – ptero.autostart.<server_name>

         

        ※ <server_name>是指BungeeCord config.yml中指定的服务器名称。

      3. 重新启动 BungeeCord 服务器。

用法

:自动启动

  • 当玩家尝试加入 BungeeCord 上的每个服务器时,服务器将自动启动。
    • 此功能仅适用于具有 ptero.autostart.<server_name> 权限的玩家。

手动启动/停止

  • 使用 /ptero start <server_name> 命令手动启动服务器。
    • 此命令仅适用于具有 ptero.start.<server_name> 权限的玩家。
  • 使用 /ptero stop <server_name> 命令手动停止服务器。
    • 此命令仅适用于具有 ptero.stop.<server_name> 权限的玩家。

※ <server_name>是指BungeeCord config.yml中指定的服务器名称。

重新加载config.yml/语言文件

  • 使用 /ptero reload 重新加载config.yml和语言文件。

配置

config.yml文件包括以下设置,但并非所有项目都需要配置。

所需设置

  • 翼龙:配置翼龙的设置,包括 URL 和 API 密钥。
    • url:设置翼龙面板的 URL。(示例:https://panel.example.com/)
      • 如果您使用的是 Cloudflare Tunnel 等服务,请确保对基于 IP 的通信进行正确的绕过设置。
    • apiKey:设置翼龙的客户端 API 密钥。
      • 它从ptlc_开始。
      • 翼龙的客户端 API 密钥可以在帐户页面上的“API 凭据”选项卡中找到。
    • 服务器:配置每个服务器的设置。设置服务器 ID 和自动关机前的时间。
      • id:在翼龙上设置服务器 ID。

可选设置

  • version:设置插件的版本。
    • 更新插件时,如果此值与插件版本不匹配,则会显示警告。
    • 将生成一个config.new.yml文件,并且需要使用合并工具手动迁移设置。
    • 迁移后,请将此值更改为新版本。
  • language:设置要使用的语言。默认值为英语 (en)。
    • 有关支持的语言,请参阅配置文件中的注释。
  • useSynchronousPing:此设置确定登录时是否对服务器执行同步 ping。(实验功能)
    • 启用后,在登录期间对服务器执行 ping 操作将同步进行,而不是异步进行。
    • 这允许在登录时显示BungeePteroPower消息(messages.yml join_autostart_login),而不是“无法连接到默认或后备服务器”消息。
    • 默认值为 false。如果您想在登录后立即在BungeePteroPower中将服务器(如大厅服务器)设置为挂起状态,则启用此功能可能很有用。
  • startTimeout:使用此插件启动服务器后,如果一段时间内没有玩家,它将停止服务器。单位为秒。
    • 启动后,服务器将在 startTimeout 加上服务器的超时持续时间后停止。
    • 将其设置为 1 可使服务器保持运行,直到玩家加入和离开。
  • powerControllerType:设置要使用的电源控制器类型。
    • 内置的PowerController目前仅支持翼龙,翼龙操作翼龙。
    • By adding add-ons, you can add your own custom PowerController.
  • startupJoin: After server startup, it is used to automatically join players to the server and check the server’s status.
    • timeout: Set the maximum waiting time for players to join after server startup.
      • Set this value to the maximum time it takes for the server to start.
      • Setting it to 0 disables this feature, and players will not automatically join after startup.
    • joinDelay: Once the server is pingable, wait the specified amount of seconds before sending the player to the server
      • This is useful to wait for plugins like Luckperms to fully load
      • If you set it to 0, the player will be connected as soon as the server is pingable
    • pingInterval: Set the interval for checking the server’s status.
  • servers: Configure settings for each server. Set the server ID and the time until automatic shutdown.
    • timeout: When there are no players on the server, it will stop after a certain period. The unit is seconds.

Permission Settings

BungeePteroPower plugin allows fine-grained control over commands available to players for each server using permissions.​

 

  • ptero.autostart.<server_name>: Servers will automatically start when players join each server on BungeeCord for players with this permission.
  • ptero.start.<server_name>: Allows the /ptero start <server_name> command to manually start a server.
    • If a player doesn’t have ptero.autostart.<server_name> permission but has this permission, they will see a manual start button when they join the server.
  • ptero.stop.<server_name>: Allows the /ptero stop <server_name> command to manually stop a server.
  • ptero.reload: Allows the /ptero reload command to reload the config.

※ <server_name>是指BungeeCord config.yml中指定的服务器名称。
※ 指定 * 以<server_name>将权限应用于所有服务器。

关于语言文件

  • 您可以使用 language 选项在 config.yml 中设置语言。
    • 有关支持的语言,请参阅配置文件中的注释。
  • 启动后,将生成一个config.yml中设置的语言文件。
    • 此文件允许您仅定义要更改的消息。
    • 未定义的消息将从插件中设置的语言文件加载。
  • 您可以使用 /ptero reload 命令编辑并重新加载插件的语言。
  • 欢迎通过拉取请求贡献其他语言文件。

源代码

  • 源代码可在 GitHub 上找到。

插件开发人员

有关电源控制器的信息

BungeePteroPower 提供了一个电源控制器 API,用于支持翼龙以外的平台。
通过创建附加组件,您可以为翼龙以外的平台添加电源控制器!

我们也欢迎添加内置电源控制器的拉取请求!
理想情况下,我们希望支持以下内容:

  • 可在本地启动服务器的电源控制器
  • 电源控制器与翼龙以外的管理软件兼容。
    例如,我们希望支持以下内容:
    • Minecraft服务器管理器
    • MCSManager
    • MC 服务器软件

创建附加组件

  • BungeePteroPower 提供了一个用于与其他插件集成的 API。
    • 如果您想支持翼龙以外的平台,可以通过实现 API 来实现。
  • 您可以通过添加依赖项来使用 BungeePteroPower API。
    1. 在附加组件的pom.xml中添加 JitPack 存储库:
      代码(文本):
      <存储库>
      <存储库>
      <id>jitpack.io</id>
      <url>https://jitpack.io</url>
      </存储库>
      </存储库>

       
    2. 添加 BungeePteroPower 作为依赖项:
      代码(文本):
      <依赖项>
      <groupId>com.github.Kamesuta</groupId>
      <artifactId>BungeePteroPower</artifactId>
      <version>version</version>
      </dependency>

       
    3. 将依赖项添加到plugin.yml:
      代码(文本):
      取决于:
      – BungeePteroPower

       
    4. 使用 API:
      代码(文本):
      导入 com.kamesuta.bungeepteropower.api.BungeePteroPowerAPI;

      public class YourPlugin extends JavaPlugin {
      @Override
      public void onEnable() {
      // 获取BungeePteroPowerAPI
      实例 BungeePteroPowerAPI api = BungeePteroPowerAPI.getInstance();
      // 注册自定义PowerController
      api.registerPowerController(“your_service”, new YourPowerController());
          }
      }
       

  • 如果您希望将PowerController添加到BungeePteroPower中,请发送拉取请求。

关于统计数据

BungeePteroPower 使用 bStats 收集匿名统计数据。
您可以在此处找到统计数据。

bStats 用于了解插件的用法并帮助改进它。
要禁用统计数据的收集,请在 plugins/bStats/config.yml 中将 enabled 设置为 false

20240219101757321-dianjixiazai

 

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享