SPIGOT-2540: Add nullability annotations to entire Bukkit API
By: Darkyenus <darkyenus@gmail.com>
This commit is contained in:
@@ -3,10 +3,11 @@ package org.bukkit.plugin;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.EventException;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Interface which defines the class for event call backs to plugins
|
||||
*/
|
||||
public interface EventExecutor {
|
||||
public void execute(Listener listener, Event event) throws EventException;
|
||||
public void execute(@NotNull Listener listener, @NotNull Event event) throws EventException;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ import org.bukkit.Server;
|
||||
import org.bukkit.command.TabExecutor;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.generator.ChunkGenerator;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* Represents a Plugin
|
||||
@@ -21,6 +23,7 @@ public interface Plugin extends TabExecutor {
|
||||
*
|
||||
* @return The folder
|
||||
*/
|
||||
@NotNull
|
||||
public File getDataFolder();
|
||||
|
||||
/**
|
||||
@@ -28,6 +31,7 @@ public interface Plugin extends TabExecutor {
|
||||
*
|
||||
* @return Contents of the plugin.yaml file
|
||||
*/
|
||||
@NotNull
|
||||
public PluginDescriptionFile getDescription();
|
||||
|
||||
/**
|
||||
@@ -39,6 +43,7 @@ public interface Plugin extends TabExecutor {
|
||||
*
|
||||
* @return Plugin configuration
|
||||
*/
|
||||
@NotNull
|
||||
public FileConfiguration getConfig();
|
||||
|
||||
/**
|
||||
@@ -47,7 +52,8 @@ public interface Plugin extends TabExecutor {
|
||||
* @param filename Filename of the resource
|
||||
* @return File if found, otherwise null
|
||||
*/
|
||||
public InputStream getResource(String filename);
|
||||
@Nullable
|
||||
public InputStream getResource(@NotNull String filename);
|
||||
|
||||
/**
|
||||
* Saves the {@link FileConfiguration} retrievable by {@link #getConfig()}.
|
||||
@@ -76,7 +82,7 @@ public interface Plugin extends TabExecutor {
|
||||
* @throws IllegalArgumentException if the resource path is null, empty,
|
||||
* or points to a nonexistent resource.
|
||||
*/
|
||||
public void saveResource(String resourcePath, boolean replace);
|
||||
public void saveResource(@NotNull String resourcePath, boolean replace);
|
||||
|
||||
/**
|
||||
* Discards any data in {@link #getConfig()} and reloads from disk.
|
||||
@@ -88,6 +94,7 @@ public interface Plugin extends TabExecutor {
|
||||
*
|
||||
* @return PluginLoader that controls this plugin
|
||||
*/
|
||||
@NotNull
|
||||
public PluginLoader getPluginLoader();
|
||||
|
||||
/**
|
||||
@@ -95,6 +102,7 @@ public interface Plugin extends TabExecutor {
|
||||
*
|
||||
* @return Server running this plugin
|
||||
*/
|
||||
@NotNull
|
||||
public Server getServer();
|
||||
|
||||
/**
|
||||
@@ -146,7 +154,8 @@ public interface Plugin extends TabExecutor {
|
||||
* generator was requested
|
||||
* @return ChunkGenerator for use in the default world generation
|
||||
*/
|
||||
public ChunkGenerator getDefaultWorldGenerator(String worldName, String id);
|
||||
@Nullable
|
||||
public ChunkGenerator getDefaultWorldGenerator(@NotNull String worldName, @Nullable String id);
|
||||
|
||||
/**
|
||||
* Returns the plugin logger associated with this server's logger. The
|
||||
@@ -155,6 +164,7 @@ public interface Plugin extends TabExecutor {
|
||||
*
|
||||
* @return Logger associated with this plugin
|
||||
*/
|
||||
@NotNull
|
||||
public Logger getLogger();
|
||||
|
||||
/**
|
||||
@@ -165,5 +175,6 @@ public interface Plugin extends TabExecutor {
|
||||
*
|
||||
* @return name of the plugin
|
||||
*/
|
||||
@NotNull
|
||||
public String getName();
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package org.bukkit.plugin;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Represents a base {@link Plugin}
|
||||
* <p>
|
||||
@@ -26,6 +28,7 @@ public abstract class PluginBase implements Plugin {
|
||||
return getName().equals(((Plugin) obj).getName());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final String getName() {
|
||||
return getDescription().getName();
|
||||
}
|
||||
|
||||
@@ -10,12 +10,17 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.PluginCommand;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.permissions.Permissible;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.permissions.PermissionDefault;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.yaml.snakeyaml.Yaml;
|
||||
import org.yaml.snakeyaml.constructor.AbstractConstruct;
|
||||
import org.yaml.snakeyaml.constructor.SafeConstructor;
|
||||
@@ -179,12 +184,14 @@ public final class PluginDescriptionFile {
|
||||
private static final Pattern VALID_NAME = Pattern.compile("^[A-Za-z0-9 _.-]+$");
|
||||
private static final ThreadLocal<Yaml> YAML = new ThreadLocal<Yaml>() {
|
||||
@Override
|
||||
@NotNull
|
||||
protected Yaml initialValue() {
|
||||
return new Yaml(new SafeConstructor() {
|
||||
{
|
||||
yamlConstructors.put(null, new AbstractConstruct() {
|
||||
@NotNull
|
||||
@Override
|
||||
public Object construct(final Node node) {
|
||||
public Object construct(@NotNull final Node node) {
|
||||
if (!node.getTag().startsWith("!@")) {
|
||||
// Unknown tag - will fail
|
||||
return SafeConstructor.undefinedConstructor.construct(node);
|
||||
@@ -200,8 +207,9 @@ public final class PluginDescriptionFile {
|
||||
});
|
||||
for (final PluginAwareness.Flags flag : PluginAwareness.Flags.values()) {
|
||||
yamlConstructors.put(new Tag("!@" + flag.name()), new AbstractConstruct() {
|
||||
@NotNull
|
||||
@Override
|
||||
public PluginAwareness.Flags construct(final Node node) {
|
||||
public PluginAwareness.Flags construct(@NotNull final Node node) {
|
||||
return flag;
|
||||
}
|
||||
});
|
||||
@@ -218,7 +226,7 @@ public final class PluginDescriptionFile {
|
||||
private List<String> softDepend = ImmutableList.of();
|
||||
private List<String> loadBefore = ImmutableList.of();
|
||||
private String version = null;
|
||||
private Map<String, Map<String, Object>> commands = null;
|
||||
private Map<String, Map<String, Object>> commands = ImmutableMap.of();
|
||||
private String description = null;
|
||||
private List<String> authors = null;
|
||||
private String website = null;
|
||||
@@ -230,7 +238,7 @@ public final class PluginDescriptionFile {
|
||||
private Set<PluginAwareness> awareness = ImmutableSet.of();
|
||||
private String apiVersion = null;
|
||||
|
||||
public PluginDescriptionFile(final InputStream stream) throws InvalidDescriptionException {
|
||||
public PluginDescriptionFile(@NotNull final InputStream stream) throws InvalidDescriptionException {
|
||||
loadMap(asMap(YAML.get().load(stream)));
|
||||
}
|
||||
|
||||
@@ -241,7 +249,7 @@ public final class PluginDescriptionFile {
|
||||
* @throws InvalidDescriptionException If the PluginDescriptionFile is
|
||||
* invalid
|
||||
*/
|
||||
public PluginDescriptionFile(final Reader reader) throws InvalidDescriptionException {
|
||||
public PluginDescriptionFile(@NotNull final Reader reader) throws InvalidDescriptionException {
|
||||
loadMap(asMap(YAML.get().load(reader)));
|
||||
}
|
||||
|
||||
@@ -252,7 +260,7 @@ public final class PluginDescriptionFile {
|
||||
* @param pluginVersion Version of this plugin
|
||||
* @param mainClass Full location of the main class of this plugin
|
||||
*/
|
||||
public PluginDescriptionFile(final String pluginName, final String pluginVersion, final String mainClass) {
|
||||
public PluginDescriptionFile(@NotNull final String pluginName, @NotNull final String pluginVersion, @NotNull final String mainClass) {
|
||||
name = rawName = pluginName;
|
||||
|
||||
if (!VALID_NAME.matcher(name).matches()) {
|
||||
@@ -288,6 +296,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return the name of the plugin
|
||||
*/
|
||||
@NotNull
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
@@ -308,6 +317,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return the version of the plugin
|
||||
*/
|
||||
@NotNull
|
||||
public String getVersion() {
|
||||
return version;
|
||||
}
|
||||
@@ -334,6 +344,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return the fully qualified main class for the plugin
|
||||
*/
|
||||
@NotNull
|
||||
public String getMain() {
|
||||
return main;
|
||||
}
|
||||
@@ -353,6 +364,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return description of this plugin, or null if not specified
|
||||
*/
|
||||
@Nullable
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
@@ -376,6 +388,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return the phase when the plugin should be loaded
|
||||
*/
|
||||
@NotNull
|
||||
public PluginLoadOrder getLoad() {
|
||||
return order;
|
||||
}
|
||||
@@ -411,6 +424,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return an immutable list of the plugin's authors
|
||||
*/
|
||||
@NotNull
|
||||
public List<String> getAuthors() {
|
||||
return authors;
|
||||
}
|
||||
@@ -430,6 +444,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return description of this plugin, or null if not specified
|
||||
*/
|
||||
@Nullable
|
||||
public String getWebsite() {
|
||||
return website;
|
||||
}
|
||||
@@ -460,6 +475,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return immutable list of the plugin's dependencies
|
||||
*/
|
||||
@NotNull
|
||||
public List<String> getDepend() {
|
||||
return depend;
|
||||
}
|
||||
@@ -489,6 +505,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return immutable list of the plugin's preferred dependencies
|
||||
*/
|
||||
@NotNull
|
||||
public List<String> getSoftDepend() {
|
||||
return softDepend;
|
||||
}
|
||||
@@ -518,6 +535,7 @@ public final class PluginDescriptionFile {
|
||||
* @return immutable list of plugins that should consider this plugin a
|
||||
* soft-dependency
|
||||
*/
|
||||
@NotNull
|
||||
public List<String> getLoadBefore() {
|
||||
return loadBefore;
|
||||
}
|
||||
@@ -537,6 +555,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return the prefixed logging token, or null if not specified
|
||||
*/
|
||||
@Nullable
|
||||
public String getPrefix() {
|
||||
return prefix;
|
||||
}
|
||||
@@ -589,8 +608,7 @@ public final class PluginDescriptionFile {
|
||||
* standard one if no specific message is defined. Without the
|
||||
* permission node, no {@link
|
||||
* PluginCommand#setExecutor(CommandExecutor) CommandExecutor} or
|
||||
* {@link PluginCommand#setTabCompleter(TabCompleter)
|
||||
* TabCompleter} will be called.</td>
|
||||
* {@link PluginCommand#setTabCompleter(TabCompleter)} will be called.</td>
|
||||
* <td><blockquote><pre>permission: inferno.flagrate</pre></blockquote></td>
|
||||
* </tr><tr>
|
||||
* <td><code>permission-message</code></td>
|
||||
@@ -612,9 +630,8 @@ public final class PluginDescriptionFile {
|
||||
* <td>String</td>
|
||||
* <td>This message is displayed to a player when the {@link
|
||||
* PluginCommand#setExecutor(CommandExecutor)} {@linkplain
|
||||
* CommandExecutor#onCommand(CommandSender,Command,String,String[])
|
||||
* returns false}. <command> is a macro that is replaced
|
||||
* the command issued.</td>
|
||||
* CommandExecutor#onCommand(CommandSender, Command, String, String[]) returns false}.
|
||||
* <command> is a macro that is replaced the command issued.</td>
|
||||
* <td><blockquote><pre>usage: Syntax error! Perhaps you meant /<command> PlayerName?</pre></blockquote>
|
||||
* It is worth noting that to use a colon in a yaml, like
|
||||
* <code>`usage: Usage: /god [player]'</code>, you need to
|
||||
@@ -657,6 +674,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return the commands this plugin will register
|
||||
*/
|
||||
@NotNull
|
||||
public Map<String, Map<String, Object>> getCommands() {
|
||||
return commands;
|
||||
}
|
||||
@@ -769,6 +787,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return the permissions this plugin will register
|
||||
*/
|
||||
@NotNull
|
||||
public List<Permission> getPermissions() {
|
||||
if (permissions == null) {
|
||||
if (lazyPermissions == null) {
|
||||
@@ -798,6 +817,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return the default value for the plugin's permissions
|
||||
*/
|
||||
@NotNull
|
||||
public PermissionDefault getPermissionDefault() {
|
||||
return defaultPerm;
|
||||
}
|
||||
@@ -837,6 +857,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return a set containing every awareness for the plugin
|
||||
*/
|
||||
@NotNull
|
||||
public Set<PluginAwareness> getAwareness() {
|
||||
return awareness;
|
||||
}
|
||||
@@ -848,6 +869,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return a descriptive name of the plugin and respective version
|
||||
*/
|
||||
@NotNull
|
||||
public String getFullName() {
|
||||
return name + " v" + version;
|
||||
}
|
||||
@@ -865,6 +887,7 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @return the version of the plugin
|
||||
*/
|
||||
@Nullable
|
||||
public String getAPIVersion() {
|
||||
return apiVersion;
|
||||
}
|
||||
@@ -874,6 +897,7 @@ public final class PluginDescriptionFile {
|
||||
* @deprecated unused
|
||||
*/
|
||||
@Deprecated
|
||||
@Nullable
|
||||
public String getClassLoaderOf() {
|
||||
return classLoaderOf;
|
||||
}
|
||||
@@ -883,11 +907,11 @@ public final class PluginDescriptionFile {
|
||||
*
|
||||
* @param writer Writer to output this file to
|
||||
*/
|
||||
public void save(Writer writer) {
|
||||
public void save(@NotNull Writer writer) {
|
||||
YAML.get().dump(saveMap(), writer);
|
||||
}
|
||||
|
||||
private void loadMap(Map<?, ?> map) throws InvalidDescriptionException {
|
||||
private void loadMap(@NotNull Map<?, ?> map) throws InvalidDescriptionException {
|
||||
try {
|
||||
name = rawName = map.get("name").toString();
|
||||
|
||||
@@ -1033,7 +1057,8 @@ public final class PluginDescriptionFile {
|
||||
}
|
||||
}
|
||||
|
||||
private static List<String> makePluginNameList(final Map<?, ?> map, final String key) throws InvalidDescriptionException {
|
||||
@NotNull
|
||||
private static List<String> makePluginNameList(@NotNull final Map<?, ?> map, @NotNull final String key) throws InvalidDescriptionException {
|
||||
final Object value = map.get(key);
|
||||
if (value == null) {
|
||||
return ImmutableList.of();
|
||||
@@ -1052,6 +1077,7 @@ public final class PluginDescriptionFile {
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private Map<String, Object> saveMap() {
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
@@ -1098,7 +1124,8 @@ public final class PluginDescriptionFile {
|
||||
return map;
|
||||
}
|
||||
|
||||
private Map<?, ?> asMap(Object object) throws InvalidDescriptionException {
|
||||
@NotNull
|
||||
private Map<?, ?> asMap(@NotNull Object object) throws InvalidDescriptionException {
|
||||
if (object instanceof Map) {
|
||||
return (Map<?, ?>) object;
|
||||
}
|
||||
@@ -1110,6 +1137,7 @@ public final class PluginDescriptionFile {
|
||||
* @deprecated Internal use
|
||||
*/
|
||||
@Deprecated
|
||||
@NotNull
|
||||
public String getRawName() {
|
||||
return rawName;
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Represents a plugin loader, which handles direct access to specific types
|
||||
@@ -25,7 +26,8 @@ public interface PluginLoader {
|
||||
* @throws UnknownDependencyException If a required dependency could not
|
||||
* be found
|
||||
*/
|
||||
public Plugin loadPlugin(File file) throws InvalidPluginException, UnknownDependencyException;
|
||||
@NotNull
|
||||
public Plugin loadPlugin(@NotNull File file) throws InvalidPluginException, UnknownDependencyException;
|
||||
|
||||
/**
|
||||
* Loads a PluginDescriptionFile from the specified file
|
||||
@@ -36,13 +38,15 @@ public interface PluginLoader {
|
||||
* @throws InvalidDescriptionException If the plugin description file
|
||||
* could not be created
|
||||
*/
|
||||
public PluginDescriptionFile getPluginDescription(File file) throws InvalidDescriptionException;
|
||||
@NotNull
|
||||
public PluginDescriptionFile getPluginDescription(@NotNull File file) throws InvalidDescriptionException;
|
||||
|
||||
/**
|
||||
* Returns a list of all filename filters expected by this PluginLoader
|
||||
*
|
||||
* @return The filters
|
||||
*/
|
||||
@NotNull
|
||||
public Pattern[] getPluginFileFilters();
|
||||
|
||||
/**
|
||||
@@ -53,7 +57,8 @@ public interface PluginLoader {
|
||||
* @param plugin The plugin to use when creating registered listeners
|
||||
* @return The registered listeners.
|
||||
*/
|
||||
public Map<Class<? extends Event>, Set<RegisteredListener>> createRegisteredListeners(Listener listener, Plugin plugin);
|
||||
@NotNull
|
||||
public Map<Class<? extends Event>, Set<RegisteredListener>> createRegisteredListeners(@NotNull Listener listener, @NotNull Plugin plugin);
|
||||
|
||||
/**
|
||||
* Enables the specified plugin
|
||||
@@ -63,7 +68,7 @@ public interface PluginLoader {
|
||||
*
|
||||
* @param plugin Plugin to enable
|
||||
*/
|
||||
public void enablePlugin(Plugin plugin);
|
||||
public void enablePlugin(@NotNull Plugin plugin);
|
||||
|
||||
/**
|
||||
* Disables the specified plugin
|
||||
@@ -72,5 +77,5 @@ public interface PluginLoader {
|
||||
*
|
||||
* @param plugin Plugin to disable
|
||||
*/
|
||||
public void disablePlugin(Plugin plugin);
|
||||
public void disablePlugin(@NotNull Plugin plugin);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package org.bukkit.plugin;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.LogRecord;
|
||||
import java.util.logging.Logger;
|
||||
@@ -19,7 +21,7 @@ public class PluginLogger extends Logger {
|
||||
*
|
||||
* @param context A reference to the plugin
|
||||
*/
|
||||
public PluginLogger(Plugin context) {
|
||||
public PluginLogger(@NotNull Plugin context) {
|
||||
super(context.getClass().getCanonicalName(), null);
|
||||
String prefix = context.getDescription().getPrefix();
|
||||
pluginName = prefix != null ? new StringBuilder().append("[").append(prefix).append("] ").toString() : "[" + context.getDescription().getName() + "] ";
|
||||
@@ -28,7 +30,7 @@ public class PluginLogger extends Logger {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log(LogRecord logRecord) {
|
||||
public void log(@NotNull LogRecord logRecord) {
|
||||
logRecord.setMessage(pluginName + logRecord.getMessage());
|
||||
super.log(logRecord);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,9 @@ import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.permissions.Permissible;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* Handles all plugin management from the Server
|
||||
@@ -21,7 +24,7 @@ public interface PluginManager {
|
||||
* @throws IllegalArgumentException Thrown when the given Class is not a
|
||||
* valid PluginLoader
|
||||
*/
|
||||
public void registerInterface(Class<? extends PluginLoader> loader) throws IllegalArgumentException;
|
||||
public void registerInterface(@NotNull Class<? extends PluginLoader> loader) throws IllegalArgumentException;
|
||||
|
||||
/**
|
||||
* Checks if the given plugin is loaded and returns it when applicable
|
||||
@@ -31,13 +34,15 @@ public interface PluginManager {
|
||||
* @param name Name of the plugin to check
|
||||
* @return Plugin if it exists, otherwise null
|
||||
*/
|
||||
public Plugin getPlugin(String name);
|
||||
@Nullable
|
||||
public Plugin getPlugin(@NotNull String name);
|
||||
|
||||
/**
|
||||
* Gets a list of all currently loaded plugins
|
||||
*
|
||||
* @return Array of Plugins
|
||||
*/
|
||||
@NotNull
|
||||
public Plugin[] getPlugins();
|
||||
|
||||
/**
|
||||
@@ -48,7 +53,7 @@ public interface PluginManager {
|
||||
* @param name Name of the plugin to check
|
||||
* @return true if the plugin is enabled, otherwise false
|
||||
*/
|
||||
public boolean isPluginEnabled(String name);
|
||||
public boolean isPluginEnabled(@NotNull String name);
|
||||
|
||||
/**
|
||||
* Checks if the given plugin is enabled or not
|
||||
@@ -56,7 +61,8 @@ public interface PluginManager {
|
||||
* @param plugin Plugin to check
|
||||
* @return true if the plugin is enabled, otherwise false
|
||||
*/
|
||||
public boolean isPluginEnabled(Plugin plugin);
|
||||
@Contract("null -> false")
|
||||
public boolean isPluginEnabled(@Nullable Plugin plugin);
|
||||
|
||||
/**
|
||||
* Loads the plugin in the specified file
|
||||
@@ -72,7 +78,8 @@ public interface PluginManager {
|
||||
* @throws UnknownDependencyException If a required dependency could not
|
||||
* be resolved
|
||||
*/
|
||||
public Plugin loadPlugin(File file) throws InvalidPluginException, InvalidDescriptionException, UnknownDependencyException;
|
||||
@Nullable
|
||||
public Plugin loadPlugin(@NotNull File file) throws InvalidPluginException, InvalidDescriptionException, UnknownDependencyException;
|
||||
|
||||
/**
|
||||
* Loads the plugins contained within the specified directory
|
||||
@@ -80,7 +87,8 @@ public interface PluginManager {
|
||||
* @param directory Directory to check for plugins
|
||||
* @return A list of all plugins loaded
|
||||
*/
|
||||
public Plugin[] loadPlugins(File directory);
|
||||
@NotNull
|
||||
public Plugin[] loadPlugins(@NotNull File directory);
|
||||
|
||||
/**
|
||||
* Disables all the loaded plugins
|
||||
@@ -102,7 +110,7 @@ public interface PluginManager {
|
||||
* <i>Note: This is best-effort basis, and should not be used to test
|
||||
* synchronized state. This is an indicator for flawed flow logic.</i>
|
||||
*/
|
||||
public void callEvent(Event event) throws IllegalStateException;
|
||||
public void callEvent(@NotNull Event event) throws IllegalStateException;
|
||||
|
||||
/**
|
||||
* Registers all the events in the given listener class
|
||||
@@ -110,7 +118,7 @@ public interface PluginManager {
|
||||
* @param listener Listener to register
|
||||
* @param plugin Plugin to register
|
||||
*/
|
||||
public void registerEvents(Listener listener, Plugin plugin);
|
||||
public void registerEvents(@NotNull Listener listener, @NotNull Plugin plugin);
|
||||
|
||||
/**
|
||||
* Registers the specified executor to the given event class
|
||||
@@ -121,7 +129,7 @@ public interface PluginManager {
|
||||
* @param executor EventExecutor to register
|
||||
* @param plugin Plugin to register
|
||||
*/
|
||||
public void registerEvent(Class<? extends Event> event, Listener listener, EventPriority priority, EventExecutor executor, Plugin plugin);
|
||||
public void registerEvent(@NotNull Class<? extends Event> event, @NotNull Listener listener, @NotNull EventPriority priority, @NotNull EventExecutor executor, @NotNull Plugin plugin);
|
||||
|
||||
/**
|
||||
* Registers the specified executor to the given event class
|
||||
@@ -133,7 +141,7 @@ public interface PluginManager {
|
||||
* @param plugin Plugin to register
|
||||
* @param ignoreCancelled Whether to pass cancelled events or not
|
||||
*/
|
||||
public void registerEvent(Class<? extends Event> event, Listener listener, EventPriority priority, EventExecutor executor, Plugin plugin, boolean ignoreCancelled);
|
||||
public void registerEvent(@NotNull Class<? extends Event> event, @NotNull Listener listener, @NotNull EventPriority priority, @NotNull EventExecutor executor, @NotNull Plugin plugin, boolean ignoreCancelled);
|
||||
|
||||
/**
|
||||
* Enables the specified plugin
|
||||
@@ -143,7 +151,7 @@ public interface PluginManager {
|
||||
*
|
||||
* @param plugin Plugin to enable
|
||||
*/
|
||||
public void enablePlugin(Plugin plugin);
|
||||
public void enablePlugin(@NotNull Plugin plugin);
|
||||
|
||||
/**
|
||||
* Disables the specified plugin
|
||||
@@ -152,7 +160,7 @@ public interface PluginManager {
|
||||
*
|
||||
* @param plugin Plugin to disable
|
||||
*/
|
||||
public void disablePlugin(Plugin plugin);
|
||||
public void disablePlugin(@NotNull Plugin plugin);
|
||||
|
||||
/**
|
||||
* Gets a {@link Permission} from its fully qualified name
|
||||
@@ -160,7 +168,8 @@ public interface PluginManager {
|
||||
* @param name Name of the permission
|
||||
* @return Permission, or null if none
|
||||
*/
|
||||
public Permission getPermission(String name);
|
||||
@Nullable
|
||||
public Permission getPermission(@NotNull String name);
|
||||
|
||||
/**
|
||||
* Adds a {@link Permission} to this plugin manager.
|
||||
@@ -172,7 +181,7 @@ public interface PluginManager {
|
||||
* @throws IllegalArgumentException Thrown when a permission with the same
|
||||
* name already exists
|
||||
*/
|
||||
public void addPermission(Permission perm);
|
||||
public void addPermission(@NotNull Permission perm);
|
||||
|
||||
/**
|
||||
* Removes a {@link Permission} registration from this plugin manager.
|
||||
@@ -185,7 +194,7 @@ public interface PluginManager {
|
||||
*
|
||||
* @param perm Permission to remove
|
||||
*/
|
||||
public void removePermission(Permission perm);
|
||||
public void removePermission(@NotNull Permission perm);
|
||||
|
||||
/**
|
||||
* Removes a {@link Permission} registration from this plugin manager.
|
||||
@@ -198,7 +207,7 @@ public interface PluginManager {
|
||||
*
|
||||
* @param name Permission to remove
|
||||
*/
|
||||
public void removePermission(String name);
|
||||
public void removePermission(@NotNull String name);
|
||||
|
||||
/**
|
||||
* Gets the default permissions for the given op status
|
||||
@@ -206,6 +215,7 @@ public interface PluginManager {
|
||||
* @param op Which set of default permissions to get
|
||||
* @return The default permissions
|
||||
*/
|
||||
@NotNull
|
||||
public Set<Permission> getDefaultPermissions(boolean op);
|
||||
|
||||
/**
|
||||
@@ -216,7 +226,7 @@ public interface PluginManager {
|
||||
*
|
||||
* @param perm Permission to recalculate
|
||||
*/
|
||||
public void recalculatePermissionDefaults(Permission perm);
|
||||
public void recalculatePermissionDefaults(@NotNull Permission perm);
|
||||
|
||||
/**
|
||||
* Subscribes the given Permissible for information about the requested
|
||||
@@ -228,7 +238,7 @@ public interface PluginManager {
|
||||
* @param permission Permission to subscribe to
|
||||
* @param permissible Permissible subscribing
|
||||
*/
|
||||
public void subscribeToPermission(String permission, Permissible permissible);
|
||||
public void subscribeToPermission(@NotNull String permission, @NotNull Permissible permissible);
|
||||
|
||||
/**
|
||||
* Unsubscribes the given Permissible for information about the requested
|
||||
@@ -237,7 +247,7 @@ public interface PluginManager {
|
||||
* @param permission Permission to unsubscribe from
|
||||
* @param permissible Permissible subscribing
|
||||
*/
|
||||
public void unsubscribeFromPermission(String permission, Permissible permissible);
|
||||
public void unsubscribeFromPermission(@NotNull String permission, @NotNull Permissible permissible);
|
||||
|
||||
/**
|
||||
* Gets a set containing all subscribed {@link Permissible}s to the given
|
||||
@@ -246,7 +256,8 @@ public interface PluginManager {
|
||||
* @param permission Permission to query for
|
||||
* @return Set containing all subscribed permissions
|
||||
*/
|
||||
public Set<Permissible> getPermissionSubscriptions(String permission);
|
||||
@NotNull
|
||||
public Set<Permissible> getPermissionSubscriptions(@NotNull String permission);
|
||||
|
||||
/**
|
||||
* Subscribes to the given Default permissions by operator status
|
||||
@@ -257,7 +268,7 @@ public interface PluginManager {
|
||||
* @param op Default list to subscribe to
|
||||
* @param permissible Permissible subscribing
|
||||
*/
|
||||
public void subscribeToDefaultPerms(boolean op, Permissible permissible);
|
||||
public void subscribeToDefaultPerms(boolean op, @NotNull Permissible permissible);
|
||||
|
||||
/**
|
||||
* Unsubscribes from the given Default permissions by operator status
|
||||
@@ -265,7 +276,7 @@ public interface PluginManager {
|
||||
* @param op Default list to unsubscribe from
|
||||
* @param permissible Permissible subscribing
|
||||
*/
|
||||
public void unsubscribeFromDefaultPerms(boolean op, Permissible permissible);
|
||||
public void unsubscribeFromDefaultPerms(boolean op, @NotNull Permissible permissible);
|
||||
|
||||
/**
|
||||
* Gets a set containing all subscribed {@link Permissible}s to the given
|
||||
@@ -274,6 +285,7 @@ public interface PluginManager {
|
||||
* @param op Default list to query for
|
||||
* @return Set containing all subscribed permissions
|
||||
*/
|
||||
@NotNull
|
||||
public Set<Permissible> getDefaultPermSubscriptions(boolean op);
|
||||
|
||||
/**
|
||||
@@ -283,6 +295,7 @@ public interface PluginManager {
|
||||
*
|
||||
* @return Set containing all current registered permissions
|
||||
*/
|
||||
@NotNull
|
||||
public Set<Permission> getPermissions();
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.bukkit.plugin;
|
||||
|
||||
import org.bukkit.event.*;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Stores relevant information for plugin listeners
|
||||
@@ -12,7 +13,7 @@ public class RegisteredListener {
|
||||
private final EventExecutor executor;
|
||||
private final boolean ignoreCancelled;
|
||||
|
||||
public RegisteredListener(final Listener listener, final EventExecutor executor, final EventPriority priority, final Plugin plugin, final boolean ignoreCancelled) {
|
||||
public RegisteredListener(@NotNull final Listener listener, @NotNull final EventExecutor executor, @NotNull final EventPriority priority, @NotNull final Plugin plugin, final boolean ignoreCancelled) {
|
||||
this.listener = listener;
|
||||
this.priority = priority;
|
||||
this.plugin = plugin;
|
||||
@@ -25,6 +26,7 @@ public class RegisteredListener {
|
||||
*
|
||||
* @return Registered Listener
|
||||
*/
|
||||
@NotNull
|
||||
public Listener getListener() {
|
||||
return listener;
|
||||
}
|
||||
@@ -34,6 +36,7 @@ public class RegisteredListener {
|
||||
*
|
||||
* @return Registered Plugin
|
||||
*/
|
||||
@NotNull
|
||||
public Plugin getPlugin() {
|
||||
return plugin;
|
||||
}
|
||||
@@ -43,6 +46,7 @@ public class RegisteredListener {
|
||||
*
|
||||
* @return Registered Priority
|
||||
*/
|
||||
@NotNull
|
||||
public EventPriority getPriority() {
|
||||
return priority;
|
||||
}
|
||||
@@ -53,7 +57,7 @@ public class RegisteredListener {
|
||||
* @param event The event
|
||||
* @throws EventException If an event handler throws an exception.
|
||||
*/
|
||||
public void callEvent(final Event event) throws EventException {
|
||||
public void callEvent(@NotNull final Event event) throws EventException {
|
||||
if (event instanceof Cancellable) {
|
||||
if (((Cancellable) event).isCancelled() && isIgnoringCancelled()) {
|
||||
return;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package org.bukkit.plugin;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* A registered service provider.
|
||||
*
|
||||
@@ -12,31 +14,34 @@ public class RegisteredServiceProvider<T> implements Comparable<RegisteredServic
|
||||
private T provider;
|
||||
private ServicePriority priority;
|
||||
|
||||
public RegisteredServiceProvider(Class<T> service, T provider, ServicePriority priority, Plugin plugin) {
|
||||
|
||||
public RegisteredServiceProvider(@NotNull Class<T> service, @NotNull T provider, @NotNull ServicePriority priority, @NotNull Plugin plugin) {
|
||||
this.service = service;
|
||||
this.plugin = plugin;
|
||||
this.provider = provider;
|
||||
this.priority = priority;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Class<T> getService() {
|
||||
return service;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Plugin getPlugin() {
|
||||
return plugin;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public T getProvider() {
|
||||
return provider;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ServicePriority getPriority() {
|
||||
return priority;
|
||||
}
|
||||
|
||||
public int compareTo(RegisteredServiceProvider<?> other) {
|
||||
public int compareTo(@NotNull RegisteredServiceProvider<?> other) {
|
||||
if (priority.ordinal() == other.getPriority().ordinal()) {
|
||||
return 0;
|
||||
} else {
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
package org.bukkit.plugin;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@@ -22,14 +25,14 @@ public interface ServicesManager {
|
||||
* @param plugin plugin with the provider
|
||||
* @param priority priority of the provider
|
||||
*/
|
||||
public <T> void register(Class<T> service, T provider, Plugin plugin, ServicePriority priority);
|
||||
public <T> void register(@NotNull Class<T> service, @NotNull T provider, @NotNull Plugin plugin, @NotNull ServicePriority priority);
|
||||
|
||||
/**
|
||||
* Unregister all the providers registered by a particular plugin.
|
||||
*
|
||||
* @param plugin The plugin
|
||||
*/
|
||||
public void unregisterAll(Plugin plugin);
|
||||
public void unregisterAll(@NotNull Plugin plugin);
|
||||
|
||||
/**
|
||||
* Unregister a particular provider for a particular service.
|
||||
@@ -37,14 +40,14 @@ public interface ServicesManager {
|
||||
* @param service The service interface
|
||||
* @param provider The service provider implementation
|
||||
*/
|
||||
public void unregister(Class<?> service, Object provider);
|
||||
public void unregister(@NotNull Class<?> service, @NotNull Object provider);
|
||||
|
||||
/**
|
||||
* Unregister a particular provider.
|
||||
*
|
||||
* @param provider The service provider implementation
|
||||
*/
|
||||
public void unregister(Object provider);
|
||||
public void unregister(@NotNull Object provider);
|
||||
|
||||
/**
|
||||
* Queries for a provider. This may return if no provider has been
|
||||
@@ -54,7 +57,8 @@ public interface ServicesManager {
|
||||
* @param service The service interface
|
||||
* @return provider or null
|
||||
*/
|
||||
public <T> T load(Class<T> service);
|
||||
@Nullable
|
||||
public <T> T load(@NotNull Class<T> service);
|
||||
|
||||
/**
|
||||
* Queries for a provider registration. This may return if no provider
|
||||
@@ -64,15 +68,17 @@ public interface ServicesManager {
|
||||
* @param service The service interface
|
||||
* @return provider registration or null
|
||||
*/
|
||||
public <T> RegisteredServiceProvider<T> getRegistration(Class<T> service);
|
||||
@Nullable
|
||||
public <T> RegisteredServiceProvider<T> getRegistration(@NotNull Class<T> service);
|
||||
|
||||
/**
|
||||
* Get registrations of providers for a plugin.
|
||||
*
|
||||
* @param plugin The plugin
|
||||
* @return provider registration or null
|
||||
* @return provider registrations
|
||||
*/
|
||||
public List<RegisteredServiceProvider<?>> getRegistrations(Plugin plugin);
|
||||
@NotNull
|
||||
public List<RegisteredServiceProvider<?>> getRegistrations(@NotNull Plugin plugin);
|
||||
|
||||
/**
|
||||
* Get registrations of providers for a service. The returned list is
|
||||
@@ -82,7 +88,8 @@ public interface ServicesManager {
|
||||
* @param service The service interface
|
||||
* @return list of registrations
|
||||
*/
|
||||
public <T> Collection<RegisteredServiceProvider<T>> getRegistrations(Class<T> service);
|
||||
@NotNull
|
||||
public <T> Collection<RegisteredServiceProvider<T>> getRegistrations(@NotNull Class<T> service);
|
||||
|
||||
/**
|
||||
* Get a list of known services. A service is known if it has registered
|
||||
@@ -90,6 +97,7 @@ public interface ServicesManager {
|
||||
*
|
||||
* @return list of known services
|
||||
*/
|
||||
@NotNull
|
||||
public Collection<Class<?>> getKnownServices();
|
||||
|
||||
/**
|
||||
@@ -101,6 +109,6 @@ public interface ServicesManager {
|
||||
* @param service service to check
|
||||
* @return whether there has been a registered provider
|
||||
*/
|
||||
public <T> boolean isProvidedFor(Class<T> service);
|
||||
public <T> boolean isProvidedFor(@NotNull Class<T> service);
|
||||
|
||||
}
|
||||
|
||||
@@ -34,6 +34,8 @@ import org.bukkit.permissions.PermissionDefault;
|
||||
import org.bukkit.util.FileUtil;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* Handles all plugin management from the Server
|
||||
@@ -51,7 +53,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
private final Map<Boolean, Map<Permissible, Boolean>> defSubs = new HashMap<Boolean, Map<Permissible, Boolean>>();
|
||||
private boolean useTimings = false;
|
||||
|
||||
public SimplePluginManager(Server instance, SimpleCommandMap commandMap) {
|
||||
public SimplePluginManager(@NotNull Server instance, @NotNull SimpleCommandMap commandMap) {
|
||||
server = instance;
|
||||
this.commandMap = commandMap;
|
||||
|
||||
@@ -66,7 +68,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
* @throws IllegalArgumentException Thrown when the given Class is not a
|
||||
* valid PluginLoader
|
||||
*/
|
||||
public void registerInterface(Class<? extends PluginLoader> loader) throws IllegalArgumentException {
|
||||
public void registerInterface(@NotNull Class<? extends PluginLoader> loader) throws IllegalArgumentException {
|
||||
PluginLoader instance;
|
||||
|
||||
if (PluginLoader.class.isAssignableFrom(loader)) {
|
||||
@@ -101,7 +103,8 @@ public final class SimplePluginManager implements PluginManager {
|
||||
* @param directory Directory to check for plugins
|
||||
* @return A list of all plugins loaded
|
||||
*/
|
||||
public Plugin[] loadPlugins(File directory) {
|
||||
@NotNull
|
||||
public Plugin[] loadPlugins(@NotNull File directory) {
|
||||
Validate.notNull(directory, "Directory cannot be null");
|
||||
Validate.isTrue(directory.isDirectory(), "Directory must be a directory");
|
||||
|
||||
@@ -309,7 +312,8 @@ public final class SimplePluginManager implements PluginManager {
|
||||
* @throws UnknownDependencyException If a required dependency could not
|
||||
* be found
|
||||
*/
|
||||
public synchronized Plugin loadPlugin(File file) throws InvalidPluginException, UnknownDependencyException {
|
||||
@Nullable
|
||||
public synchronized Plugin loadPlugin(@NotNull File file) throws InvalidPluginException, UnknownDependencyException {
|
||||
Validate.notNull(file, "File cannot be null");
|
||||
|
||||
checkUpdate(file);
|
||||
@@ -336,7 +340,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
return result;
|
||||
}
|
||||
|
||||
private void checkUpdate(File file) {
|
||||
private void checkUpdate(@NotNull File file) {
|
||||
if (updateDirectory == null || !updateDirectory.isDirectory()) {
|
||||
return;
|
||||
}
|
||||
@@ -355,10 +359,12 @@ public final class SimplePluginManager implements PluginManager {
|
||||
* @param name Name of the plugin to check
|
||||
* @return Plugin if it exists, otherwise null
|
||||
*/
|
||||
public synchronized Plugin getPlugin(String name) {
|
||||
@Nullable
|
||||
public synchronized Plugin getPlugin(@NotNull String name) {
|
||||
return lookupNames.get(name.replace(' ', '_'));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public synchronized Plugin[] getPlugins() {
|
||||
return plugins.toArray(new Plugin[plugins.size()]);
|
||||
}
|
||||
@@ -371,7 +377,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
* @param name Name of the plugin to check
|
||||
* @return true if the plugin is enabled, otherwise false
|
||||
*/
|
||||
public boolean isPluginEnabled(String name) {
|
||||
public boolean isPluginEnabled(@NotNull String name) {
|
||||
Plugin plugin = getPlugin(name);
|
||||
|
||||
return isPluginEnabled(plugin);
|
||||
@@ -383,7 +389,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
* @param plugin Plugin to check
|
||||
* @return true if the plugin is enabled, otherwise false
|
||||
*/
|
||||
public boolean isPluginEnabled(Plugin plugin) {
|
||||
public boolean isPluginEnabled(@Nullable Plugin plugin) {
|
||||
if ((plugin != null) && (plugins.contains(plugin))) {
|
||||
return plugin.isEnabled();
|
||||
} else {
|
||||
@@ -391,7 +397,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
}
|
||||
|
||||
public void enablePlugin(final Plugin plugin) {
|
||||
public void enablePlugin(@NotNull final Plugin plugin) {
|
||||
if (!plugin.isEnabled()) {
|
||||
List<Command> pluginCommands = PluginCommandYamlParser.parse(plugin);
|
||||
|
||||
@@ -416,7 +422,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
}
|
||||
|
||||
public void disablePlugin(final Plugin plugin) {
|
||||
public void disablePlugin(@NotNull final Plugin plugin) {
|
||||
if (plugin.isEnabled()) {
|
||||
try {
|
||||
plugin.getPluginLoader().disablePlugin(plugin);
|
||||
@@ -471,7 +477,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
*
|
||||
* @param event Event details
|
||||
*/
|
||||
public void callEvent(Event event) {
|
||||
public void callEvent(@NotNull Event event) {
|
||||
if (event.isAsynchronous()) {
|
||||
if (Thread.holdsLock(this)) {
|
||||
throw new IllegalStateException(event.getEventName() + " cannot be triggered asynchronously from inside synchronized code.");
|
||||
@@ -487,7 +493,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
}
|
||||
|
||||
private void fireEvent(Event event) {
|
||||
private void fireEvent(@NotNull Event event) {
|
||||
HandlerList handlers = event.getHandlers();
|
||||
RegisteredListener[] listeners = handlers.getRegisteredListeners();
|
||||
|
||||
@@ -517,7 +523,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
}
|
||||
|
||||
public void registerEvents(Listener listener, Plugin plugin) {
|
||||
public void registerEvents(@NotNull Listener listener, @NotNull Plugin plugin) {
|
||||
if (!plugin.isEnabled()) {
|
||||
throw new IllegalPluginAccessException("Plugin attempted to register " + listener + " while not enabled");
|
||||
}
|
||||
@@ -528,7 +534,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
|
||||
}
|
||||
|
||||
public void registerEvent(Class<? extends Event> event, Listener listener, EventPriority priority, EventExecutor executor, Plugin plugin) {
|
||||
public void registerEvent(@NotNull Class<? extends Event> event, @NotNull Listener listener, @NotNull EventPriority priority, @NotNull EventExecutor executor, @NotNull Plugin plugin) {
|
||||
registerEvent(event, listener, priority, executor, plugin, false);
|
||||
}
|
||||
|
||||
@@ -544,7 +550,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
* @param ignoreCancelled Do not call executor if event was already
|
||||
* cancelled
|
||||
*/
|
||||
public void registerEvent(Class<? extends Event> event, Listener listener, EventPriority priority, EventExecutor executor, Plugin plugin, boolean ignoreCancelled) {
|
||||
public void registerEvent(@NotNull Class<? extends Event> event, @NotNull Listener listener, @NotNull EventPriority priority, @NotNull EventExecutor executor, @NotNull Plugin plugin, boolean ignoreCancelled) {
|
||||
Validate.notNull(listener, "Listener cannot be null");
|
||||
Validate.notNull(priority, "Priority cannot be null");
|
||||
Validate.notNull(executor, "Executor cannot be null");
|
||||
@@ -561,7 +567,8 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
}
|
||||
|
||||
private HandlerList getEventListeners(Class<? extends Event> type) {
|
||||
@NotNull
|
||||
private HandlerList getEventListeners(@NotNull Class<? extends Event> type) {
|
||||
try {
|
||||
Method method = getRegistrationClass(type).getDeclaredMethod("getHandlerList");
|
||||
method.setAccessible(true);
|
||||
@@ -571,7 +578,8 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
}
|
||||
|
||||
private Class<? extends Event> getRegistrationClass(Class<? extends Event> clazz) {
|
||||
@NotNull
|
||||
private Class<? extends Event> getRegistrationClass(@NotNull Class<? extends Event> clazz) {
|
||||
try {
|
||||
clazz.getDeclaredMethod("getHandlerList");
|
||||
return clazz;
|
||||
@@ -586,16 +594,17 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
}
|
||||
|
||||
public Permission getPermission(String name) {
|
||||
@Nullable
|
||||
public Permission getPermission(@NotNull String name) {
|
||||
return permissions.get(name.toLowerCase(java.util.Locale.ENGLISH));
|
||||
}
|
||||
|
||||
public void addPermission(Permission perm) {
|
||||
public void addPermission(@NotNull Permission perm) {
|
||||
addPermission(perm, true);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void addPermission(Permission perm, boolean dirty) {
|
||||
public void addPermission(@NotNull Permission perm, boolean dirty) {
|
||||
String name = perm.getName().toLowerCase(java.util.Locale.ENGLISH);
|
||||
|
||||
if (permissions.containsKey(name)) {
|
||||
@@ -606,19 +615,20 @@ public final class SimplePluginManager implements PluginManager {
|
||||
calculatePermissionDefault(perm, dirty);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Set<Permission> getDefaultPermissions(boolean op) {
|
||||
return ImmutableSet.copyOf(defaultPerms.get(op));
|
||||
}
|
||||
|
||||
public void removePermission(Permission perm) {
|
||||
public void removePermission(@NotNull Permission perm) {
|
||||
removePermission(perm.getName());
|
||||
}
|
||||
|
||||
public void removePermission(String name) {
|
||||
public void removePermission(@NotNull String name) {
|
||||
permissions.remove(name.toLowerCase(java.util.Locale.ENGLISH));
|
||||
}
|
||||
|
||||
public void recalculatePermissionDefaults(Permission perm) {
|
||||
public void recalculatePermissionDefaults(@NotNull Permission perm) {
|
||||
if (perm != null && permissions.containsKey(perm.getName().toLowerCase(java.util.Locale.ENGLISH))) {
|
||||
defaultPerms.get(true).remove(perm);
|
||||
defaultPerms.get(false).remove(perm);
|
||||
@@ -627,7 +637,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
}
|
||||
|
||||
private void calculatePermissionDefault(Permission perm, boolean dirty) {
|
||||
private void calculatePermissionDefault(@NotNull Permission perm, boolean dirty) {
|
||||
if ((perm.getDefault() == PermissionDefault.OP) || (perm.getDefault() == PermissionDefault.TRUE)) {
|
||||
defaultPerms.get(true).add(perm);
|
||||
if (dirty) {
|
||||
@@ -656,7 +666,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
}
|
||||
|
||||
public void subscribeToPermission(String permission, Permissible permissible) {
|
||||
public void subscribeToPermission(@NotNull String permission, @NotNull Permissible permissible) {
|
||||
String name = permission.toLowerCase(java.util.Locale.ENGLISH);
|
||||
Map<Permissible, Boolean> map = permSubs.get(name);
|
||||
|
||||
@@ -668,7 +678,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
map.put(permissible, true);
|
||||
}
|
||||
|
||||
public void unsubscribeFromPermission(String permission, Permissible permissible) {
|
||||
public void unsubscribeFromPermission(@NotNull String permission, @NotNull Permissible permissible) {
|
||||
String name = permission.toLowerCase(java.util.Locale.ENGLISH);
|
||||
Map<Permissible, Boolean> map = permSubs.get(name);
|
||||
|
||||
@@ -681,7 +691,8 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
}
|
||||
|
||||
public Set<Permissible> getPermissionSubscriptions(String permission) {
|
||||
@NotNull
|
||||
public Set<Permissible> getPermissionSubscriptions(@NotNull String permission) {
|
||||
String name = permission.toLowerCase(java.util.Locale.ENGLISH);
|
||||
Map<Permissible, Boolean> map = permSubs.get(name);
|
||||
|
||||
@@ -692,7 +703,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
}
|
||||
|
||||
public void subscribeToDefaultPerms(boolean op, Permissible permissible) {
|
||||
public void subscribeToDefaultPerms(boolean op, @NotNull Permissible permissible) {
|
||||
Map<Permissible, Boolean> map = defSubs.get(op);
|
||||
|
||||
if (map == null) {
|
||||
@@ -703,7 +714,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
map.put(permissible, true);
|
||||
}
|
||||
|
||||
public void unsubscribeFromDefaultPerms(boolean op, Permissible permissible) {
|
||||
public void unsubscribeFromDefaultPerms(boolean op, @NotNull Permissible permissible) {
|
||||
Map<Permissible, Boolean> map = defSubs.get(op);
|
||||
|
||||
if (map != null) {
|
||||
@@ -715,6 +726,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Set<Permissible> getDefaultPermSubscriptions(boolean op) {
|
||||
Map<Permissible, Boolean> map = defSubs.get(op);
|
||||
|
||||
@@ -725,6 +737,7 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Set<Permission> getPermissions() {
|
||||
return new HashSet<Permission>(permissions.values());
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ import org.bukkit.event.server.ServiceUnregisterEvent;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -35,7 +37,7 @@ public class SimpleServicesManager implements ServicesManager {
|
||||
* @param plugin plugin with the provider
|
||||
* @param priority priority of the provider
|
||||
*/
|
||||
public <T> void register(Class<T> service, T provider, Plugin plugin, ServicePriority priority) {
|
||||
public <T> void register(@NotNull Class<T> service, @NotNull T provider, @NotNull Plugin plugin, @NotNull ServicePriority priority) {
|
||||
RegisteredServiceProvider<T> registeredProvider = null;
|
||||
synchronized (providers) {
|
||||
List<RegisteredServiceProvider<?>> registered = providers.get(service);
|
||||
@@ -63,7 +65,7 @@ public class SimpleServicesManager implements ServicesManager {
|
||||
*
|
||||
* @param plugin The plugin
|
||||
*/
|
||||
public void unregisterAll(Plugin plugin) {
|
||||
public void unregisterAll(@NotNull Plugin plugin) {
|
||||
ArrayList<ServiceUnregisterEvent> unregisteredEvents = new ArrayList<ServiceUnregisterEvent>();
|
||||
synchronized (providers) {
|
||||
Iterator<Map.Entry<Class<?>, List<RegisteredServiceProvider<?>>>> it = providers.entrySet().iterator();
|
||||
@@ -105,7 +107,7 @@ public class SimpleServicesManager implements ServicesManager {
|
||||
* @param service The service interface
|
||||
* @param provider The service provider implementation
|
||||
*/
|
||||
public void unregister(Class<?> service, Object provider) {
|
||||
public void unregister(@NotNull Class<?> service, @NotNull Object provider) {
|
||||
ArrayList<ServiceUnregisterEvent> unregisteredEvents = new ArrayList<ServiceUnregisterEvent>();
|
||||
synchronized (providers) {
|
||||
Iterator<Map.Entry<Class<?>, List<RegisteredServiceProvider<?>>>> it = providers.entrySet().iterator();
|
||||
@@ -152,7 +154,7 @@ public class SimpleServicesManager implements ServicesManager {
|
||||
*
|
||||
* @param provider The service provider implementation
|
||||
*/
|
||||
public void unregister(Object provider) {
|
||||
public void unregister(@NotNull Object provider) {
|
||||
ArrayList<ServiceUnregisterEvent> unregisteredEvents = new ArrayList<ServiceUnregisterEvent>();
|
||||
synchronized (providers) {
|
||||
Iterator<Map.Entry<Class<?>, List<RegisteredServiceProvider<?>>>> it = providers.entrySet().iterator();
|
||||
@@ -196,7 +198,8 @@ public class SimpleServicesManager implements ServicesManager {
|
||||
* @param service The service interface
|
||||
* @return provider or null
|
||||
*/
|
||||
public <T> T load(Class<T> service) {
|
||||
@Nullable
|
||||
public <T> T load(@NotNull Class<T> service) {
|
||||
synchronized (providers) {
|
||||
List<RegisteredServiceProvider<?>> registered = providers.get(service);
|
||||
|
||||
@@ -217,8 +220,9 @@ public class SimpleServicesManager implements ServicesManager {
|
||||
* @param service The service interface
|
||||
* @return provider registration or null
|
||||
*/
|
||||
@Nullable
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T> RegisteredServiceProvider<T> getRegistration(Class<T> service) {
|
||||
public <T> RegisteredServiceProvider<T> getRegistration(@NotNull Class<T> service) {
|
||||
synchronized (providers) {
|
||||
List<RegisteredServiceProvider<?>> registered = providers.get(service);
|
||||
|
||||
@@ -235,9 +239,10 @@ public class SimpleServicesManager implements ServicesManager {
|
||||
* Get registrations of providers for a plugin.
|
||||
*
|
||||
* @param plugin The plugin
|
||||
* @return provider registration or null
|
||||
* @return provider registrations
|
||||
*/
|
||||
public List<RegisteredServiceProvider<?>> getRegistrations(Plugin plugin) {
|
||||
@NotNull
|
||||
public List<RegisteredServiceProvider<?>> getRegistrations(@NotNull Plugin plugin) {
|
||||
ImmutableList.Builder<RegisteredServiceProvider<?>> ret = ImmutableList.<RegisteredServiceProvider<?>>builder();
|
||||
synchronized (providers) {
|
||||
for (List<RegisteredServiceProvider<?>> registered : providers.values()) {
|
||||
@@ -259,8 +264,9 @@ public class SimpleServicesManager implements ServicesManager {
|
||||
* @param service The service interface
|
||||
* @return a copy of the list of registrations
|
||||
*/
|
||||
@NotNull
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T> List<RegisteredServiceProvider<T>> getRegistrations(Class<T> service) {
|
||||
public <T> List<RegisteredServiceProvider<T>> getRegistrations(@NotNull Class<T> service) {
|
||||
ImmutableList.Builder<RegisteredServiceProvider<T>> ret;
|
||||
synchronized (providers) {
|
||||
List<RegisteredServiceProvider<?>> registered = providers.get(service);
|
||||
@@ -285,6 +291,7 @@ public class SimpleServicesManager implements ServicesManager {
|
||||
*
|
||||
* @return a copy of the set of known services
|
||||
*/
|
||||
@NotNull
|
||||
public Set<Class<?>> getKnownServices() {
|
||||
synchronized (providers) {
|
||||
return ImmutableSet.<Class<?>>copyOf(providers.keySet());
|
||||
@@ -298,7 +305,7 @@ public class SimpleServicesManager implements ServicesManager {
|
||||
* @param service service to check
|
||||
* @return true if and only if there are registered providers
|
||||
*/
|
||||
public <T> boolean isProvidedFor(Class<T> service) {
|
||||
public <T> boolean isProvidedFor(@NotNull Class<T> service) {
|
||||
synchronized (providers) {
|
||||
return providers.containsKey(service);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ import org.bukkit.event.Event;
|
||||
import org.bukkit.event.EventException;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* Extends RegisteredListener to include timing information
|
||||
@@ -14,12 +16,12 @@ public class TimedRegisteredListener extends RegisteredListener {
|
||||
private Class<? extends Event> eventClass;
|
||||
private boolean multiple = false;
|
||||
|
||||
public TimedRegisteredListener(final Listener pluginListener, final EventExecutor eventExecutor, final EventPriority eventPriority, final Plugin registeredPlugin, final boolean listenCancelled) {
|
||||
public TimedRegisteredListener(@NotNull final Listener pluginListener, @NotNull final EventExecutor eventExecutor, @NotNull final EventPriority eventPriority, @NotNull final Plugin registeredPlugin, final boolean listenCancelled) {
|
||||
super(pluginListener, eventExecutor, eventPriority, registeredPlugin, listenCancelled);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void callEvent(Event event) throws EventException {
|
||||
public void callEvent(@NotNull Event event) throws EventException {
|
||||
if (event.isAsynchronous()) {
|
||||
super.callEvent(event);
|
||||
return;
|
||||
@@ -37,7 +39,8 @@ public class TimedRegisteredListener extends RegisteredListener {
|
||||
totalTime += System.nanoTime() - start;
|
||||
}
|
||||
|
||||
private static Class<?> getCommonSuperclass(Class<?> class1, Class<?> class2) {
|
||||
@NotNull
|
||||
private static Class<?> getCommonSuperclass(@NotNull Class<?> class1, @NotNull Class<?> class2) {
|
||||
while (!class1.isAssignableFrom(class2)) {
|
||||
class1 = class1.getSuperclass();
|
||||
}
|
||||
@@ -81,6 +84,7 @@ public class TimedRegisteredListener extends RegisteredListener {
|
||||
*
|
||||
* @return the event class handled by this RegisteredListener
|
||||
*/
|
||||
@Nullable
|
||||
public Class<? extends Event> getEventClass() {
|
||||
return eventClass;
|
||||
}
|
||||
|
||||
@@ -27,6 +27,8 @@ import org.bukkit.plugin.PluginLoader;
|
||||
import org.bukkit.plugin.PluginLogger;
|
||||
|
||||
import com.google.common.base.Charsets;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* Represents a Java plugin
|
||||
@@ -52,7 +54,7 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
((PluginClassLoader) classLoader).initialize(this);
|
||||
}
|
||||
|
||||
protected JavaPlugin(final JavaPluginLoader loader, final PluginDescriptionFile description, final File dataFolder, final File file) {
|
||||
protected JavaPlugin(@NotNull final JavaPluginLoader loader, @NotNull final PluginDescriptionFile description, @NotNull final File dataFolder, @NotNull final File file) {
|
||||
final ClassLoader classLoader = this.getClass().getClassLoader();
|
||||
if (classLoader instanceof PluginClassLoader) {
|
||||
throw new IllegalStateException("Cannot use initialization constructor at runtime");
|
||||
@@ -66,6 +68,7 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
*
|
||||
* @return The folder.
|
||||
*/
|
||||
@NotNull
|
||||
@Override
|
||||
public final File getDataFolder() {
|
||||
return dataFolder;
|
||||
@@ -76,6 +79,7 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
*
|
||||
* @return PluginLoader that controls this plugin
|
||||
*/
|
||||
@NotNull
|
||||
@Override
|
||||
public final PluginLoader getPluginLoader() {
|
||||
return loader;
|
||||
@@ -86,6 +90,7 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
*
|
||||
* @return Server running this plugin
|
||||
*/
|
||||
@NotNull
|
||||
@Override
|
||||
public final Server getServer() {
|
||||
return server;
|
||||
@@ -107,6 +112,7 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
*
|
||||
* @return File containing this plugin
|
||||
*/
|
||||
@NotNull
|
||||
protected File getFile() {
|
||||
return file;
|
||||
}
|
||||
@@ -116,11 +122,13 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
*
|
||||
* @return Contents of the plugin.yaml file
|
||||
*/
|
||||
@NotNull
|
||||
@Override
|
||||
public final PluginDescriptionFile getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public FileConfiguration getConfig() {
|
||||
if (newConfig == null) {
|
||||
@@ -139,7 +147,8 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
* @throws IllegalArgumentException if file is null
|
||||
* @see ClassLoader#getResourceAsStream(String)
|
||||
*/
|
||||
protected final Reader getTextResource(String file) {
|
||||
@Nullable
|
||||
protected final Reader getTextResource(@NotNull String file) {
|
||||
final InputStream in = getResource(file);
|
||||
|
||||
return in == null ? null : new InputStreamReader(in, Charsets.UTF_8);
|
||||
@@ -174,7 +183,7 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveResource(String resourcePath, boolean replace) {
|
||||
public void saveResource(@NotNull String resourcePath, boolean replace) {
|
||||
if (resourcePath == null || resourcePath.equals("")) {
|
||||
throw new IllegalArgumentException("ResourcePath cannot be null or empty");
|
||||
}
|
||||
@@ -211,8 +220,9 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public InputStream getResource(String filename) {
|
||||
public InputStream getResource(@NotNull String filename) {
|
||||
if (filename == null) {
|
||||
throw new IllegalArgumentException("Filename cannot be null");
|
||||
}
|
||||
@@ -237,6 +247,7 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
*
|
||||
* @return ClassLoader holding this plugin
|
||||
*/
|
||||
@NotNull
|
||||
protected final ClassLoader getClassLoader() {
|
||||
return classLoader;
|
||||
}
|
||||
@@ -259,7 +270,7 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
}
|
||||
|
||||
|
||||
final void init(PluginLoader loader, Server server, PluginDescriptionFile description, File dataFolder, File file, ClassLoader classLoader) {
|
||||
final void init(@NotNull PluginLoader loader, @NotNull Server server, @NotNull PluginDescriptionFile description, @NotNull File dataFolder, @NotNull File file, @NotNull ClassLoader classLoader) {
|
||||
this.loader = loader;
|
||||
this.server = server;
|
||||
this.file = file;
|
||||
@@ -274,7 +285,7 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -282,7 +293,8 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
@Nullable
|
||||
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -294,7 +306,8 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
* @param name name or alias of the command
|
||||
* @return the plugin command if found, otherwise null
|
||||
*/
|
||||
public PluginCommand getCommand(String name) {
|
||||
@Nullable
|
||||
public PluginCommand getCommand(@NotNull String name) {
|
||||
String alias = name.toLowerCase(java.util.Locale.ENGLISH);
|
||||
PluginCommand command = getServer().getPluginCommand(alias);
|
||||
|
||||
@@ -318,8 +331,9 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
@Override
|
||||
public void onEnable() {}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public ChunkGenerator getDefaultWorldGenerator(String worldName, String id) {
|
||||
public ChunkGenerator getDefaultWorldGenerator(@NotNull String worldName, @Nullable String id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -333,11 +347,13 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
this.naggable = canNag;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Logger getLogger() {
|
||||
return logger;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String toString() {
|
||||
return description.getFullName();
|
||||
@@ -366,7 +382,8 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
* @throws ClassCastException if plugin that provided the class does not
|
||||
* extend the class
|
||||
*/
|
||||
public static <T extends JavaPlugin> T getPlugin(Class<T> clazz) {
|
||||
@NotNull
|
||||
public static <T extends JavaPlugin> T getPlugin(@NotNull Class<T> clazz) {
|
||||
Validate.notNull(clazz, "Null class cannot have a plugin");
|
||||
if (!JavaPlugin.class.isAssignableFrom(clazz)) {
|
||||
throw new IllegalArgumentException(clazz + " does not extend " + JavaPlugin.class);
|
||||
@@ -394,7 +411,8 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
* @throws IllegalStateException if called from the static initializer for
|
||||
* given JavaPlugin
|
||||
*/
|
||||
public static JavaPlugin getProvidingPlugin(Class<?> clazz) {
|
||||
@NotNull
|
||||
public static JavaPlugin getProvidingPlugin(@NotNull Class<?> clazz) {
|
||||
Validate.notNull(clazz, "Null class cannot have a plugin");
|
||||
final ClassLoader cl = clazz.getClassLoader();
|
||||
if (!(cl instanceof PluginClassLoader)) {
|
||||
|
||||
@@ -41,6 +41,8 @@ import org.bukkit.plugin.PluginLoader;
|
||||
import org.bukkit.plugin.RegisteredListener;
|
||||
import org.bukkit.plugin.TimedRegisteredListener;
|
||||
import org.bukkit.plugin.UnknownDependencyException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.yaml.snakeyaml.error.YAMLException;
|
||||
|
||||
/**
|
||||
@@ -58,12 +60,13 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||
* @param instance the server instance
|
||||
*/
|
||||
@Deprecated
|
||||
public JavaPluginLoader(Server instance) {
|
||||
public JavaPluginLoader(@NotNull Server instance) {
|
||||
Validate.notNull(instance, "Server cannot be null");
|
||||
server = instance;
|
||||
}
|
||||
|
||||
public Plugin loadPlugin(final File file) throws InvalidPluginException {
|
||||
@NotNull
|
||||
public Plugin loadPlugin(@NotNull final File file) throws InvalidPluginException {
|
||||
Validate.notNull(file, "File cannot be null");
|
||||
|
||||
if (!file.exists()) {
|
||||
@@ -139,7 +142,8 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||
return loader.plugin;
|
||||
}
|
||||
|
||||
public PluginDescriptionFile getPluginDescription(File file) throws InvalidDescriptionException {
|
||||
@NotNull
|
||||
public PluginDescriptionFile getPluginDescription(@NotNull File file) throws InvalidDescriptionException {
|
||||
Validate.notNull(file, "File cannot be null");
|
||||
|
||||
JarFile jar = null;
|
||||
@@ -177,10 +181,12 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Pattern[] getPluginFileFilters() {
|
||||
return fileFilters.clone();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
Class<?> getClassByName(final String name) {
|
||||
Class<?> cachedClass = classes.get(name);
|
||||
|
||||
@@ -199,7 +205,7 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||
return null;
|
||||
}
|
||||
|
||||
void setClass(final String name, final Class<?> clazz) {
|
||||
void setClass(@NotNull final String name, @NotNull final Class<?> clazz) {
|
||||
if (!classes.containsKey(name)) {
|
||||
classes.put(name, clazz);
|
||||
|
||||
@@ -210,7 +216,7 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||
}
|
||||
}
|
||||
|
||||
private void removeClass(String name) {
|
||||
private void removeClass(@NotNull String name) {
|
||||
Class<?> clazz = classes.remove(name);
|
||||
|
||||
try {
|
||||
@@ -224,7 +230,8 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||
}
|
||||
}
|
||||
|
||||
public Map<Class<? extends Event>, Set<RegisteredListener>> createRegisteredListeners(Listener listener, final Plugin plugin) {
|
||||
@NotNull
|
||||
public Map<Class<? extends Event>, Set<RegisteredListener>> createRegisteredListeners(@NotNull Listener listener, @NotNull final Plugin plugin) {
|
||||
Validate.notNull(plugin, "Plugin can not be null");
|
||||
Validate.notNull(listener, "Listener can not be null");
|
||||
|
||||
@@ -291,7 +298,7 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||
}
|
||||
|
||||
EventExecutor executor = new EventExecutor() {
|
||||
public void execute(Listener listener, Event event) throws EventException {
|
||||
public void execute(@NotNull Listener listener, @NotNull Event event) throws EventException {
|
||||
try {
|
||||
if (!eventClass.isAssignableFrom(event.getClass())) {
|
||||
return;
|
||||
@@ -313,7 +320,7 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||
return ret;
|
||||
}
|
||||
|
||||
public void enablePlugin(final Plugin plugin) {
|
||||
public void enablePlugin(@NotNull final Plugin plugin) {
|
||||
Validate.isTrue(plugin instanceof JavaPlugin, "Plugin is not associated with this PluginLoader");
|
||||
|
||||
if (!plugin.isEnabled()) {
|
||||
@@ -340,7 +347,7 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||
}
|
||||
}
|
||||
|
||||
public void disablePlugin(Plugin plugin) {
|
||||
public void disablePlugin(@NotNull Plugin plugin) {
|
||||
Validate.isTrue(plugin instanceof JavaPlugin, "Plugin is not associated with this PluginLoader");
|
||||
|
||||
if (plugin.isEnabled()) {
|
||||
|
||||
@@ -19,6 +19,8 @@ import java.util.jar.Manifest;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.plugin.InvalidPluginException;
|
||||
import org.bukkit.plugin.PluginDescriptionFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* A ClassLoader for plugins, to allow shared classes across multiple plugins
|
||||
@@ -40,7 +42,7 @@ final class PluginClassLoader extends URLClassLoader {
|
||||
ClassLoader.registerAsParallelCapable();
|
||||
}
|
||||
|
||||
PluginClassLoader(final JavaPluginLoader loader, final ClassLoader parent, final PluginDescriptionFile description, final File dataFolder, final File file) throws IOException, InvalidPluginException, MalformedURLException {
|
||||
PluginClassLoader(@NotNull final JavaPluginLoader loader, @Nullable final ClassLoader parent, @NotNull final PluginDescriptionFile description, @NotNull final File dataFolder, @NotNull final File file) throws IOException, InvalidPluginException, MalformedURLException {
|
||||
super(new URL[] {file.toURI().toURL()}, parent);
|
||||
Validate.notNull(loader, "Loader cannot be null");
|
||||
|
||||
@@ -80,7 +82,7 @@ final class PluginClassLoader extends URLClassLoader {
|
||||
return findClass(name, true);
|
||||
}
|
||||
|
||||
Class<?> findClass(String name, boolean checkGlobal) throws ClassNotFoundException {
|
||||
Class<?> findClass(@NotNull String name, boolean checkGlobal) throws ClassNotFoundException {
|
||||
if (name.startsWith("org.bukkit.") || name.startsWith("net.minecraft.")) {
|
||||
throw new ClassNotFoundException(name);
|
||||
}
|
||||
@@ -154,11 +156,12 @@ final class PluginClassLoader extends URLClassLoader {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
Set<String> getClasses() {
|
||||
return classes.keySet();
|
||||
}
|
||||
|
||||
synchronized void initialize(JavaPlugin javaPlugin) {
|
||||
synchronized void initialize(@NotNull JavaPlugin javaPlugin) {
|
||||
Validate.notNull(javaPlugin, "Initializing plugin cannot be null");
|
||||
Validate.isTrue(javaPlugin.getClass().getClassLoader() == this, "Cannot initialize plugin outside of this class loader");
|
||||
if (this.plugin != null || this.pluginInit != null) {
|
||||
|
||||
@@ -4,6 +4,7 @@ import java.util.Set;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* A class responsible for managing the registrations of plugin channels and
|
||||
@@ -35,7 +36,7 @@ public interface Messenger {
|
||||
* @return True if the channel is reserved, otherwise false.
|
||||
* @throws IllegalArgumentException Thrown if channel is null.
|
||||
*/
|
||||
public boolean isReservedChannel(String channel);
|
||||
public boolean isReservedChannel(@NotNull String channel);
|
||||
|
||||
/**
|
||||
* Registers the specific plugin to the requested outgoing plugin channel,
|
||||
@@ -45,7 +46,7 @@ public interface Messenger {
|
||||
* @param channel Channel to register.
|
||||
* @throws IllegalArgumentException Thrown if plugin or channel is null.
|
||||
*/
|
||||
public void registerOutgoingPluginChannel(Plugin plugin, String channel);
|
||||
public void registerOutgoingPluginChannel(@NotNull Plugin plugin, @NotNull String channel);
|
||||
|
||||
/**
|
||||
* Unregisters the specific plugin from the requested outgoing plugin
|
||||
@@ -57,7 +58,7 @@ public interface Messenger {
|
||||
* @param channel Channel to unregister.
|
||||
* @throws IllegalArgumentException Thrown if plugin or channel is null.
|
||||
*/
|
||||
public void unregisterOutgoingPluginChannel(Plugin plugin, String channel);
|
||||
public void unregisterOutgoingPluginChannel(@NotNull Plugin plugin, @NotNull String channel);
|
||||
|
||||
/**
|
||||
* Unregisters the specific plugin from all outgoing plugin channels, no
|
||||
@@ -66,7 +67,7 @@ public interface Messenger {
|
||||
* @param plugin Plugin that no longer wishes to send plugin messages.
|
||||
* @throws IllegalArgumentException Thrown if plugin is null.
|
||||
*/
|
||||
public void unregisterOutgoingPluginChannel(Plugin plugin);
|
||||
public void unregisterOutgoingPluginChannel(@NotNull Plugin plugin);
|
||||
|
||||
/**
|
||||
* Registers the specific plugin for listening on the requested incoming
|
||||
@@ -80,7 +81,8 @@ public interface Messenger {
|
||||
* @throws IllegalArgumentException Thrown if plugin, channel or listener
|
||||
* is null, or the listener is already registered for this channel.
|
||||
*/
|
||||
public PluginMessageListenerRegistration registerIncomingPluginChannel(Plugin plugin, String channel, PluginMessageListener listener);
|
||||
@NotNull
|
||||
public PluginMessageListenerRegistration registerIncomingPluginChannel(@NotNull Plugin plugin, @NotNull String channel, @NotNull PluginMessageListener listener);
|
||||
|
||||
/**
|
||||
* Unregisters the specific plugin's listener from listening on the
|
||||
@@ -93,7 +95,7 @@ public interface Messenger {
|
||||
* @throws IllegalArgumentException Thrown if plugin, channel or listener
|
||||
* is null.
|
||||
*/
|
||||
public void unregisterIncomingPluginChannel(Plugin plugin, String channel, PluginMessageListener listener);
|
||||
public void unregisterIncomingPluginChannel(@NotNull Plugin plugin, @NotNull String channel, @NotNull PluginMessageListener listener);
|
||||
|
||||
/**
|
||||
* Unregisters the specific plugin from listening on the requested
|
||||
@@ -104,7 +106,7 @@ public interface Messenger {
|
||||
* @param channel Channel to unregister.
|
||||
* @throws IllegalArgumentException Thrown if plugin or channel is null.
|
||||
*/
|
||||
public void unregisterIncomingPluginChannel(Plugin plugin, String channel);
|
||||
public void unregisterIncomingPluginChannel(@NotNull Plugin plugin, @NotNull String channel);
|
||||
|
||||
/**
|
||||
* Unregisters the specific plugin from listening on all plugin channels
|
||||
@@ -113,13 +115,14 @@ public interface Messenger {
|
||||
* @param plugin Plugin that wishes to unregister from this channel.
|
||||
* @throws IllegalArgumentException Thrown if plugin is null.
|
||||
*/
|
||||
public void unregisterIncomingPluginChannel(Plugin plugin);
|
||||
public void unregisterIncomingPluginChannel(@NotNull Plugin plugin);
|
||||
|
||||
/**
|
||||
* Gets a set containing all the outgoing plugin channels.
|
||||
*
|
||||
* @return List of all registered outgoing plugin channels.
|
||||
*/
|
||||
@NotNull
|
||||
public Set<String> getOutgoingChannels();
|
||||
|
||||
/**
|
||||
@@ -131,13 +134,15 @@ public interface Messenger {
|
||||
* is registered to.
|
||||
* @throws IllegalArgumentException Thrown if plugin is null.
|
||||
*/
|
||||
public Set<String> getOutgoingChannels(Plugin plugin);
|
||||
@NotNull
|
||||
public Set<String> getOutgoingChannels(@NotNull Plugin plugin);
|
||||
|
||||
/**
|
||||
* Gets a set containing all the incoming plugin channels.
|
||||
*
|
||||
* @return List of all registered incoming plugin channels.
|
||||
*/
|
||||
@NotNull
|
||||
public Set<String> getIncomingChannels();
|
||||
|
||||
/**
|
||||
@@ -149,7 +154,8 @@ public interface Messenger {
|
||||
* is registered for.
|
||||
* @throws IllegalArgumentException Thrown if plugin is null.
|
||||
*/
|
||||
public Set<String> getIncomingChannels(Plugin plugin);
|
||||
@NotNull
|
||||
public Set<String> getIncomingChannels(@NotNull Plugin plugin);
|
||||
|
||||
/**
|
||||
* Gets a set containing all the incoming plugin channel registrations
|
||||
@@ -159,7 +165,8 @@ public interface Messenger {
|
||||
* @return List of all registrations that the plugin has.
|
||||
* @throws IllegalArgumentException Thrown if plugin is null.
|
||||
*/
|
||||
public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(Plugin plugin);
|
||||
@NotNull
|
||||
public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(@NotNull Plugin plugin);
|
||||
|
||||
/**
|
||||
* Gets a set containing all the incoming plugin channel registrations
|
||||
@@ -169,7 +176,8 @@ public interface Messenger {
|
||||
* @return List of all registrations that are on the channel.
|
||||
* @throws IllegalArgumentException Thrown if channel is null.
|
||||
*/
|
||||
public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(String channel);
|
||||
@NotNull
|
||||
public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(@NotNull String channel);
|
||||
|
||||
/**
|
||||
* Gets a set containing all the incoming plugin channel registrations
|
||||
@@ -180,7 +188,8 @@ public interface Messenger {
|
||||
* @return List of all registrations that the plugin has.
|
||||
* @throws IllegalArgumentException Thrown if plugin or channel is null.
|
||||
*/
|
||||
public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(Plugin plugin, String channel);
|
||||
@NotNull
|
||||
public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(@NotNull Plugin plugin, @NotNull String channel);
|
||||
|
||||
/**
|
||||
* Checks if the specified plugin message listener registration is valid.
|
||||
@@ -191,7 +200,7 @@ public interface Messenger {
|
||||
* @param registration Registration to check.
|
||||
* @return True if the registration is valid, otherwise false.
|
||||
*/
|
||||
public boolean isRegistrationValid(PluginMessageListenerRegistration registration);
|
||||
public boolean isRegistrationValid(@NotNull PluginMessageListenerRegistration registration);
|
||||
|
||||
/**
|
||||
* Checks if the specified plugin has registered to receive incoming
|
||||
@@ -201,7 +210,7 @@ public interface Messenger {
|
||||
* @param channel Channel to test for.
|
||||
* @return True if the channel is registered, else false.
|
||||
*/
|
||||
public boolean isIncomingChannelRegistered(Plugin plugin, String channel);
|
||||
public boolean isIncomingChannelRegistered(@NotNull Plugin plugin, @NotNull String channel);
|
||||
|
||||
/**
|
||||
* Checks if the specified plugin has registered to send outgoing messages
|
||||
@@ -211,7 +220,7 @@ public interface Messenger {
|
||||
* @param channel Channel to test for.
|
||||
* @return True if the channel is registered, else false.
|
||||
*/
|
||||
public boolean isOutgoingChannelRegistered(Plugin plugin, String channel);
|
||||
public boolean isOutgoingChannelRegistered(@NotNull Plugin plugin, @NotNull String channel);
|
||||
|
||||
/**
|
||||
* Dispatches the specified incoming message to any registered listeners.
|
||||
@@ -220,5 +229,5 @@ public interface Messenger {
|
||||
* @param channel Channel that the message was sent by.
|
||||
* @param message Raw payload of the message.
|
||||
*/
|
||||
public void dispatchIncomingMessage(Player source, String channel, byte[] message);
|
||||
public void dispatchIncomingMessage(@NotNull Player source, @NotNull String channel, @NotNull byte[] message);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.bukkit.plugin.messaging;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* A listener for a specific Plugin Channel, which will receive notifications
|
||||
@@ -16,5 +17,5 @@ public interface PluginMessageListener {
|
||||
* @param player Source of the message.
|
||||
* @param message The raw message that was sent.
|
||||
*/
|
||||
public void onPluginMessageReceived(String channel, Player player, byte[] message);
|
||||
public void onPluginMessageReceived(@NotNull String channel, @NotNull Player player, @NotNull byte[] message);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.bukkit.plugin.messaging;
|
||||
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Contains information about a {@link Plugin}s registration to a plugin
|
||||
@@ -12,7 +13,7 @@ public final class PluginMessageListenerRegistration {
|
||||
private final String channel;
|
||||
private final PluginMessageListener listener;
|
||||
|
||||
public PluginMessageListenerRegistration(Messenger messenger, Plugin plugin, String channel, PluginMessageListener listener) {
|
||||
public PluginMessageListenerRegistration(@NotNull Messenger messenger, @NotNull Plugin plugin, @NotNull String channel, @NotNull PluginMessageListener listener) {
|
||||
if (messenger == null) {
|
||||
throw new IllegalArgumentException("Messenger cannot be null!");
|
||||
}
|
||||
@@ -37,6 +38,7 @@ public final class PluginMessageListenerRegistration {
|
||||
*
|
||||
* @return Plugin channel.
|
||||
*/
|
||||
@NotNull
|
||||
public String getChannel() {
|
||||
return channel;
|
||||
}
|
||||
@@ -46,6 +48,7 @@ public final class PluginMessageListenerRegistration {
|
||||
*
|
||||
* @return Registered listener.
|
||||
*/
|
||||
@NotNull
|
||||
public PluginMessageListener getListener() {
|
||||
return listener;
|
||||
}
|
||||
@@ -55,6 +58,7 @@ public final class PluginMessageListenerRegistration {
|
||||
*
|
||||
* @return Registered plugin.
|
||||
*/
|
||||
@NotNull
|
||||
public Plugin getPlugin() {
|
||||
return plugin;
|
||||
}
|
||||
@@ -77,16 +81,16 @@ public final class PluginMessageListenerRegistration {
|
||||
return false;
|
||||
}
|
||||
final PluginMessageListenerRegistration other = (PluginMessageListenerRegistration) obj;
|
||||
if (this.messenger != other.messenger && (this.messenger == null || !this.messenger.equals(other.messenger))) {
|
||||
if (this.messenger != other.messenger && !this.messenger.equals(other.messenger)) {
|
||||
return false;
|
||||
}
|
||||
if (this.plugin != other.plugin && (this.plugin == null || !this.plugin.equals(other.plugin))) {
|
||||
if (this.plugin != other.plugin && !this.plugin.equals(other.plugin)) {
|
||||
return false;
|
||||
}
|
||||
if ((this.channel == null) ? (other.channel != null) : !this.channel.equals(other.channel)) {
|
||||
if (!this.channel.equals(other.channel)) {
|
||||
return false;
|
||||
}
|
||||
if (this.listener != other.listener && (this.listener == null || !this.listener.equals(other.listener))) {
|
||||
if (this.listener != other.listener && !this.listener.equals(other.listener)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -95,10 +99,10 @@ public final class PluginMessageListenerRegistration {
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int hash = 7;
|
||||
hash = 53 * hash + (this.messenger != null ? this.messenger.hashCode() : 0);
|
||||
hash = 53 * hash + (this.plugin != null ? this.plugin.hashCode() : 0);
|
||||
hash = 53 * hash + (this.channel != null ? this.channel.hashCode() : 0);
|
||||
hash = 53 * hash + (this.listener != null ? this.listener.hashCode() : 0);
|
||||
hash = 53 * hash + this.messenger.hashCode();
|
||||
hash = 53 * hash + this.plugin.hashCode();
|
||||
hash = 53 * hash + this.channel.hashCode();
|
||||
hash = 53 * hash + this.listener.hashCode();
|
||||
return hash;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.bukkit.plugin.messaging;
|
||||
|
||||
import java.util.Set;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Represents a possible recipient for a Plugin Message.
|
||||
@@ -26,7 +27,7 @@ public interface PluginMessageRecipient {
|
||||
* @throws ChannelNotRegisteredException Thrown if the channel is not
|
||||
* registered for this plugin.
|
||||
*/
|
||||
public void sendPluginMessage(Plugin source, String channel, byte[] message);
|
||||
public void sendPluginMessage(@NotNull Plugin source, @NotNull String channel, @NotNull byte[] message);
|
||||
|
||||
/**
|
||||
* Gets a set containing all the Plugin Channels that this client is
|
||||
@@ -34,5 +35,6 @@ public interface PluginMessageRecipient {
|
||||
*
|
||||
* @return Set containing all the channels that this client may accept.
|
||||
*/
|
||||
@NotNull
|
||||
public Set<String> getListeningPluginChannels();
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import java.util.Set;
|
||||
import java.util.logging.Level;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Standard implementation to {@link Messenger}
|
||||
@@ -22,7 +23,7 @@ public class StandardMessenger implements Messenger {
|
||||
private final Object incomingLock = new Object();
|
||||
private final Object outgoingLock = new Object();
|
||||
|
||||
private void addToOutgoing(Plugin plugin, String channel) {
|
||||
private void addToOutgoing(@NotNull Plugin plugin, @NotNull String channel) {
|
||||
synchronized (outgoingLock) {
|
||||
Set<Plugin> plugins = outgoingByChannel.get(channel);
|
||||
Set<String> channels = outgoingByPlugin.get(plugin);
|
||||
@@ -42,7 +43,7 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
private void removeFromOutgoing(Plugin plugin, String channel) {
|
||||
private void removeFromOutgoing(@NotNull Plugin plugin, @NotNull String channel) {
|
||||
synchronized (outgoingLock) {
|
||||
Set<Plugin> plugins = outgoingByChannel.get(channel);
|
||||
Set<String> channels = outgoingByPlugin.get(plugin);
|
||||
@@ -65,7 +66,7 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
private void removeFromOutgoing(Plugin plugin) {
|
||||
private void removeFromOutgoing(@NotNull Plugin plugin) {
|
||||
synchronized (outgoingLock) {
|
||||
Set<String> channels = outgoingByPlugin.get(plugin);
|
||||
|
||||
@@ -81,7 +82,7 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
private void addToIncoming(PluginMessageListenerRegistration registration) {
|
||||
private void addToIncoming(@NotNull PluginMessageListenerRegistration registration) {
|
||||
synchronized (incomingLock) {
|
||||
Set<PluginMessageListenerRegistration> registrations = incomingByChannel.get(registration.getChannel());
|
||||
|
||||
@@ -111,7 +112,7 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
private void removeFromIncoming(PluginMessageListenerRegistration registration) {
|
||||
private void removeFromIncoming(@NotNull PluginMessageListenerRegistration registration) {
|
||||
synchronized (incomingLock) {
|
||||
Set<PluginMessageListenerRegistration> registrations = incomingByChannel.get(registration.getChannel());
|
||||
|
||||
@@ -135,7 +136,7 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
private void removeFromIncoming(Plugin plugin, String channel) {
|
||||
private void removeFromIncoming(@NotNull Plugin plugin, @NotNull String channel) {
|
||||
synchronized (incomingLock) {
|
||||
Set<PluginMessageListenerRegistration> registrations = incomingByPlugin.get(plugin);
|
||||
|
||||
@@ -151,7 +152,7 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
private void removeFromIncoming(Plugin plugin) {
|
||||
private void removeFromIncoming(@NotNull Plugin plugin) {
|
||||
synchronized (incomingLock) {
|
||||
Set<PluginMessageListenerRegistration> registrations = incomingByPlugin.get(plugin);
|
||||
|
||||
@@ -167,13 +168,13 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isReservedChannel(String channel) {
|
||||
public boolean isReservedChannel(@NotNull String channel) {
|
||||
channel = validateAndCorrectChannel(channel);
|
||||
|
||||
return channel.contains("minecraft") && !channel.equals("minecraft:brand");
|
||||
}
|
||||
|
||||
public void registerOutgoingPluginChannel(Plugin plugin, String channel) {
|
||||
public void registerOutgoingPluginChannel(@NotNull Plugin plugin, @NotNull String channel) {
|
||||
if (plugin == null) {
|
||||
throw new IllegalArgumentException("Plugin cannot be null");
|
||||
}
|
||||
@@ -185,7 +186,7 @@ public class StandardMessenger implements Messenger {
|
||||
addToOutgoing(plugin, channel);
|
||||
}
|
||||
|
||||
public void unregisterOutgoingPluginChannel(Plugin plugin, String channel) {
|
||||
public void unregisterOutgoingPluginChannel(@NotNull Plugin plugin, @NotNull String channel) {
|
||||
if (plugin == null) {
|
||||
throw new IllegalArgumentException("Plugin cannot be null");
|
||||
}
|
||||
@@ -194,7 +195,7 @@ public class StandardMessenger implements Messenger {
|
||||
removeFromOutgoing(plugin, channel);
|
||||
}
|
||||
|
||||
public void unregisterOutgoingPluginChannel(Plugin plugin) {
|
||||
public void unregisterOutgoingPluginChannel(@NotNull Plugin plugin) {
|
||||
if (plugin == null) {
|
||||
throw new IllegalArgumentException("Plugin cannot be null");
|
||||
}
|
||||
@@ -202,7 +203,8 @@ public class StandardMessenger implements Messenger {
|
||||
removeFromOutgoing(plugin);
|
||||
}
|
||||
|
||||
public PluginMessageListenerRegistration registerIncomingPluginChannel(Plugin plugin, String channel, PluginMessageListener listener) {
|
||||
@NotNull
|
||||
public PluginMessageListenerRegistration registerIncomingPluginChannel(@NotNull Plugin plugin, @NotNull String channel, @NotNull PluginMessageListener listener) {
|
||||
if (plugin == null) {
|
||||
throw new IllegalArgumentException("Plugin cannot be null");
|
||||
}
|
||||
@@ -221,7 +223,7 @@ public class StandardMessenger implements Messenger {
|
||||
return result;
|
||||
}
|
||||
|
||||
public void unregisterIncomingPluginChannel(Plugin plugin, String channel, PluginMessageListener listener) {
|
||||
public void unregisterIncomingPluginChannel(@NotNull Plugin plugin, @NotNull String channel, @NotNull PluginMessageListener listener) {
|
||||
if (plugin == null) {
|
||||
throw new IllegalArgumentException("Plugin cannot be null");
|
||||
}
|
||||
@@ -233,7 +235,7 @@ public class StandardMessenger implements Messenger {
|
||||
removeFromIncoming(new PluginMessageListenerRegistration(this, plugin, channel, listener));
|
||||
}
|
||||
|
||||
public void unregisterIncomingPluginChannel(Plugin plugin, String channel) {
|
||||
public void unregisterIncomingPluginChannel(@NotNull Plugin plugin, @NotNull String channel) {
|
||||
if (plugin == null) {
|
||||
throw new IllegalArgumentException("Plugin cannot be null");
|
||||
}
|
||||
@@ -242,7 +244,7 @@ public class StandardMessenger implements Messenger {
|
||||
removeFromIncoming(plugin, channel);
|
||||
}
|
||||
|
||||
public void unregisterIncomingPluginChannel(Plugin plugin) {
|
||||
public void unregisterIncomingPluginChannel(@NotNull Plugin plugin) {
|
||||
if (plugin == null) {
|
||||
throw new IllegalArgumentException("Plugin cannot be null");
|
||||
}
|
||||
@@ -250,6 +252,7 @@ public class StandardMessenger implements Messenger {
|
||||
removeFromIncoming(plugin);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Set<String> getOutgoingChannels() {
|
||||
synchronized (outgoingLock) {
|
||||
Set<String> keys = outgoingByChannel.keySet();
|
||||
@@ -257,7 +260,8 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
public Set<String> getOutgoingChannels(Plugin plugin) {
|
||||
@NotNull
|
||||
public Set<String> getOutgoingChannels(@NotNull Plugin plugin) {
|
||||
if (plugin == null) {
|
||||
throw new IllegalArgumentException("Plugin cannot be null");
|
||||
}
|
||||
@@ -273,6 +277,7 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Set<String> getIncomingChannels() {
|
||||
synchronized (incomingLock) {
|
||||
Set<String> keys = incomingByChannel.keySet();
|
||||
@@ -280,7 +285,8 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
public Set<String> getIncomingChannels(Plugin plugin) {
|
||||
@NotNull
|
||||
public Set<String> getIncomingChannels(@NotNull Plugin plugin) {
|
||||
if (plugin == null) {
|
||||
throw new IllegalArgumentException("Plugin cannot be null");
|
||||
}
|
||||
@@ -302,7 +308,8 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(Plugin plugin) {
|
||||
@NotNull
|
||||
public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(@NotNull Plugin plugin) {
|
||||
if (plugin == null) {
|
||||
throw new IllegalArgumentException("Plugin cannot be null");
|
||||
}
|
||||
@@ -318,7 +325,8 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(String channel) {
|
||||
@NotNull
|
||||
public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(@NotNull String channel) {
|
||||
channel = validateAndCorrectChannel(channel);
|
||||
|
||||
synchronized (incomingLock) {
|
||||
@@ -332,7 +340,8 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(Plugin plugin, String channel) {
|
||||
@NotNull
|
||||
public Set<PluginMessageListenerRegistration> getIncomingChannelRegistrations(@NotNull Plugin plugin, @NotNull String channel) {
|
||||
if (plugin == null) {
|
||||
throw new IllegalArgumentException("Plugin cannot be null");
|
||||
}
|
||||
@@ -357,7 +366,7 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isRegistrationValid(PluginMessageListenerRegistration registration) {
|
||||
public boolean isRegistrationValid(@NotNull PluginMessageListenerRegistration registration) {
|
||||
if (registration == null) {
|
||||
throw new IllegalArgumentException("Registration cannot be null");
|
||||
}
|
||||
@@ -373,7 +382,7 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isIncomingChannelRegistered(Plugin plugin, String channel) {
|
||||
public boolean isIncomingChannelRegistered(@NotNull Plugin plugin, @NotNull String channel) {
|
||||
if (plugin == null) {
|
||||
throw new IllegalArgumentException("Plugin cannot be null");
|
||||
}
|
||||
@@ -394,7 +403,7 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isOutgoingChannelRegistered(Plugin plugin, String channel) {
|
||||
public boolean isOutgoingChannelRegistered(@NotNull Plugin plugin, @NotNull String channel) {
|
||||
if (plugin == null) {
|
||||
throw new IllegalArgumentException("Plugin cannot be null");
|
||||
}
|
||||
@@ -411,7 +420,7 @@ public class StandardMessenger implements Messenger {
|
||||
}
|
||||
}
|
||||
|
||||
public void dispatchIncomingMessage(Player source, String channel, byte[] message) {
|
||||
public void dispatchIncomingMessage(@NotNull Player source, @NotNull String channel, @NotNull byte[] message) {
|
||||
if (source == null) {
|
||||
throw new IllegalArgumentException("Player source cannot be null");
|
||||
}
|
||||
@@ -441,7 +450,7 @@ public class StandardMessenger implements Messenger {
|
||||
* @deprecated not an API method
|
||||
*/
|
||||
@Deprecated
|
||||
public static void validateChannel(String channel) {
|
||||
public static void validateChannel(@NotNull String channel) {
|
||||
validateAndCorrectChannel(channel);
|
||||
}
|
||||
|
||||
@@ -453,7 +462,8 @@ public class StandardMessenger implements Messenger {
|
||||
* @deprecated not an API method
|
||||
*/
|
||||
@Deprecated
|
||||
public static String validateAndCorrectChannel(String channel) {
|
||||
@NotNull
|
||||
public static String validateAndCorrectChannel(@NotNull String channel) {
|
||||
if (channel == null) {
|
||||
throw new IllegalArgumentException("Channel cannot be null");
|
||||
}
|
||||
@@ -498,7 +508,7 @@ public class StandardMessenger implements Messenger {
|
||||
* @throws ChannelNotRegisteredException Thrown if the channel is not
|
||||
* registered for this plugin.
|
||||
*/
|
||||
public static void validatePluginMessage(Messenger messenger, Plugin source, String channel, byte[] message) {
|
||||
public static void validatePluginMessage(@NotNull Messenger messenger, @NotNull Plugin source, @NotNull String channel, @NotNull byte[] message) {
|
||||
if (messenger == null) {
|
||||
throw new IllegalArgumentException("Messenger cannot be null");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user