13
0
geforkt von Mirrors/Paper

248 Commits

Autor SHA1 Nachricht Datum
Bukkit/Spigot
fb2cf30fbe Deprecate methods in JavaPluginLoader and PluginClassLoader
These methods are unnecessarily exposed. They are specific to a type of
implementation for the class loaders, and should have no external use.
Because these methods are exposed, it limits the versatility to change
how the internal class loading system works, including an inherent class
loader leak for some situations.

They are now replaced with internal, package-private methods. The public
facing methods will print a stack trace the first time one is activated.

Extending the classes also produces a stack trace, to indicate that
extension is not actively supported.

By: Wesley Wolfe <weswolf@aol.com>
2012-12-18 00:15:40 -06:00
Bukkit/Spigot
49c3dee8f8 Make some JavaPlugin methods final. Fixes BUKKIT-2916
These methods were never intended to be overwritten, and bukkit relies
on their internal functionality. Additionally, the methods were inlined
in JavaPlugin, but the finality maintains intention.

By: Wesley Wolfe <weswolf@aol.com>
2012-11-13 15:38:46 -06:00
Bukkit/Spigot
14c7734fb1 Add tab-completion API. Fixes BUKKIT-2181. Adds BUKKIT-2602
CommandMap contains a method that will auto-complete commands
appropriately. Before the first space, it searches for commands of which
the sender has permission. After the first space, it delegates to the
individual command.

Vanilla commands contain implementations to mimic vanilla
implementation. Exception would be give, that allows for name matching;
a feature we already allowed as part of the command is now supported for
auto-complete as well.

Plugin commands can get a tab completer set to delegate the completion
for. If no tab completer is set, it can check the executor to see if it
implements the tab completion interface. It will also attempt to chain
calls if null gets returned from these interfaces. Plugins also
implement the new TabCompleter interface, to add ease-of-use for plugin
developers, similar to the onCommand() method.

The default command implementation simply searches for player names.

To help facilitate command completion, a utility class was added with
two functions. One checks two strings, to see if the specified string
starts with (ignoring case) the second. The other method uses the first
to selectively copy elements from one collection to another.

By: Score_Under <seejay.11@gmail.com>
2012-10-09 14:54:12 -05:00
Bukkit/Spigot
e747728b35 Clarify some of the verbose in SimplePluginManager.
When an exception occurs, the version of the plugin is not included.
Having this information would be beneficial to plugin authors performing
debug.

The list of authors for NagAuthorException verbose (although unused)
would be more appropriate to simply include all authors, as opposed to
the first appearing.

By: Wesley Wolfe <weswolf@aol.com>
2012-09-30 03:35:06 -05:00
Bukkit/Spigot
29a5295348 Allow inherited methods to be event handlers. Addresses BUKKIT-2299
This change lets JavaPluginLoader use a temporary HashSet to store
methods that could possibly have the EventHandler annotation. Duplicates
are prevented by the nature of a Set.

Registering parent listeners is a breaking change for any listener
extending another listener and expecting parent listeners to not be
called. Changing this is justified by the ease-of-use and proper object
inheritance design. If this is undesired behavior, the method may be
overridden without reapplying the method with the EventHandler notation.

By: Wesley Wolfe <weswolf@aol.com>
2012-08-26 21:14:28 -05:00
Bukkit/Spigot
f7b46ffa10 Provide better verbose for registering listeners. Addresses BUKKIT-2391
By: Wesley Wolfe <weswolf@aol.com>
2012-08-25 17:48:53 -05:00
Bukkit/Spigot
9b80392085 Fully restrict the org.bukkit and net.minecraft namespace
By: Wesley Wolfe <weswolf@aol.com>
2012-08-19 05:53:30 -05:00
Bukkit/Spigot
cef9873c0c Add Warning API and settings for Deprecated events
By: Wesley Wolfe <weswolf@aol.com>
2012-08-07 00:16:57 -05:00
Bukkit/Spigot
6aae0dcd35 Warn server owners of plugins using deprecated events. Fixes BUKKIT-2027
By: Wesley Wolfe <weswolf@aol.com>
2012-08-02 23:21:02 -05:00
Bukkit/Spigot
d4f4e9f5d1 Add check for existing config file. Addresses BUKKIT-1851
By: Wesley Wolfe <weswolf@aol.com>
2012-06-23 21:31:57 -05:00
Bukkit/Spigot
8b6f1612a1 Revert "Shift plugin initialization; Addresses BUKKIT-1788"
This reverts commit 27cb5e7c9c6b2cfc5419262df75d89bc6bfe7879. Issues
were discovered with shared class loaders.

By: Wesley Wolfe <weswolf@aol.com>
2012-06-16 00:48:47 -05:00
Bukkit/Spigot
5d9e74a637 Shift plugin initialization; Addresses BUKKIT-1788
By: Wesley Wolfe <weswolf@aol.com>
2012-06-11 01:45:41 -05:00
Bukkit/Spigot
ad7045596d Support asynchronous events; Addresses BUKKIT-1212
By: Wesley Wolfe <weswolf@aol.com>
2012-06-13 21:28:13 -05:00
Bukkit/Spigot
03af91781c Javadoc updates
Fixes BUKKIT-1653, Fixes BUKKIT-1383 and Fixes BUKKIT-1644

