Kristian S. Stangeland
768d169f27
Added the same NULL check to the generic Bukkit unwrapper.
2012-10-12 00:01:05 +02:00
Kristian S. Stangeland
57add8e26f
Handling the case where someone is writing a NULL element to
...
a equivalent converter.
2012-10-11 23:57:45 +02:00
Kristian S. Stangeland
8bd7f75a6d
Updating POM to use Sonatype Nexus OSS.
2012-10-11 22:30:46 +02:00
Kristian S. Stangeland
ff0cd06b2e
[maven-release-plugin] prepare release ProtocolLib-1.3.1
2012-10-11 08:03:59 +02:00
Kristian S. Stangeland
97a22a0f6d
Revert to SNAPSHOT due to buggy maven.
2012-10-11 08:03:45 +02:00
Kristian S. Stangeland
5a8847a719
Updated POM to use my personal maven repo.
2012-10-11 08:00:00 +02:00
Kristian S. Stangeland
707b4511ce
Add repository information to POM.
2012-10-11 02:56:45 +02:00
Kristian S. Stangeland
b4d0c4a36d
Prepare POM for possibly being on the public maven repository.
2012-10-11 02:17:45 +02:00
Kristian S. Stangeland
8d3c1de9b9
Adding GPL v2 license information to every file.
2012-10-10 22:18:11 +02:00
Kristian S. Stangeland
dc75f34e11
Add a warning message for lost packets.
2012-10-10 22:12:29 +02:00
Kristian S. Stangeland
5bda655f39
Switching to Maven instead of Ant.
2012-10-10 21:35:55 +02:00
Kristian S. Stangeland
4301dc6525
Add the ability to customize the worker threads.
2012-10-10 07:16:01 +02:00
Kristian S. Stangeland
17b7526fe9
Set the queued index before enqueuing, not after.
2012-10-10 06:00:42 +02:00
Kristian S. Stangeland
cf68d229b0
Honor the sending index when the packet has finished processing.
2012-10-10 05:42:45 +02:00
Kristian S. Stangeland
7ed0bc82dd
Make it possible for threads to delay packet transmission.
...
Threads can now increment a shared counter indicating that a packet
should not be transmitted after the default packet listener
processing. This can be useful if a packet listener needs information
from additional packets before it can complete.
Packet listeners that whish to use this method begin by calling
incrementPacketDelay(). It is then responsible for calling
signalPacketTransmission() when it's done waiting. All processing
on PacketEvents outside packet listeners must be synchronized
with getProcessingLock().
2012-10-10 04:41:07 +02:00
Kristian S. Stangeland
20792aa09a
Reorder injection hooks.
...
We put the network manager hook to the bottom as it's the least
likely version to be compatible with other plugins.
2012-10-10 02:50:27 +02:00
Kristian S. Stangeland
eb328c41e8
Increase the player listener to MONITOR.
2012-10-10 02:48:24 +02:00
Kristian S. Stangeland
6053b9e64b
Added the ability to determine if any client or server packet is valid.
...
Also, added a warning when a plugin attempts to listen for a packet
ID that doesn't exist in the current Minecraft version.
2012-10-10 02:41:34 +02:00
Kristian S. Stangeland
f8bd36bf3c
Added the ability to enumerate IntEnums.
2012-10-09 22:37:33 +02:00
Kristian S. Stangeland
cecab6a169
Unwrap collections in the packet constructor.
2012-10-09 17:41:37 +02:00
Kristian S. Stangeland
2b90acf53e
Ensure that non-CraftBukkit item stacks are correctly converted.
2012-10-09 16:48:55 +02:00
Kristian S. Stangeland
5e36547aa2
Give automatically created worker threads sensible names.
2012-10-09 00:07:40 +02:00
Kristian S. Stangeland
12eab67db7
Fixed JavaDoc.
2012-10-05 04:43:41 +02:00
Kristian S. Stangeland
88da4e3272
Bumping to version 1.3.0
2012-10-05 03:50:28 +02:00
Kristian S. Stangeland
0e76d8ea2b
Make the proxy creation even more flexible.
...
Now we even support Orebfuscator without using Spout.
2012-10-05 03:12:35 +02:00
Kristian S. Stangeland
18ef06ea21
Adding "support" for Spout by proxying it's NetServerHandler.
...
While it may seem better to use a Spout PacketListener, we can't
prevent other spout listeners from stopping the listener
chain. For instance, Orebfuscator does supports Spout, but does this
by cancelling every chunk packet and sending them to be processed and
sent by Orebfuscator only. This can never be made compatible with
other plugins.
So, we choose to add some overhead and inject our proxy onto Spout.
Fortunately, Spout injects the proxy using a player listener on LOWEST,
so we get to override Spout again with our HIGHEST. The proxy method
should be generic enough to handle most proxy types.
2012-10-05 01:41:17 +02:00
Kristian S. Stangeland
af3e278e06
Moved all player related injection methods into a separate package.
...
This should make the code a little bit clearer.
2012-10-04 21:56:39 +02:00
Kristian S. Stangeland
eb12808483
Prevent method #3 from creating uneeded proxy objects.
...
This would happen if the NetServerHandler is already a proxy, and
the injection method is unable to create an instance of the proxy
type.
It's best to fail instead of polluting (due to constructors with
side-effects) Minecraft with failed proxy objects.
2012-10-04 17:43:46 +02:00
Kristian S. Stangeland
f0651f7170
Don't blow up the fallback method just because a plugin isn't
...
compatible.
2012-10-04 09:01:33 +02:00
Kristian S. Stangeland
debf8c4d88
Create the worker ID before it is run.
...
In addition, we'll prevent reuse of worker objects.
2012-10-04 06:23:27 +02:00
Kristian S. Stangeland
af2d692c59
Wait and notify on the correct lock.
2012-10-04 06:13:19 +02:00
Kristian S. Stangeland
db8db1fba1
Make it possible to identify the current worker.
2012-10-04 05:14:17 +02:00
Kristian S. Stangeland
e729583d74
Make the manual asynchronous worker closable.
...
Added a good deal of synchronization to deal with closing a
specific worker. This overhead can be avoided by simply closing
any given worker.
2012-10-04 03:20:09 +02:00
Kristian S. Stangeland
8a5e5e849b
Attempt to work around existing injected proxies.
...
This didn't work for Orebfuscator though.
2012-10-04 00:58:05 +02:00
Kristian S. Stangeland
558eab2253
Use an atomic integer instead of a volatile field.
...
Incrementing and decrementing is not thread-safe on volatile variables.
2012-10-03 23:13:05 +02:00
Kristian S. Stangeland
c6fb01e1e1
Adding the ability to use multiple worker threads.
2012-10-03 23:10:35 +02:00
Kristian S. Stangeland
eb8ac33a3e
Removed uncompleted code.
2012-10-02 23:07:03 +02:00
Kristian S. Stangeland
3f1b5d49e9
Ignore offline players when sending overdue packets.
2012-10-02 23:05:31 +02:00
Kristian S. Stangeland
1e1875cbd8
Speed up the proxy object by using a NoOp filter.
2012-10-02 04:36:47 +02:00
Kristian S. Stangeland
48cedd20d4
Add some size methods.
2012-10-02 04:02:54 +02:00
Kristian S. Stangeland
e4e4581717
Bumping to 1.2.2
2012-10-02 03:55:07 +02:00
Kristian S. Stangeland
2fceaa803e
Fixed the "moved too quickly" error that would cause players to
...
fall out into the void on 1.3.2.
2012-10-02 03:54:50 +02:00
Kristian S. Stangeland
0470b2335c
Bumping to 1.2.1
2012-10-01 21:47:36 +02:00
Kristian S. Stangeland
fe55bb2e56
Processed packets is now sorted by the sending index.
2012-10-01 21:47:19 +02:00
Kristian S. Stangeland
7b35dd954c
Switching to the network server object.
2012-10-01 20:30:56 +02:00
Kristian S. Stangeland
f4f28023fa
Always create the NullPacketListener (unless otherwise stated).
...
This functions like a crude "counter" that automatically unregisters
the packet injectors when every asynchronous listener has been removed.
2012-10-01 06:04:31 +02:00
Kristian S. Stangeland
961b34da38
Update documentation (may still need some work).
2012-10-01 04:59:27 +02:00
Kristian S. Stangeland
c2b4b5fce3
Ensure that the compiled structures respect the converter field.
...
In addition, fixed a bug that prevented client listeners from
receiving any packets.
2012-10-01 02:17:13 +02:00
Kristian S. Stangeland
46d9a6e975
Ensure that the structure compiler is thread safe.
2012-10-01 00:57:14 +02:00
Kristian S. Stangeland
e6de9ae705
Remove debug line.
2012-10-01 00:16:34 +02:00