Kristian S. Stangeland
42303ae0fc
Use the FieldAccessException instead of InvalidArgumentException.
...
Otherwise, the CompiledStructureModifier has a leaky abstraction.
2012-09-27 05:42:34 +02:00
Kristian S. Stangeland
0004fb530d
Update the package name in the compiler.
2012-09-27 05:28:52 +02:00
Kristian S. Stangeland
ea823e58f7
Move structure modifier compiler to the reflect package.
2012-09-27 05:28:13 +02:00
Kristian S. Stangeland
8293c71a4c
Make sure the packet IDs are actually valid.
2012-09-27 05:26:02 +02:00
Kristian S. Stangeland
eb8abd4635
Try to clean up after a failed hook.
2012-09-27 05:22:08 +02:00
Kristian S. Stangeland
240df9dc7a
Complicated feature - auto-compilation of structure modifier.
...
Using ASM we can automatically generate a faster structure modifier
that doesn't use reflection to read or write public fields.
Note that because the compilation itself is a bit slow (10 ms++),
we have to create a background compilation thread. Future work:
* Disable the thread if it's idle after 60 seconds.
* Don't recreate the thread when the server reloads.
2012-09-27 03:24:34 +02:00
Kristian S. Stangeland
90970d1b9b
Ensure that server operators are informed about incompatibility.
2012-09-26 06:00:26 +02:00
Kristian S. Stangeland
9efb85e7c3
Handle 1.3 correctly.
2012-09-26 04:06:10 +02:00
Kristian S. Stangeland
22f2f45d1e
Added support for a hook method that can intercept map chunk packets.
2012-09-26 03:31:59 +02:00
Kristian S. Stangeland
e04a78fc04
Added yet another player hook method.
...
This method works by injecting into the NetServerHandler object
of a player. That way, we can also intercept map chunk packets.
2012-09-26 02:26:44 +02:00
Kristian S. Stangeland
9e402a3ab4
Added a "canInject" property in the injectors.
2012-09-26 02:01:44 +02:00
Kristian S. Stangeland
d8b300e3a6
Try to get the local player object if possible.
2012-09-25 23:10:08 +02:00
Kristian S. Stangeland
e0c03186c3
Add support for Java serialization of PacketEvent. It might be useful.
2012-09-25 23:09:02 +02:00
Kristian S. Stangeland
7f69c0204d
Added a bit of commentary.
2012-09-25 17:13:23 +02:00
Kristian S. Stangeland
8839c03948
Fixed a number of simple bugs discovered by FindBugs.
2012-09-20 18:35:45 +02:00
Kristian S. Stangeland
3899704774
Merge pull request #1 from mbax/mbax
...
TagAPI is compatible as of version 1.7
2012-09-19 11:00:18 -07:00
mbax
9ad6dcb41c
TagAPI is compatible as of version 1.7
2012-09-19 13:47:38 -04:00
Kristian S. Stangeland
54242debaa
Made structure modifiers more overridable.
2012-09-19 19:25:11 +02:00
Kristian S. Stangeland
bc7b395889
Adding desperately needed async/sync documentation.
2012-09-19 03:48:46 +02:00
Kristian S. Stangeland
77376a2fa3
Make the Bukkit unwrapper use the actual return type.
2012-09-18 18:37:11 +02:00
Kristian S. Stangeland
cd9fa1cdf6
Fixing documentation.
2012-09-18 17:20:48 +02:00
Kristian S. Stangeland
ad6fbae5d6
Incrementing to version 1.1.0
2012-09-18 17:17:20 +02:00
Kristian S. Stangeland
8f9939f65c
Added the ability to refresh the apperance of entities and players.
2012-09-18 16:30:46 +02:00
Kristian S. Stangeland
3783328cb1
Forgot to convert the types to NMS.
2012-09-18 02:16:11 +02:00
Kristian S. Stangeland
140edabb4e
Fixed packet constructor and tons of other bugs.
2012-09-18 02:04:26 +02:00
Kristian S. Stangeland
ffbaed283a
Improved the API slightly.
2012-09-18 00:01:02 +02:00
Kristian S. Stangeland
e5beca4ea5
And the PacketConstructor class itself.
2012-09-17 22:59:41 +02:00
Kristian S. Stangeland
fb15ee1b22
Adding packet constructors.
...
This should simplify a lot of code.
2012-09-17 22:59:20 +02:00
Kristian S. Stangeland
7a60c5aac7
Made the server registry static.
2012-09-17 16:40:08 +02:00
Kristian S. Stangeland
f74a6e9832
Made the packet ids static and thus usable in a switch statement.
2012-09-17 16:38:26 +02:00
Kristian S. Stangeland
381484fc5d
Adding a simple packet registry.
2012-09-17 16:21:15 +02:00
Kristian S. Stangeland
455ffca63f
Adding a entity structure modifier.
2012-09-17 01:34:10 +02:00
Kristian S. Stangeland
286e1159e9
Made certain classes private. No need to expose them to the API.
2012-09-16 03:18:58 +02:00
Kristian S. Stangeland
62d9afd1d1
Readme spelling.
2012-09-16 02:43:31 +02:00
Kristian S. Stangeland
59a3ba82b8
Changed formating again. Added different levels.
2012-09-16 02:27:33 +02:00
Kristian S. Stangeland
adb57e2bf3
Fixed readme formating somewhat.
2012-09-16 02:22:34 +02:00
Kristian S. Stangeland
798d734ba9
Adding readme.
2012-09-16 02:17:38 +02:00
Kristian S. Stangeland
b299886b62
Fixed the old server listener.
2012-09-16 02:07:18 +02:00
Kristian S. Stangeland
913ff7eed1
Removed pointless imports.
2012-09-16 01:41:08 +02:00
Kristian S. Stangeland
d04a666bc5
Readded a lighter version of network object injector.
...
This version only supports CraftBukkit 1.3.0 and later.
2012-09-15 23:07:14 +02:00
Kristian S. Stangeland
bdfbfa47c8
The NetworkObjectInjector is too unstable, so we'll remove it.
2012-09-15 20:10:35 +02:00
Kristian S. Stangeland
57c720681a
Made the object injector somewhat workable.
2012-09-15 20:09:34 +02:00
Kristian S. Stangeland
7e28aefb75
Moved the instance generator to a separate package.
...
In addition, added a new injection method. It's still not
finalized, and may get removed in the end.
2012-09-15 19:12:59 +02:00
Kristian S. Stangeland
aa2dcefa0d
Added two different player injection hooks, for compatibility with
...
TagAPI.
2012-09-15 13:47:14 +02:00
Kristian S. Stangeland
616213924b
Refactored the SortedCopyOnWriteArray out into a separate package.
...
Made it extend the java.util.Collection interface.
2012-09-15 13:07:44 +02:00
Kristian S. Stangeland
fffa3881dd
We won't try to fix TagAPI. Instead, we'll warn the users.
2012-09-15 02:39:38 +02:00
Kristian S. Stangeland
85f7360109
Refactored the hacked array list out of the player injector.
2012-09-15 01:58:13 +02:00
Kristian S. Stangeland
f2effab907
Improved documentation in a few places.
2012-09-15 01:04:08 +02:00
Kristian S. Stangeland
4505e31965
Prevented concurrency issues.
...
The SortedCopyOnWriteArray didn't wrap the iterator() in a
unmodifiable iterator. In addition, ConcurrentListenerMultimap
incorrectly used the iterator to remove objects from this Array.
Added a "remove(T value)" method that is thread-safe.
2012-09-14 22:33:15 +02:00
Kristian S. Stangeland
88dcf0cb32
Improved API and performance.
...
API changes:
* The PacketListener now uses a "ListeningWhitelist" class
to report which packet ids it wishes to listen in on for
either the client or the server. This makes it possible to
use your plugin class as the listener more easily.
* Added a priority system similar to Bukkit events.
Performance changes:
* Create and maintain a separate list of listeners for each packet
ID. This uses slightly more memory, but is far more efficient.
Especially in light of the priority system.
In addition, the listener lists are (hopefully) concurrent. They're
optimized for read-access, however. Adding or removing a listener
is a O(n) operation.
2012-09-14 19:12:08 +02:00