By: feildmaster <admin@feildmaster.com>
2012-06-03 05:40:54 -05:00
Bukkit/Spigot
3b35e0472d Change logger references to explicitly use plugin logger
By: Wesley Wolfe <weswolf@aol.com>
2012-05-26 14:33:27 -05:00
Bukkit/Spigot
a8a9d75bcd Reverse disable order; Addresses BUKKIT-1389
By: Wesley Wolfe <weswolf@aol.com>
2012-05-25 15:56:33 -05:00
Bukkit/Spigot
242582acc7 Make class loader preference predictable; Fixes BUKKIT-1591
By: Wesley Wolfe <weswolf@aol.com>
2012-05-25 15:47:39 -05:00
Bukkit/Spigot
1290db91bf [Bleeding] Fixed soft-dependencies broken by previous commit.
By: Wesley Wolfe <weswolf@aol.com>
2012-03-22 01:56:44 -05:00
Bukkit/Spigot
8874c4e872 [Bleeding] Added loadbefore property; Addresses BUKKIT-843
By: Wesley Wolfe <weswolf@aol.com>
2012-03-20 03:54:51 -05:00
Bukkit/Spigot
1cbbdebfe3 [Bleeding] Lazily calculate permissions. Addresses BUKKIT-1122
By: Wesley Wolfe <weswolf@aol.com>
2012-03-10 15:05:59 -06:00
Bukkit/Spigot
71a60b4c11 [Bleeding] More lenient command creation from plugin.yml. Fixes BUKKIT-1093
By: Wesley Wolfe <weswolf@aol.com>
2012-03-10 13:11:21 -06:00
Bukkit/Spigot
18c825222a [Bleeding] Fixed naughty plugins crashing server.
By: Wesley Wolfe <weswolf@aol.com>
2012-03-01 09:19:23 -06:00
Bukkit/Spigot
795a61bbeb Fix javadoc errors/warnings
By: Celtic Minstrel <celtic.minstrel.ca@some.place>
2012-02-26 10:35:17 -05:00
Bukkit/Spigot
5ebb8d2b3e Revert Plugin to Interface, added PluginBase
Fixed Tests, moved TestPlugin out of messaging

By: Feildmaster <admin@feildmaster.com>
2012-02-29 18:46:09 -06:00
Bukkit/Spigot
43002d0cbb Add optional prefix value to plugin.yml. Addresses BUKKIT-838
By: Aidan Matzko <amatzko48@gmail.com>
2012-02-26 18:36:03 -05:00
Bukkit/Spigot
dd1bee786b [Bleeding] Added a Metadata framework for Entities, Blocks, and Worlds
This metadata implementation has the following features:

- All metadata is lazy. Metadata values are not actually computed until another plugin requests them. Memory and CPU are conserved by not computing and storing unnecessary metadata values.

- All metadata is cached. Once a metadata value is computed its value is cached in the metadata store to prevent further unnecessary computation. An invalidation mechanism is provided to flush the cache and force recompilation of metadata values.

- All metadata is stored in basic data types. Convenience methods in the MetadataValue class allow for the conversion of metadata data types when possible. Restricting metadata to basic data types prevents the accidental linking of large object graphs into metadata. Metadata is persistent across the lifetime of the application and adding large object graphs would damage garbage collector performance.

- Metadata access is thread safe. Care has been taken to protect the internal data structures and access them in a thread safe manner.

- Metadata is exposed for all objects that descend from Entity, Block, and World. All Entity and World metadata is stored at the Server  level and all Block metadata is stored at the World level.

- Metadata is NOT keyed on references to original objects - instead metadata is keyed off of unique fields within those objects. Doing this allows metadata to exist for blocks that are in chunks not currently in memory. Additionally, Player objects are keyed off of player name so that Player metadata remains consistent between logins.

- Metadata convenience methods have been added to all Entities, Players, Blocks, BlockStates, and World allowing direct access to an individual instance's metadata.

- Players and OfflinePlayers share a single metadata store, allowing player metadata to be manipulated regardless of the player's current online status.

By: rmichela <deltahat@gmail.com>
2011-12-08 00:33:33 -05:00
Bukkit/Spigot
5906da7948 [Bleeding] Cleaned up unsafe casts. Addresses BUKKIT-844
Removed internal collection leaks from PluginDescriptionFile
BREAKING: PluginDescriptionFile.getAuthors() now returns List instead of
ArrayList

Various places with unsafe generics, notably List<Object> getList() in
Configurations are now referenced as <?>. This is nonbreaking, but
sourcecode will need to be revised when compiled.

By: Wesley Wolfe <weswolf@aol.com>
2012-02-29 08:32:25 -06:00
Bukkit/Spigot
9ebb2f13de [Bleeding] Fixes deadlock issue and generic usage. Fixes BUKKIT-844 and fixes BUKKIT-854
By: Wesley Wolfe <weswolf@aol.com>
2012-02-29 08:29:22 -06:00
Bukkit/Spigot
345f24b35c Event system optimizations. Addresses BUKKIT-813
- Made the handlers field a simple array instead of an array of arrays.
- Got rid of the "baked" field.

