类 SimplePluginManager

java.lang.Object
org.bukkit.plugin.SimplePluginManager
所有已实现的接口:
PluginManager

public final class SimplePluginManager extends Object implements PluginManager
PluginManager的一种实现, 通常服务器使用的PluginManager实现就是本类.
  • 构造器详细资料

  • 方法详细资料

    • registerInterface

      public void registerInterface(@NotNull @NotNull Class<? extends PluginLoader> loader) throws IllegalArgumentException
      注册指定的插件加载器.

      原文:Registers the specified plugin loader

      指定者:
      registerInterface 在接口中 PluginManager
      参数:
      loader - 要注册的 PluginLoader 类
      抛出:
      IllegalArgumentException - 当给定的类不是一个有效的 PluginLoader 时抛出
    • loadPlugins

      @NotNull public @NotNull Plugin[] loadPlugins(@NotNull @NotNull File directory)
      载入指定目录内的插件.

      原文: Loads the plugins contained within the specified directory.

      指定者:
      loadPlugins 在接口中 PluginManager
      参数:
      directory - 指定目录的File对象
      返回:
      返回带有已成功载入的插件Plugin对象的数组
    • loadPlugin

      加载某个文件为插件.

      文件必须对当前的插件加载器有效才会被加载.

      原文:Loads the plugin in the specified file

      File must be valid according to the current enabled Plugin interfaces

      指定者:
      loadPlugin 在接口中 PluginManager
      参数:
      file - 要加载的插件文件
      返回:
      加载成功后的插件对象, 若插件文件无效返回null
      抛出:
      InvalidPluginException - 若指定文件不是一个有效的插件
      UnknownDependencyException - 若插件要求的依赖找不到
    • getPlugin

      @Nullable public @Nullable Plugin getPlugin(@NotNull @NotNull String name)
      检测指定插件是否已加载并在合适时返回其对象.

      请注意插件名区分大小写.

      原文:Checks if the given plugin is loaded and returns it when applicable

      Please note that the name of the plugin is case-sensitive

      指定者:
      getPlugin 在接口中 PluginManager
      参数:
      name - 要检测的插件的名称
      返回:
      如果此插件存在, 返回对应插件对象, 否则返回null
    • getPlugins

      @NotNull public @NotNull Plugin[] getPlugins()
      从接口复制的说明: PluginManager
      获取所有已载入的插件对象.

      原文: Gets a list of all currently loaded plugins.

      指定者:
      getPlugins 在接口中 PluginManager
      返回:
      返回类型为Plugin的数组
    • isPluginEnabled

      public boolean isPluginEnabled(@NotNull @NotNull String name)
      检测指定插件是否已启用.

      请注意插件名区分大小写.

      原文:Checks if the given plugin is enabled or not

      Please note that the name of the plugin is case-sensitive.

      指定者:
      isPluginEnabled 在接口中 PluginManager
      参数:
      name - 要检测的插件的名称
      返回:
      如果此插件已启用, 返回true
    • isPluginEnabled

      public boolean isPluginEnabled(@Nullable @Nullable Plugin plugin)
      检查指定插件是否启用.

      原文: Checks if the given plugin is enabled or not.

      指定者:
      isPluginEnabled 在接口中 PluginManager
      参数:
      plugin - 要检测的插件的对象
      返回:
      如果此插件已启用, 返回true
    • enablePlugin

      public void enablePlugin(@NotNull @NotNull Plugin plugin)
      从接口复制的说明: PluginManager
      启用指定插件.

      尝试启用一个已启用的插件, 什么都不会发生.

      原文:Enables the specified plugin

      Attempting to enable a plugin that is already enabled will have no effect

      指定者:
      enablePlugin 在接口中 PluginManager
      参数:
      plugin - 要启用的插件
    • disablePlugins

      public void disablePlugins()
      从接口复制的说明: PluginManager
      停用所有已载入的插件.

      原文: Disables all the loaded plugins.

      指定者:
      disablePlugins 在接口中 PluginManager
    • disablePlugin

      public void disablePlugin(@NotNull @NotNull Plugin plugin)
      从接口复制的说明: PluginManager
      停用指定的插件.

      尝试停用一个已停用的插件, 什么都不会发生.

      原文:Disables the specified plugin

      Attempting to disable a plugin that is not enabled will have no effect

      指定者:
      disablePlugin 在接口中 PluginManager
      参数:
      plugin - 要停用的插件
    • clearPlugins

      public void clearPlugins()
      从接口复制的说明: PluginManager
      停用并清除所有已启用插件的Plugin对象.

      原文: Disables and removes all plugins.

      指定者:
      clearPlugins 在接口中 PluginManager
    • callEvent

      public void callEvent(@NotNull @NotNull Event event)
      调用一个具有详细信息的事件.

      译注:本方法是线程安全的, 但不可以在同步代码块/同步线程中触发异步事件, 也不可以从异步线程中触发同步事件.

      原文:Calls an event with the given details

      指定者:
      callEvent 在接口中 PluginManager
      参数:
      event - 事件
      抛出:
      IllegalStateException - 当从同步代码中触发异步事件时抛出

      注意:这是插件开发者应尽的义务, 不应用其来测试同步状态. 这是逻辑流有缺陷的迹象

    • registerEvents

      public void registerEvents(@NotNull @NotNull Listener listener, @NotNull @NotNull Plugin plugin)
      从接口复制的说明: PluginManager
      注册在指定监听器类中的所有事件.

      原文:Registers all the events in the given listener class

      指定者:
      registerEvents 在接口中 PluginManager
      参数:
      listener - 要注册的监听器
      plugin - 注册事件的插件
    • registerEvent

      public void registerEvent(@NotNull @NotNull Class<? extends Event> event, @NotNull @NotNull Listener listener, @NotNull @NotNull EventPriority priority, @NotNull @NotNull EventExecutor executor, @NotNull @NotNull Plugin plugin)
      从接口复制的说明: PluginManager
      将指定的执行器注册至指定的事件类.

      原文:Registers the specified executor to the given event class

      指定者:
      registerEvent 在接口中 PluginManager
      参数:
      event - 要注册的事件类型
      listener - 要注册的监听器
      priority - 要注册的事件的优先级
      executor - 要注册的EventExecutor
      plugin - 注册事件的插件
    • registerEvent

      public void registerEvent(@NotNull @NotNull Class<? extends Event> event, @NotNull @NotNull Listener listener, @NotNull @NotNull EventPriority priority, @NotNull @NotNull EventExecutor executor, @NotNull @NotNull Plugin plugin, boolean ignoreCancelled)
      将指定的执行器注册至指定的事件类.

      原文:Registers the specified executor to the given event class

      指定者:
      registerEvent 在接口中 PluginManager
      参数:
      event - 要注册的事件类型
      listener - 要注册的监听器
      priority - 要注册的事件的优先级
      executor - 要注册的EventExecutor
      plugin - 注册事件的插件
      ignoreCancelled - 是否忽略已取消的事件
    • getPermission

      @Nullable public @Nullable Permission getPermission(@NotNull @NotNull String name)
      从接口复制的说明: PluginManager
      以指定的完整权限节点获取对应Permission对象.

      原文:Gets a Permission from its fully qualified name

      指定者:
      getPermission 在接口中 PluginManager
      参数:
      name - Name of the permission
      返回:
      对应Permission对象, 若权限节点不存在返回null
    • addPermission

      public void addPermission(@NotNull @NotNull Permission perm)
      从接口复制的说明: PluginManager
      添加一个Permission至本插件管理器.

      如果已有同名权限, 会抛出一个异常.

      原文:Adds a Permission to this plugin manager.

      If a permission is already defined with the given name of the new permission, an exception will be thrown.

      指定者:
      addPermission 在接口中 PluginManager
      参数:
      perm - 要添加的权限
    • addPermission

      @Deprecated public void addPermission(@NotNull @NotNull Permission perm, boolean dirty)
      已过时。
    • getDefaultPermissions

      @NotNull public @NotNull Set<Permission> getDefaultPermissions(boolean op)
      从接口复制的说明: PluginManager
      获取普通玩家默认拥有的权限或op默认拥有的权限.

      原文: Gets the default permissions for the given op status

      指定者:
      getDefaultPermissions 在接口中 PluginManager
      参数:
      op - 是否获取op状态下默认拥有的权限
      返回:
      返回 普通玩家/OP 默认拥有的权限
    • removePermission

      public void removePermission(@NotNull @NotNull Permission perm)
      从接口复制的说明: PluginManager
      从本插件管理器中移除已注册的权限.

      如果指定的权限未在本插件管理器中注册, 什么都不会发生.

      原文:Removes a Permission registration from this plugin manager.

      If the specified permission does not exist in this plugin manager, nothing will happen.

      Removing a permission registration will not remove the permission from any Permissibles that have it.

      指定者:
      removePermission 在接口中 PluginManager
      参数:
      perm - 要移除的权限
    • removePermission

      public void removePermission(@NotNull @NotNull String name)
      从接口复制的说明: PluginManager
      从本插件管理器中移除已注册的权限.

      如果指定的权限未在本插件管理器中注册, 什么都不会发生.

      原文:Removes a Permission registration from this plugin manager.

      If the specified permission does not exist in this plugin manager, nothing will happen.

      Removing a permission registration will not remove the permission from any Permissibles that have it.

      指定者:
      removePermission 在接口中 PluginManager
      参数:
      name - 要移除的权限
    • recalculatePermissionDefaults

      public void recalculatePermissionDefaults(@NotNull @NotNull Permission perm)
      从接口复制的说明: PluginManager
      重新计算指定权限的默认值.

      若指定的权限未在本插件管理器注册, 将没有效果.

      原文:Recalculates the defaults for the given Permission.

      This will have no effect if the specified permission is not registered here.

      指定者:
      recalculatePermissionDefaults 在接口中 PluginManager
      参数:
      perm - 要重算的权限
    • dirtyPermissibles

      @Deprecated public void dirtyPermissibles()
      已过时。
    • subscribeToPermission

      public void subscribeToPermission(@NotNull @NotNull String permission, @NotNull @NotNull Permissible permissible)
      从接口复制的说明: PluginManager
      以指定的权限名订阅与其有关的 Permissible.

      若指定的权限以任何形式改变, 要求重新计算传入的Permissible.

      原文:Subscribes the given Permissible for information about the requested Permission, by name.

      If the specified Permission changes in any form, the Permissible will be asked to recalculate.

      指定者:
      subscribeToPermission 在接口中 PluginManager
      参数:
      permission - 要订阅的权限
      permissible - 要订阅的Permissible
    • unsubscribeFromPermission

      public void unsubscribeFromPermission(@NotNull @NotNull String permission, @NotNull @NotNull Permissible permissible)
      从接口复制的说明: PluginManager
      以指定的权限名退订与其有关的 Permissible.

      原文:Unsubscribes the given Permissible for information about the requested Permission, by name.

      指定者:
      unsubscribeFromPermission 在接口中 PluginManager
      参数:
      permission - 要退订的权限
      permissible - 已订阅的Permissible
    • getPermissionSubscriptions

      @NotNull public @NotNull Set<Permissible> getPermissionSubscriptions(@NotNull @NotNull String permission)
      从接口复制的说明: PluginManager
      根据权限名获取此权限已订阅的Permissible的集合.

      原文:Gets a set containing all subscribed Permissibles to the given permission, by name

      指定者:
      getPermissionSubscriptions 在接口中 PluginManager
      参数:
      permission - 要检索的权限
      返回:
      包含此权限已订阅的所有Permissible的集合
    • subscribeToDefaultPerms

      public void subscribeToDefaultPerms(boolean op, @NotNull @NotNull Permissible permissible)
      从接口复制的说明: PluginManager
      为普通玩家/op默认权限订阅指定Permissible.

      若指定的默认权限列表以任何形式改动, 要求重新计算传入的Permissible.

      原文:Subscribes to the given Default permissions by operator status

      If the specified defaults change in any form, the Permissible will be asked to recalculate.

      指定者:
      subscribeToDefaultPerms 在接口中 PluginManager
      参数:
      op - 是否根据op的默认权限列表订阅
      permissible - 要订阅的Permissible
    • unsubscribeFromDefaultPerms

      public void unsubscribeFromDefaultPerms(boolean op, @NotNull @NotNull Permissible permissible)
      从接口复制的说明: PluginManager
      退订普通玩家/op默认权限已订阅的Permissible.

      原文:Unsubscribes from the given Default permissions by operator status

      指定者:
      unsubscribeFromDefaultPerms 在接口中 PluginManager
      参数:
      op - 是否根据op的默认权限列表退订
      permissible - 权限已订阅的Permissible
    • getDefaultPermSubscriptions

      @NotNull public @NotNull Set<Permissible> getDefaultPermSubscriptions(boolean op)
      从接口复制的说明: PluginManager
      获取普通玩家/op默认权限列表已订阅的Permissible.

      原文:Gets a set containing all subscribed Permissibles to the given default list, by op status

      指定者:
      getDefaultPermSubscriptions 在接口中 PluginManager
      参数:
      op - 是否根据op的默认权限列表检索
      返回:
      包含所有权限订阅者的集合
    • getPermissions

      @NotNull public @NotNull Set<Permission> getPermissions()
      从接口复制的说明: PluginManager
      获取已注册的权限的集合.

      此集合是一个副本, 对其编辑不会作用于内部的权限列表.

      原文:Gets a set of all registered permissions.

      This set is a copy and will not be modified live.

      指定者:
      getPermissions 在接口中 PluginManager
      返回:
      包含所有已注册权限的集合
    • isTransitiveDepend

      public boolean isTransitiveDepend(@NotNull @NotNull PluginDescriptionFile plugin, @NotNull @NotNull PluginDescriptionFile depend)
    • useTimings

      public boolean useTimings()
      从接口复制的说明: PluginManager
      返回是否在事件调用中使用插件计时器.

      译注:Timings是一个性能分析工具, 通过Timings可以了解 服务器的性能损耗情况, 通过它可以定位插件/服务器代码中性能较差的方法, 并针对性地进行优化. 可以通过"/timings on"开始记录, "/timings paste"上传记录, "/timings off"关闭记录 (仅针对Spigot及其衍生服务端).

      原文:Returns whether or not timing code should be used for event calls

      指定者:
      useTimings 在接口中 PluginManager
      返回:
      若已启用Timings
    • useTimings

      public void useTimings(boolean use)
      设置服务器是否使用 Timings 监测每一个事件代码块的性能状况.

      原文:Sets whether or not per event timing code should be used

      参数:
      use - 是否使用 Timings