Commit Graph

895 Commits

Author SHA1 Message Date
Tux
848cad2a59 Fix cancelling TabCompleteEvent.
The packet would get sent regardless if the event was cancelled, only if there were no suggestions available.
2016-02-07 17:44:07 +11:00
Thinkofdeath
a0f2c42d38 Clear the address cache entry when a connection fails
Should help solve the issues caused by mojang swapping the ip address of
the session server.
2016-02-05 10:19:31 +11:00
md_5
e556fd7150 Add Connection.isConnected()Z API.
Idea from kamcio96 in #1693
2016-02-05 10:09:47 +11:00
md_5
841c81cdc4 [#1714] Make a copy of the main Minecraft buffer as EntityMap.rewriteVarInt may require more bytes than available. 2016-01-24 19:45:02 +11:00
md_5
052131c1fa Reduce amount of memcpy within proxy pipeline. 2016-01-24 11:22:39 +11:00
kamcio96
83e27f07e6 Use static instances of EntityMap 2016-01-16 12:44:32 +11:00
md_5
5cff0b2171 Remove redundant synchronization on ServerConnection.disconnect 2016-01-16 12:33:42 +11:00
md_5
2c86592ecd [#1649] Don't parse disconnect reason for servers.
Reported by @kamcio96
2016-01-16 12:29:13 +11:00
md_5
f5552963b8 Update Netty and enable EPoll transport. 2016-01-16 11:37:17 +11:00
Tux
a1895c556f Make BoundedArrayList follow the old behavior.
Unit tests have been included.
2016-01-11 14:09:07 +11:00
md_5
aa214c0b54 [#1695] Use BoundedArrayList to cap list size for REGISTER channels. 2016-01-10 19:00:00 +11:00
Joseph Hirschfeld
19f2e7b13e DNS IPs should only be cached for 1 minute. 2015-11-12 12:58:18 +11:00
xxyy
ba448b5670 Add configurable proxy command logging.
This commit adds a config switch that allows users to turn off
 the logging of proxy commands. It is set to off by default to
 prevent unwanted log spam and keep current behaviour.
Log proxy commands

This commit changes the PluginManager to print a message to
console and the log when a proxy command is executed.
This may assist with debugging and miscellaneous
investigations.
2015-10-26 20:59:53 +11:00
md_5
013320fd9e #1852: Fix packet compression when BungeeCord and the server are set to different compression levels. 2015-09-16 19:44:55 +10:00
Thinkofdeath
c626254825 Only enable compression for 1.8 clients 2015-09-13 08:59:42 +01:00
md_5
4e94c278da [#1567] Let BungeeCord dictate the network compression threshold. 2015-09-13 09:29:39 +10:00
jfr
06ad0f9310 Reorder PlayerJoinEvent / UpstreamBridge initialization.
Placing the PlayerJoinEvent in front of the Upstream Bridge handling prevents us from actually accessing the target server in PostJoinEvent handlers.
2015-09-07 18:26:41 +10:00
md_5
7ec1a1aa4e Fix / clarify behaviour of matchPlayer. 2015-09-05 13:42:33 +10:00
kamcio96
81d1c46a0d Support uuid in config.yml 2015-07-13 19:46:15 +10:00
Daniel Naylor
f3c14cf064 Fix telling newer 1.7 Forge clients that they are outdated. Fixes #1476
* Only check the version of FML if we are running Minecraft 1.7.10 - 1.8 clients are always valid.
* If the version of FML that is reported is 7.10.99.99 - report the Forge version instead.
2015-07-10 12:33:22 +10:00
md_5
cc3a8c067e Check channel active before adding handlers. #1489 2015-06-06 18:41:54 +10:00
Nathan Poirier
8622cf3af4 Fix BadPacketException handling It is catched by DecoderException and was not processed correctly by HandlerBoss So the console was spammed when that exception is thrown 2015-05-18 20:18:19 +10:00
Thinkofdeath
93959cab4b Only force remove the player from 1.8 client's tab list 2015-05-10 22:51:14 +01:00
Thinkofdeath
585ab4f453 Readd the delay removed in f9773a69c3 2015-05-08 20:41:21 +01:00
Thinkofdeath
76052b92d3 Don't send a Kick during the STATUS protocol as it doesn't support it 2015-05-08 20:32:12 +01:00
Thinkofdeath
f9773a69c3 Don't send a kick to the server on disconnect
This was dropped from the protocol in 1.6 and was left in bungee by
mistake
2015-05-08 19:39:22 +01:00
Tux
88e71ead05 Add reset() and retain() methods to ComponentBuilder.
This method is simple: it resets the current part to default settings, keeping only the current text. It therefore acts like the old ChatColor.RESET
code. The retain method allows for more control over what is reset.

Add a test to verify proper functioning of reset()/retain().
2015-05-06 09:57:48 +01:00
md_5
d1e1ce4cdb Add option to disable native code. 2015-05-03 10:35:48 +10:00
md_5
fa828eba31 Allow using properties to change leak detection level. 2015-04-13 09:51:31 +10:00
Thinkofdeath
a48c458306 Don't send bungeecord plugin messages to the client 2015-04-08 18:22:16 +01:00
Thinkofdeath
f2d17cb216 Follow vanilla and kick the joining user on connect if the name is already taken (Fixes #1383) 2015-02-28 13:07:13 +00:00
md_5
f2673c5876 Kick only in online mode: #1382 2015-02-28 13:00:04 +11:00
Thinkofdeath
e1951c5d66 Fix spectator mode with ip-forwarding enabled 2015-02-25 22:31:05 +00:00
Thinkofdeath
988490ba87 1.8 isn't a snapshot anymore 2015-02-25 22:27:50 +00:00
md_5
61cee2d27c Fix formatting in a bunch of files. 2015-02-14 18:36:58 +11:00
md_5
2055c98ebe Add reason for stopping and extra arguments. 2015-02-14 18:33:49 +11:00
Joshua Rodriguez
415d5860e4 Allow setting a connections uuid when in offline mode 2015-02-14 18:33:28 +11:00
md_5
3776feb559 Don't allow duplicate UUIDs on the proxy. 2015-02-14 18:26:27 +11:00
md_5
7c1f232e85 Update depend versions, limit use of most Java 1.7 APIs. 2015-02-08 13:07:41 +11:00
md_5
0d569ac0d1 Refactor native code and implement our own JNI wrapper around zlib.
The previous native cipher code has been refactored so that it may be loaded and used slightly more generically, allowing more native components to be easily added as time goes on.
I have also written a new native code compression module, which wraps around zlib in the same manner that Inflater / Deflater does, however it operates directly on the memory addresses of it's input / output buffers which means that we can save one, or maybe even two copies. To support this, the VarInt decoder has been adjusted to always use a native buffer.
2015-02-07 14:06:41 +11:00
md_5
61d2765715 Only check name for server reload modification. 2015-01-24 13:34:38 +11:00
md_5
cf722de1d2 #1130: Add scheduler unit tests and make more robust. 2015-01-18 12:09:38 +11:00
Daniel Naylor
28496e0471 Add API for getting whether the user is a Forge user.
For Minecraft+Forge 1.8 we can detect whether the user is a Forge user before we get the mod list, due to the changes to the initial (not FML|HS) handshake that are now made (which is for vanilla client support). Bungee can exploit this to detect FML clients from the off, but it still does not tell us what the mod list is. Thus, creating this API method for users who simply need to know whether the user is connected via FML is no longer a duplication of the getModList api method.
2015-01-12 19:23:07 +11:00
Daniel Naylor
4809f1f80a Update IP forwarding to ignore FML and other null character delimited tokens (for now)
For Forge 1.8, a new \0FML\0 token is included in the handshake packet host field. Whilst from a Forge <-> Bungee standpoint, this is good in the long run (we can detect Forge/FML clients right from the off, allowing us to expose a reliable API for detecting modded 1.8+ clients), it plays havoc with IP forwarding on Spigot servers, as they expect a very specific format.

Until we can look at improving this situation (probably by creating an updated IP forwarding protocol on the server side), this removes the FML marker from the handshake whenever IP forwarding is on. If you have a FML 1.8 network, IP forwarding MUST be off.

With thanks to @geNAZt for finding the issue.
2015-01-12 19:23:07 +11:00
xxyy
5091515f0b Add TabCompleteResponseEvent 2015-01-12 11:53:28 +11:00
mrapple
54c9ade1a6 Move mojang translations to chat module, fixes SpigotMC/BungeeCord#1301 2014-12-23 19:23:24 +11:00
md_5
1711223b02 Use string lists in preference to string arrays. 2014-12-22 19:59:14 +11:00
Tux
972b4c1fe5 Further fix task clean up issues by moving the BungeeScheduler's cancel(ScheduledTask) method to just call the cancel() method on the task. The cancel call was moved to BungeeTask's cancel method.
This patch makes the patch transparent to existing callers using cancel(ScheduledTask) from the scheduler. It also simplifies some logic in BungeeTask itself.
2014-12-14 17:18:49 +11:00
Tux
36c4af35de Fix issues cleaning up after repeating tasks.
A mass of NullPointerExceptions would be outputted when tasks were stopped. This is resolved by checking if we are still running (indicating a possible scheduler cancel) before telling the scheduler to pull the plug.

Ideally, the entire BungeeCord scheduler should be rewritten. It has quite a few issues which could be avoided with a new system.
2014-12-14 17:18:49 +11:00
md_5
02d3660f32 Fix fancy terminal on Windows.
This is a workaround for quite possibly the weirdest bug I have ever encountered in my life! When jansi attempts to extract its natives, by default it tries to extract a specific version, using the loading class's implementation version. Normally this works completely fine, however when on Windows certain characters such as - and : can trigger special behaviour. Furthermore this behaviour only occurs in specific combinations due to the parsing done by jansi. For example test-test works fine, but test-test-test does not! In order to avoid this all together but still keep our versions the same as they were, we set the override property to the essentially garbage version BungeeCord. This version is only used when extracting the libraries to their temp folder.
2014-12-14 13:07:13 +11:00