By: TomyLobo <tomylobo@nurfuerspam.de>
2012-02-28 19:37:27 -06:00
Bukkit/Spigot
3b9e2f4a67 Adjust plugin enable/disable logging
By: EdGruberman <ed@rjump.com>
2012-02-15 12:11:10 -07:00
Bukkit/Spigot
860011dcc1 Added service register and unregister events. Addresses BUKKIT-816
By: zml2008 <zach@zachsthings.com>
2011-11-12 20:22:30 -08:00
Bukkit/Spigot
b58168b112 [Bleeding] Exception cleanup. Addresses BUKKIT-774
By: Wesley Wolfe <weswolf@aol.com>
2012-02-18 17:15:59 -06:00
Bukkit/Spigot
91c8bbacc7 [Bleeding] Skip InvocationTargetException. Addresses BUKKIT-774
By: Wesley Wolfe <weswolf@aol.com>
2012-02-16 18:14:39 -06:00
Bukkit/Spigot
75fd934339 Deprecation cleanup.
By: Erik Broes <erikbroes@grum.nl>
2012-01-30 21:32:48 +01:00
Bukkit/Spigot
63464c3bb0 [Bleeding] Update serialVersionUID.
By: Wesley Wolfe <weswolf@aol.com>
2012-02-13 01:22:39 -06:00
Bukkit/Spigot
4e48b4725f [Bleeding] Added ability to register and listen to SubEvents. Addresses
BUKKIT-585

By: Feildmaster <admin@feildmaster.com>
2012-01-25 09:49:12 -06:00
Bukkit/Spigot
6492eb9683 [Bleeding] Cleanup of exceptions org.bukkit.plugin.Invalid*
Removed throwable and message, because the superclass already stores them
Added message of inner exception to the outer exception to make the first line of the stacktrace more verbose

By: Zeerix <zeerix@draig.de>
2012-02-11 02:16:16 +01:00
Bukkit/Spigot
cb2fe27653 [Bleeding] Add the ability for plugins to ignore cancelled events when
using the new event system.

By: md_5 <md_5@bigpond.com>
2012-01-21 15:34:22 +11:00
Bukkit/Spigot
3dadfe5e85 Properly unregister plugin channels when a plugin gets disabled.
By: Meaglin <meaglin.wasabi@gmail.com>
2012-01-28 03:45:49 +01:00
Bukkit/Spigot
e423860f9f onEnable and onDisable are no longer required implementations for JavaPlugins
By: Nathan Adams <dinnerbone@dinnerbone.com>
2012-02-01 01:53:38 +00:00
Bukkit/Spigot
5541a29f2d Fixed plugin loader. Thanks Wolvereness!
By: EvilSeph <evilseph@gmail.com>
2012-01-25 04:11:37 -05:00
Bukkit/Spigot
05b6ad92d1 Updated timing code for new event system
By: Tahg <tahgtahv@gmail.com>
2012-01-16 15:03:41 -05:00
Bukkit/Spigot
1a86a7e3f7 Added new PlayerExpChangeEvent and PlayerLevelChangeEvent events. Thanks to feildmaster for the PR.
By: Nathan Adams <dinnerbone@dinnerbone.com>
2012-01-19 16:07:03 +00:00
Bukkit/Spigot
84372f7cd5 Use the type of the eventhandler method's parameter as type rather than specificing it. Thanks zml2008.
By: Erik Broes <erikbroes@grum.nl>
2012-01-19 08:13:49 +01:00
Bukkit/Spigot
0c50b9eeb1 Added a default to EventHandler.priority()
Fixed HandlerList.unregisterAll()
Fixed incorrect isAssignableFrom check in SimplePluginManager.getRegistrationClass()

By: zml2008 <zach@zachsthings.com>
2012-01-17 19:06:48 -08:00
Bukkit/Spigot
33f366c08d Minor cleanup
By: Erik Broes <erikbroes@grum.nl>
2012-01-17 19:35:28 +01:00
Bukkit/Spigot
e0c7fc6bf5 [Bleeding] Changed event system into a new, much faster design. Huge thanks to @zml2008 & @lahwran.
By: Nathan Adams <dinnerbone@dinnerbone.com>
2012-01-16 18:25:17 +00:00
Bukkit/Spigot
c02d8155ad [Bleeding] Added Plugin.getLogger() which returns a java.util.Logger that prefixes messages with the plugin name.
Note: the server when enabling or disabling a plugin will now by default log this.

By: rmichela <deltahat@gmail.com>
2011-12-15 00:31:13 -05:00
Bukkit/Spigot
4c80a49933 Generic cleaning
By: Erik Broes <erikbroes@grum.nl>
2012-01-15 14:37:30 +01:00
Bukkit/Spigot
8377ee22f8 Added "class-loader-of" field to plugin.yml. Big thanks to CmdrDats for the PR.
By: Nathan Adams <dinnerbone@dinnerbone.com>
2012-01-15 12:54:06 +00:00