Kristian S. Stangeland
b451a5a672
Adding a plugin verification system detecting common programmer errors
...
Initially we will detect plugins that attempt to register a listener in
ProtocolLib without setting "depend" or "soft-depend".
2013-04-19 21:34:34 +02:00
Kristian S. Stangeland
5ca29ef5ce
Leave ThreadDead alone!
...
The original intent of catching throwable is to "sandbox" arbitrary
plugin logic and prevent it from ever accidentally killing threads on
the server. A LinkageError due to a missing or old dependency shouldn't
bring down the server, so we secure it by catching all exceptions around
plugin event handlers.
Trouble is, this also catches exceptions such as OutOfMemoryError or
ThreadDead, which assuredly should NOT be caught. The latter case has
even occured in the wild as seen by ticket 45 of TagAPI on BukkitDev.
Minecraft may terminate the reader and writer thread by calling stop(),
and this could occur within the event handler in a plugin. So we should
let ThreadDead go and propagate it to the appropriate handler in
Minecraft.
2013-04-14 03:53:27 +02:00
Kristian S. Stangeland
37dd46432a
Ignore these errors again.
2013-04-13 15:27:31 +02:00
Kristian S. Stangeland
cd78e311d5
Looks like Rhino is not guaranteed after all. Add some checks.
2013-04-13 14:20:35 +02:00
Kristian S. Stangeland
8a5ebb88e0
Added the ability to recover from engine incompatibilities.
2013-04-12 17:12:42 +02:00
Kristian S. Stangeland
2411d29822
Correctly reference v1_5_R2.
2013-04-12 05:09:05 +02:00
Kristian S. Stangeland
8e11a40662
Update unit test to 1.5.1
2013-04-11 22:51:44 +02:00
Kristian S. Stangeland
bda4474d62
Update packets to 1.5.1
2013-04-11 22:51:34 +02:00
Kristian S. Stangeland
95603d3fa2
Increment to 2.4.2-SNAPSHOT
2013-04-11 22:51:20 +02:00
Kristian S. Stangeland
e7be3be17f
Increment to 2.4.1
2013-04-09 16:49:17 +02:00
Kristian S. Stangeland
72172805ba
Exploit the internal JavaScript parser to determine if the exp is done.
...
The original code attempted to parse the JavaScript as it went along,
counting open and close brackets. Unfortunately, this doesn't
take comments and string literals into consideration, so it would very
likely have failed with more complicated filters.
Instead, we'll let the JavaScript compiler handle all the complexity
and simply see if the code compiles. If it doesn't, but the error
occured in the last line, we assume it can be recovered by adding a
new line.
2013-04-09 16:48:26 +02:00
Kristian S. Stangeland
da7a58fb43
Incrementing to 2.4.0.
...
This is due to the non-breaking API changes
in 505226f8ad
2013-04-09 15:11:43 +02:00
Kristian S. Stangeland
82bb7a7c43
Adding support for Spigot MCPC 1.2.5.
...
Very buggy indeed.
2013-04-08 21:53:54 +02:00
Kristian S. Stangeland
505226f8ad
Added the ability to match derived classes and interfaces.
2013-04-08 17:57:56 +02:00
Kristian
867afe29f7
Minecraft 1.5.1 seems to work fine.
2013-04-07 15:57:38 +02:00
Kristian
3ee38d7b6d
Arbitrary code execution is very dangerous. Limit to debug mode.
...
The filter command allows users with sufficient permission (or OPs) to
execute arbitrary JavaScript (no sandboxing). This is fine for a
debug and testing, but could potentially be exploited in a
production environment.
Instead, we disable this command by default and force users to enable it
specifically in the configuration file (not through commands). If
someone has access to the config.yml file, they probably also have
access to the plugins/ folder and thus the ability to install plugins
with arbitrary code execution as well.
2013-04-07 15:57:01 +02:00
Kristian
15980d70fb
Added a simple filter system that utilizes JavaScript (Rhino)
...
This makes it possible to filter packet events with arbitrary code.
2013-04-07 15:33:19 +02:00
Kristian S. Stangeland
5720994a31
Merge remote-tracking branch 'origin/master'
2013-04-02 14:30:14 +02:00
Kristian S. Stangeland
22beae23e0
Retrieve the correct Nbt base class
2013-04-02 14:28:34 +02:00
Kristian S. Stangeland
fb441b4910
Retrieve the correct Minecraft superclass
2013-04-02 14:12:36 +02:00
Kristian S. Stangeland
9a34036d14
Improve Minecraft class detection
2013-04-02 13:55:18 +02:00
Kristian Stangeland
27da638a91
Update the player instance on login (LOWEST), not HIGHEST.
...
Should ensure that packet listeners recieve the most up-to-date player
instance, regardless of whether or not the main thread is blocked in the
player listener. No more temporary players.
2013-03-28 22:27:58 -04:00
Kristian Stangeland
b3322b35c1
Prevent ConcurrentModifcationExceptions.
...
See http://pastebin.com/UBvGSFs9/
2013-03-28 21:58:06 -04:00
Kristian S. Stangeland
a43428c2c4
No need to create the dependency reduced POM
2013-03-23 15:45:57 +01:00
Kristian S. Stangeland
d643690eef
Added a small patch for Libigot.
2013-03-21 02:10:30 +01:00
Kristian S. Stangeland
310fd18e89
Ignore players that have logged out and have not been injected.
2013-03-17 23:55:08 +01:00
Kristian S. Stangeland
da0bcaa482
Seems to pass all the preliminary tests.
2013-03-13 23:59:13 +01:00
Kristian S. Stangeland
ed9b61fd11
Use an atomic reference array instead of ConcurrentHashMap for listeners
2013-03-12 02:33:35 +01:00
Kristian S. Stangeland
e3cfa45607
Ensure that monitor listeners cannot modify a packet event.
2013-03-12 02:02:36 +01:00
Kristian S. Stangeland
1bd0db20ce
Invoke MONITOR listeners, even if we are bypassing normal listeners.
2013-03-12 01:16:07 +01:00
Kristian S. Stangeland
3c97cffc09
After Minecraft 1.4.4, CraftBukkit no longer redirects MAP_CHUNK.
...
We can therefore relax the requirements in NetworkFieldInjector and
NetworkObjectInjetor.
2013-03-12 00:52:09 +01:00
Kristian S. Stangeland
a798147e71
Correctly override SpoutPlugin's sendPacket method.
2013-03-10 18:52:41 +01:00
Kristian S. Stangeland
e8f5bce3d5
Update JavaDoc for 2.3.0
2013-03-05 17:07:09 +01:00
Kristian S. Stangeland
ef334aff50
Merge branch 'master' into gh-pages
2013-03-05 16:59:29 +01:00
Kristian S. Stangeland
9b3893b807
Useless changes.
2013-03-05 16:59:22 +01:00
Kristian S. Stangeland
4406cdb571
Increment to version 2.3.0
2013-03-05 16:51:08 +01:00
Kristian S. Stangeland
9a16143c89
Small documentation fix.
2013-03-05 16:50:59 +01:00
Kristian S. Stangeland
9f6b4b60e3
Don't overwrite an existing player injector in net login.
2013-03-04 16:54:54 +01:00
Kristian S. Stangeland
b1b6e9ec20
In blocking hash map, don't remove locks if the value has been replaced
2013-03-04 13:29:46 +01:00
Kristian S. Stangeland
6019ab177c
Create a dummy injector if we haven't yet injected the player.
2013-03-04 00:44:09 +01:00
Kristian S. Stangeland
d387b2d792
Improve client packet interception by about 37%.
2013-03-03 14:49:20 +01:00
Kristian S. Stangeland
2985dc9cf8
Be less picky over what packets to subclass. FIXES Ticket-49
2013-02-28 22:30:37 +01:00
Kristian S. Stangeland
8388a77f0b
Catch ConnectExceptions - they are not serious.
2013-02-28 22:07:53 +01:00
Kristian S. Stangeland
2e0acd3a78
Increment version to 2.2.4-SNAPSHOT
2013-02-28 02:15:22 +01:00
Kristian S. Stangeland
d60ab3e953
Identify player connections by socket address.
...
It's the only thing that will not not be removed when a
network manager closes, making it relatively safe to block on.
2013-02-28 01:39:49 +01:00
Kristian S. Stangeland
fbfbd28bea
We might revert this some other time, if we need to support other JVMs
2013-02-27 01:15:06 +01:00
Kristian S. Stangeland
c7737ca96e
It's an injector container.
2013-02-27 01:10:21 +01:00
Kristian S. Stangeland
c32d225ef3
Use socket as key instead of input stream.
2013-02-27 01:09:22 +01:00
Kristian S. Stangeland
56807cbd3a
Don't throw a NullPointerException if the injection fails.
2013-02-26 19:14:40 +01:00
Kristian S. Stangeland
3357fd6c9c
Fix NPE in CleanupStaticMembers.
...
Determine if this is really necessary. No point cleanup up after
yourself in a sewer.
2013-02-26 13:37:33 +01:00