Commit Graph

1289 Commits

Author SHA1 Message Date
md_5
1dee049007 Don't send/construct redundant kick messages 2020-01-29 11:05:38 +11:00
md_5
e9ba95b9dc Don't log full CorruptedFrameException 2020-01-29 10:48:09 +11:00
md_5
d3bd785289 #2762: Work correctly with disabled timeout 2020-01-28 20:37:04 +11:00
md_5
3ce4132c58 Switch keepalive queue to ArrayDeque
See eeb374798b
2020-01-28 20:37:04 +11:00
Mystiflow
cd7a3ab2b2 #2758: Improve server list ping response where remote ping failed 2020-01-25 11:16:02 +11:00
Mystiflow
0a4b9b4984 #2752: Configurable connect and ping timeouts 2020-01-25 11:12:40 +11:00
md_5
70370faf5d Add checkstyle indentation checks 2020-01-24 14:07:42 +11:00
md_5
24a53a671c Show socketAddress in BungeeServerInfo.toString 2020-01-24 14:07:14 +11:00
md_5
503b4827d9 Fix bad formatting in EntityMap 2020-01-24 13:18:09 +11:00
polo1k
eeb374798b #2710: Store queue of pending keepalives
This allows the server to send them at a rate greater than the client reply time.
2020-01-24 13:13:01 +11:00
Mystiflow
636c020772 #2753: Add configurable remote ping caching 2020-01-24 10:48:50 +11:00
md_5
129884f44d Minecraft 1.15.2 support 2020-01-22 08:00:00 +11:00
md_5
b70cb01413 Add beta support for binding bungee to unix socket addresses 2020-01-16 10:36:13 +11:00
md_5
85ea4c165b Remove redundant scheduled close, already channel closed by future. 2020-01-14 19:06:14 +11:00
md_5
d20e622b7b Apply checkstyle to javadoc 2020-01-05 11:25:56 +11:00
md_5
2f547f73f7 Fix some javadoc warnings 2020-01-05 11:17:11 +11:00
Janmm14
5f29e939b0 #2720: Send different log message for pings (vs login) 2020-01-05 11:02:05 +11:00
Mystiflow
d2ceccd646 #2725: Various improvements to chat API
* More versatile ComponentBuilder system
    - Allow creating a builder without an initial component
    - Duplicate the parts when component is created
    - Add getter for 'parts'
* Added cursor API for more fluid component modifying
* Don't legacy convert Titles on 1.11 or newer
* Simplify plain and legacy text converting code
    - Shares the addFormat method between all superclasses
    - Duplicate code in TranslatableComponent moved in separate method
2020-01-05 10:40:07 +11:00
md_5
065893b523 Update Netty to 4.1.44.Final and remove usage of some deprecated methods 2019-12-21 11:52:45 +11:00
md_5
4204fa2966 Fix fishing hooks / spectral arrows after switching servers on 1.15.x 2019-12-18 12:39:49 +11:00
md_5
1f24591a0d Minecraft 1.15.1 support 2019-12-18 08:00:00 +11:00
md_5
4cccf53775 Minecraft 1.15 support 2019-12-11 08:00:00 +11:00
md_5
70038c9144 Revert "#2714: Remove unnecessary throws in ServerConnector"
This reverts commit 74a6aa32a2.

Completely breaks Bungee
2019-12-05 12:28:21 +11:00
Janmm14
39ef20b298 #2716: Don't attempt to send kick packet during handshake phase 2019-12-05 12:05:35 +11:00
Janmm14
74a6aa32a2 #2714: Remove unnecessary throws in ServerConnector
As ServerConnector's handle(PacketWrapper) method only checks whether packet.packet is null, its not necessary to cancel its execution by throwing CancelSendSignal.
2019-12-05 10:24:20 +11:00
md_5
c7984070a2 Misc dependency update 2019-12-01 17:32:32 +11:00
MrIvanPlays
9e76966e0f #2608,#2684: Add some missing translations to module commands 2019-08-21 20:09:09 +10:00
md_5
450c33db64 Formatting fixes 2019-08-21 20:04:16 +10:00
md_5
34febec65f Increase outdated build delay to 8 weeks 2019-08-10 10:51:26 +10:00
md_5
5c6bc183fd Minecraft 1.14.4 support 2019-07-20 09:00:00 +10:00
md_5
fe2a39e4f1 Minecraft 1.14.3-pre4 support 2019-06-21 20:00:00 +10:00
md_5
8fda060611 Minecraft 1.14.2 support 2019-05-28 06:30:00 +10:00
md_5
3ec223ec94 Minecraft 1.14.1 support 2019-05-14 10:00:00 +10:00
md_5
086eb847ec #2631: Fix incorrect types of fishing bobber and spectral arrow 2019-05-01 18:00:08 +10:00
md_5
7d68335c1d Fix switching to servers with larger view distance 2019-04-28 10:52:49 +10:00
killme
9bce83704a #2622: Let ThrottleTest work independently of real time 2019-04-25 20:57:03 +10:00
Zedadias Wick
4ca942b169 #2626: Correct entity metadata type values for 1.14-pre5.
Spawn Object packet now uses Entity IDs, not Object IDs, and is sent as a VarInt rather than Byte.
2019-04-24 09:33:17 +10:00
md_5
af10f82d14 Apply and enforce import ordering rules 2019-04-23 15:23:40 +10:00
md_5
3f01748d75 Minecraft 1.14-pre5 support 2019-04-23 12:00:00 +10:00
md_5
52a125dded Add --help flag 2019-03-17 12:43:12 +11:00
md_5
6d6fbb5efa Fix two minor formatting issues 2019-02-17 10:13:24 +11:00
md_5
0d6f3ee374 Make 1.13 command injection normal functionality 2019-02-17 10:10:41 +11:00
md_5
28c82238d0 Fix typo in previous commit 2019-02-03 17:58:46 +11:00
md_5
1a06ebeee0 #2599: Remove connection throttle if proxy protocol in use 2019-02-03 08:26:03 +11:00
md_5
29c093f83f #2586: TabCompleteResponseEvent for 1.13 2019-01-30 11:33:04 +11:00
md_5
9a2acc826e #2569: Respect disabled_commands setting for 1.13 tab completion 2019-01-03 16:39:38 +11:00
md_5
4fa1d82b81 #2572: Add additional APIs regarding server restriction 2019-01-03 16:35:32 +11:00
md_5
5ef5dd2c09 #2570: Implement more aggressive connection throttling.
Once an IP has connected connection_throttle_limit times within connection_throttle milliseconds, it must wait connection_throttle milliseconds before attempting to connect again.
2018-12-27 10:25:29 +11:00
md_5
a9a4c900e4 #2524: Allow empty groups/permissions 2018-12-21 10:35:57 +11:00
md_5
d689ba5904 #2535: Reduce verbosity of unhandled packet exception messages 2018-12-21 10:15:36 +11:00
md_5
a47b803385 #2568: Check permissions for inject_commands 2018-12-21 09:50:54 +11:00
md_5
02a65e34cf #2479: Allow injection of BungeeCord commands to 1.13 with inject_commands option 2018-12-20 10:41:18 +11:00
md_5
e5b96b2f17 Move launcher out of bootstrap and into proxy 2018-12-18 11:19:30 +11:00
md_5
865a346903 #2546: reducedDebugInfo state not updating when changing servers 2018-12-18 11:13:42 +11:00
md_5
afef0ec1fe #2559: Unresolved ServerIP causes disconnect 2018-12-08 09:56:34 +11:00
NayXegp
6c44ccd597 #2527: Minor cosmetic cleanups to imports etc
Please see https://github.com/SpigotMC/BungeeCord/pull/2527
2018-11-02 18:06:56 +11:00
md_5
ed6b03d24a Always use root locale for case conversions 2018-10-28 12:10:34 +11:00
md_5
1c5bff7ed7 Minecraft 1.13.2 support 2018-10-23 06:00:00 +11:00
NayXegp
41f8eb68c9 #2529: Use single legacy kicker instance for all channels 2018-09-26 11:16:46 +10:00
NayXegp
9886021428 #2521: Using replace instead of replaceAll 2018-09-05 07:51:23 +10:00
NayXegp
ba0739798a #2494: Add an option to disable pings in log 2018-08-29 07:53:52 +10:00
JoJoDeveloping
16b3490576 #2520: Fix ConcurrentModificationException when tasks are cancelled during shutdown 2018-08-29 07:47:12 +10:00
md_5
1bb826109c Minecraft 1.13.1 support 2018-08-23 20:52:25 +10:00
Mystiflow
715ec07a28 #2447: Add API for fluent server connect requests
API allows for more control over callback to see why the callback was performed whilst maintaining backwards compatibility
2018-07-30 12:37:34 +10:00
md_5
d2cf50f9ee #2482: Fix error reading custom names 2018-07-23 12:44:42 +10:00
md_5
a710698277 #2482: Fix error in reading slots 2018-07-23 12:07:30 +10:00
md_5
176b75b97e #2477: Fix entity rewrites not applying 2018-07-23 11:12:20 +10:00
md_5
c9f22868b3 Revert "#2447: Add API for fluent server connect requests"
This reverts commit 7ce9ae50e7.
2018-07-22 20:13:30 +10:00
maol3
95ed7a5775 #2474: Allow ALL in the Message channel 2018-07-22 18:10:51 +10:00
Mystiflow
7ce9ae50e7 #2447: Add API for fluent server connect requests
API allows for more control over callback to see why the callback was performed whilst maintaining backwards compatibility
2018-07-22 18:04:43 +10:00
md_5
671c4d1341 Minecraft 1.13 support 2018-07-22 12:00:00 +10:00
Lucas Dallabona
ab810744ec #2458: Fix NPE when using null in tab list methods 2018-07-15 11:32:33 +10:00
md_5
b1cc72e212 Minecraft 1.13-pre7 support 2018-07-15 10:00:00 +10:00
md_5
fa542c70df Fix incorrect whitespacing 2018-07-09 12:52:53 +10:00
Minecrell
7410ce9077 #2449: Avoid stopping if already in progress
Currently it is possible to stop the proxy multiple times, causing
the shutdown routines to be called twice. This doesn't make any
sense and may even cause problems with some plugins.

Cancel early if stopping is already in progress to avoid this.
2018-07-09 09:57:21 +10:00
Nathan Poirier
7af538793c #2450: Instantiate PluginManager (and EventBus) after the BungeeCord Logger 2018-07-08 09:59:30 +10:00
md_5
76dc32ee32 Enable IPv6 networking stack 2018-06-20 15:43:57 +10:00
md_5
68103e9a8d Netty 4.1.25.Final; MySQL 5.1.46. 2018-06-03 10:32:47 +10:00
md_5
88bacf12a3 #2420: Cap forge packet queue size 2018-05-12 21:14:44 +10:00
md_5
e93323ddbc #2420: Disable forge support by default 2018-05-12 08:24:06 +10:00
Mystiflow
7241eb37c9 #2376 Add ServerConnectEvent Reason API 2018-04-01 09:34:27 +10:00
md_5
e690a7b389 #1959: Leave ping exception logging to plugins 2018-03-31 10:55:15 +11:00
games647
272258cf5a #2372: Add SettingsChangedEvent for client-side settings 2018-03-15 20:47:08 +11:00
Mystiflow
7ee0b6dccb #2378: Show supported servers in incorrect client kick messages
This makes the message match vanilla Minecraft servers
2018-03-07 13:29:43 +11:00
Joe
74e077e0fb #2362: Fixed tablist rewrite getting wrong field
Also only sets the ping in right circumstances.
2018-02-26 07:00:37 +11:00
Senmori
a3b44aa612 #2342: Add score and selector components to chat API 2018-02-19 11:48:22 +11:00
md_5
2d7c74eae5 Move chat component test to right place 2018-01-28 17:59:32 +11:00
md_5
9b2bb07d89 Fix some source code formatting 2018-01-28 10:23:52 +11:00
md_5
d600c9a526 #2323: Attempt to rewrite fishing hook data 2018-01-08 12:51:26 +11:00
md_5
050d935891 Update Netty / MySQL 2018-01-07 22:49:33 +11:00
md_5
3508bf6c85 Add console command completion 2018-01-07 22:46:52 +11:00
md_5
eb288a80c3 Remove obsolete tab lists 2017-12-01 12:25:59 +11:00
Zhang
ed23e3b3d1 #2296: Fix tab list NPE w/ some offline mode clients 2017-12-01 12:25:39 +11:00
md_5
1dbfcfb0b5 #2297: Use server field on DownstreamBridge 2017-12-01 12:23:07 +11:00
md_5
4c84f37fd2 mysql-connector-java 5.1.44 2017-11-18 17:14:46 +11:00
md_5
2e826a15e7 Make greload reload custom messages.properties 2017-11-10 11:21:58 +11:00
md_5
0fc5694b6a Fix some compiler warnings 2017-10-28 17:08:05 +11:00
md_5
9a7bf0a361 #2254: Explicitly note config issues are not bugs 2017-10-26 21:18:16 +11:00
md_5
8d49424226 #2261: Don't send any keep alive to server if invalid 2017-09-23 17:14:03 +10:00
md_5
69bbc3a71e Invalidate ping when spoof sent 2017-09-23 15:05:50 +10:00
md_5
af8d1af635 Initialize ping to -1 2017-09-23 13:56:23 +10:00
md_5
23554239d0 #2259: Have proxy handle keepalives 2017-09-23 13:18:43 +10:00
md_5
61cb2df9f3 #2258: Fix missed packet ID 2017-09-19 08:04:44 +10:00
md_5
0eaabdf5ca Update to Minecraft 1.12.2 2017-09-18 20:00:00 +10:00
Mystiflow
3db9fb1b69 #2255: Fix ComponentBuilder clone constructor
* Fix ComponentBuilder clone constructor #2255
* Fix appending text to a ComponentBuilder if current is not a TextComponent
2017-09-16 16:06:51 +10:00
Virizion
ef326dba19 Send the correct username when connecting to a server (#2242) 2017-09-05 19:33:10 +10:00
md_5
d7010d629d Fix mismatched system properties 2017-09-04 18:15:23 +10:00
md_5
bd5a7e5b26 #2228: Implement basic backpressure on client 2017-08-18 18:27:25 +10:00
Mystiflow
fd675022c0 Allow appending BaseComponent arrays in ComponentBuilder 2017-08-13 12:40:44 +10:00
Mystiflow
a1f9c2e7d4 Disable plugins before shutting down EventLoops (#2214)
Because disabling plugins also cancels any pending tasks, there will be no task accessing the eventLoops.

Reimplementation of #1578, fixes #1403
2017-08-09 22:13:25 +10:00
md_5
db266a8484 Use newer writeAndFlush method 2017-08-09 22:05:06 +10:00
md_5
828e45651e Client defaults to right hand 2017-08-09 16:51:45 +10:00
Foorack
dbf20957a9 Expand API to get all player sent settings 2017-08-09 16:38:03 +10:00
md_5
da88d5c502 Formatting & dependency updates 2017-08-06 11:19:08 +10:00
Mystiflow
2ae8ba0afc Various scoreboard improvements. (#2204)
- Correctly remove objectives that use heart type.
- Also sends remove score packets on server switch.
- Players are only removed if Team packet mode is 4.
2017-08-04 16:10:10 +10:00
md_5
017f3a2424 Update to Minecraft 1.12.1 2017-08-03 23:00:00 +10:00
md_5
daac8d85e2 Add support for PROXY protocol 2017-07-01 09:38:27 +10:00
md_5
a5ffeae757 Replace OpenSSL native cipher with static mbed TLS for maximum compat 2017-06-29 08:52:13 +10:00
md_5
6958943123 Use property to skip deploy to eliminate warnings, update lombok 2017-06-21 19:45:03 +10:00
md_5
eab710b0aa #2154: Always send action bar differently to account for colours 2017-06-08 19:02:37 +10:00
md_5
ff891c000e Update to Minecraft 1.12 2017-06-08 18:00:00 +10:00
BlackHole
4db53525bf Correct some packet IDs in 1.12 EntityMap 2017-05-23 06:35:01 +10:00
md_5
09ee2b1644 Update to Minecraft 1.12-pre5
Obsoletes 1.12-pre2
2017-05-19 21:00:04 +10:00
md_5
16d261553c Minecraft 1.12-pre2 Support 2017-05-14 12:00:00 +10:00
BlackHole
5bc189fbb7 Use player name casing from LoginResult 2017-05-09 12:49:48 +10:00
md_5
806a6dfaca Add Mojang prevent_proxy_connections option. 2017-04-28 21:48:41 +10:00
Molek
bfab8a1d9c Index UUIDs to speed up player queries (#2121) 2017-04-26 16:39:49 +10:00
md_5
6908e700e6 Jenkins modules are now https. 2017-02-12 10:59:10 +11:00
md_5
01f44483df #2055: Mark inactive channels as closed 2017-02-07 08:58:37 +11:00
md_5
0b8ab8eccc Update Netty; jline; MySQL 2017-01-30 18:27:13 +11:00
MisterFrans
db1516ba00 Add "Not authenticated with Minecraft.net" message in the messages.properties (#2044) 2017-01-18 08:36:00 +11:00
md_5
81de9d5a63 #2041: More robust closing code 2017-01-16 10:11:17 +11:00
md_5
c1bdbef9cf Give delayed close packets time to send on /end 2017-01-16 10:00:27 +11:00
md_5
6104354fa1 Implement basic entity metadata mapping to remap fireworks for boosting. 2016-12-22 22:29:00 +11:00
md_5
21411af74d Add support for Minecraft 1.11.1 2016-12-21 06:23:51 +11:00
md_5
129693f533 #2026: Try multiple priorities as fallback 2016-12-19 23:09:18 +11:00
md_5
4fa9961c15 #1958: Negative compression thresholds disable compression like Vanilla 2016-12-16 10:43:29 +11:00
Gabscap
ea6680281f Allow cancelling LoginEvents with component reasons.
Ultimately this PR was selected as it better matched the existing code in terms of using lombok and not adding incomplete interfacing.
If for some reason a common interface is required, this can be implemented later.

Thanks to yawkat also for the PR in #1336 -- it was difficult for the merger to compromise between this and #1957
2016-12-01 10:12:54 +11:00
md_5
2171ca9f51 Fix confusing use of static subclass methods 2016-12-01 09:46:34 +11:00
md_5
4d004d5fed Throw exception when ServerConnectEvent is handled badly 2016-11-25 10:42:30 +11:00
Mystiflow
f3e5f34aeb Allow chat messages longer than 100 characters on > 1.11 clients 2016-11-15 09:37:20 +11:00
md_5
9ecdde2292 Add support for Minecraft 1.11
Improve QueryHandler session handling as suggested by IchBinJoe
2016-11-15 02:40:46 +11:00
md_5
987f2d0eb2 Remove unused connect_kick_outdated_forge message 2016-11-06 11:47:27 +11:00
Mystiflow
908b7f7374 Use server priority for downstream kicks too (#1978) 2016-11-06 11:25:46 +11:00
Mystiflow
18f57f24fa Fix issue pointed out by Supereg; store dimension on first join too (#1979)
* Only double switch if the dimension is the same.

According to the protocol, a double respawn packet is only needed to be
sent if from the same dimension, so by storing the last known dimension,
we are able to compare and avoid the double packet.

This also maintains the same behaviour for Spigot
ad2f806097

* Store current dimension on first disconnect too
2016-10-30 08:28:11 +11:00
Mystiflow
812141f400 Only double switch if the dimension is the same. (#1977)
According to the protocol, a double respawn packet is only needed to be
sent if from the same dimension, so by storing the last known dimension,
we are able to compare and avoid the double packet.

This also maintains the same behaviour for Spigot
ad2f806097
2016-10-29 17:59:38 +11:00
md_5
75b7fdac58 Fix stray imports in proxy 2016-10-19 21:15:00 +11:00
md_5
5c551fd899 Improve Quality of Channel Close Code
* Don't double disconnect due to client exceptions
* Add generic delayed close method
* Properly format imports in changed files
2016-10-19 21:08:38 +11:00
md_5
0581e49d49 Update Netty 2016-08-30 20:22:02 +10:00
md_5
5c809c2499 #1945: Relay MC|Brand messages 2016-08-26 16:11:38 +10:00
md_5
356ca08337 #1544: Reduce verbosity of common/harmless exception during initial connection 2016-08-21 09:07:33 +10:00
md_5
b86a33d058 #1941: Fix modded client+server in some cases 2016-08-21 09:02:37 +10:00
md_5
504d3c0529 #1939: Fix server brand; prevent bungee-bungee connections. 2016-08-20 11:43:48 +10:00
md_5
e7be3c6b1e Allow PluginMessages to be handled when no server connected 2016-08-11 23:02:29 +10:00
md_5
3a0b0aa116 #1930: Don't handle upstream packets if no server connected 2016-08-03 17:03:06 +10:00
md_5
c43f25e23b Fix MC|Brand array having trailing zeroes. 2016-07-15 23:45:38 +10:00
md_5
eca99576a0 Move net.md_5.bungee.log to its own module.
API subject to change and should not be used externally.
2016-07-11 11:12:35 +10:00
BlackHole
1250088f98 Correctly show outdated_client and outdated_server messages
If the client protocol version is not supported, show outdated_server message only if client version is higher than highest supported protocol version, outdated_client message else.
2016-06-29 09:15:17 +10:00
md_5
507a98f28f #1859: Rewrite second leash int 2016-06-29 09:14:03 +10:00
md_5
a8c529eca5 #1859: Entity attach is an int 2016-06-28 15:28:28 +10:00
misterT2525
c5ac5a0d17 #1859: Fix EntityMap for leads. 2016-06-27 14:20:02 +10:00
md_5
e4cf010bda Update to Minecraft 1.10 2016-06-09 11:44:06 +10:00
md_5
2df29701ed #1866: Correct throttle 2016-05-15 16:01:58 +10:00
PunKeel
d9a8311b8e Use expireAfterWrite to perform throttle 2016-05-15 14:54:18 +10:00
Zartec
d14b96d55e Added separate exception for packet overflows to limit log output.
Attacking a server with a hacked client causes the log to print a huge amount of stacktraces. This will limit the log output to the error message.
2016-05-15 14:52:41 +10:00
md_5
41621193ec #1862: Support 1.7 pings 2016-05-15 14:52:01 +10:00
Thinkofname
a12ac37cc3 Support Minecraft 1.9.4 and tidy up packet handling 2016-05-10 21:51:39 +10:00
BuildTools
4c7c64c9b8 #1848: Added missing call to UserConnection.connect callback for "already_connected" and "already_connecting" 2016-05-05 22:32:24 +10:00
md_5
80b3135a93 Fix formatting 2016-04-24 22:31:04 +10:00
md_5
1cd3e42182 #1841: Fix disabled throttle and improve code. 2016-04-24 22:18:23 +10:00
Janmm14
2e8ed1cfba Reimplement join throttle. 2016-04-24 11:56:24 +10:00
md_5
b9a98c88ba Java 7 support 2016-04-24 11:39:23 +10:00
md_5
0b554be10a Strip / add velocity to SpawnEntity packets that require it when rewritten 2016-04-24 09:39:22 +10:00
Jofkos
f070e2d064 Added ansi "erase line" 2016-04-08 07:42:11 +10:00
Thinkofname
b6b015fe1f Ensure we get a 1024 bit RSA key (Fixes #1814) 2016-03-31 16:12:30 +01:00
Thinkofname
d1a1e87ab5 Support Minecraft 1.9.2 2016-03-30 16:57:54 +01:00
md_5
6b4e285186 1.9.1 support 2016-03-30 15:59:51 +01:00
md_5
f265f7c594 #901: Better custom messages support 2016-03-24 14:15:16 +11:00
md_5
859d176c93 Update README.md and fix minor formatting error. 2016-03-09 18:16:22 +11:00
Tux
52d66897e4 Raise an error if a server in the priority list is undefined 2016-03-06 16:10:31 +11:00
md_5
8b327708ee #1335: Remove 16 char displayname limit 2016-03-05 18:56:32 +11:00
Zartec
903ada06f0 Sould break the priority lookup after server found
If the list would look like this

- test1 -> 1.8 -> ServerKickEvent cancelled -> reason set to "outdated"
- test2 -> 1.8
- test3 -> 1.9

and a player joins with version 1.8 he would never be connected to test2 because the server test2 is not equal to test1 and the server test3 is not equal to test1.
So test3 is the last in the while loop and would be used also if another server with higher priority matches the requirements.
2016-03-04 07:10:59 +11:00
Youri Kersten
a7664a5559 Remove any tracked bossbars when a client switches servers. 2016-03-03 18:57:48 +11:00
md_5
46e7f2dfc9 Only allow ServerUnique tab lists as per 1.8 due to incomplete functionality. 2016-03-02 20:20:55 +11:00
Youri Kersten
b6671cd00c Send action bar messages using BaseComponent for 1.9 clients
Action Bar packets in 1.9 now correctly support the JSON format, however sending them the 1.8 way will kick the client. This keeps the compatibility with 1.8 clients with the version check whilst correctly sending the packet to 1.9 clients.
2016-03-01 19:32:19 +11:00
Thinkofdeath
7926230682 #1765: Fix ServerInfo.ping to handle chat components. 2016-03-01 12:38:19 +11:00
md_5
dd66e3068a Fix priority selection not playing nicely with reconnect handlers. 2016-03-01 12:34:50 +11:00
md_5
04a6eff14c Don't handle exceptions for obsolete server connectors. 2016-03-01 11:53:59 +11:00
md_5
05de455a9c Update to Minecraft 1.9 2016-03-01 09:31:12 +11:00
Thinkofdeath
12a7b7afc3 Add support for 15w33c and multiple fallback servers 2016-03-01 09:31:12 +11:00
Thinkofdeath
dfaa687f71 Remove 1.7.x Support 2016-03-01 09:31:12 +11:00
md_5
219819b738 Replace default/fallback servers with a server priority list. 2016-03-01 09:31:12 +11:00
md_5
0646a3090a Fix scoreboards / tab lists getting out of sync due to race conditions / overlap. 2016-02-19 09:07:12 +11:00
md_5
afc02082e6 Make it clear when users connected Bungee to itself. 2016-02-17 10:34:04 +11:00
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
md_5
37e37e9a55 Fix timestamp format.... 2014-12-13 11:53:03 +11:00
md_5
45bf7a9ab9 Move ansi console system install right into the bootstrap. 2014-12-13 11:13:40 +11:00
Thinkofdeath
ef364d9053 Actually put the tasks in the tasksByPlugin Multimap (Fixes #1278) 2014-11-26 16:42:45 +00:00
Minecrell
f19cc7fe4f Add chat position API. 2014-11-22 09:17:37 +11:00
Minecrell
772c8d7f2b Improve legacy client ping support. 2014-11-15 10:18:40 +00:00
Thinkofdeath
830f18a357 Manually remove the player from everyone's tab list on disconnect
This is needed because when the player disconnects from bungee they are removed from the connection map, this causes the tab-list rewrite to fail due the player no longer being on bungee and therefor it ends up not removing the player (online vs offline uuid). This would only happen on servers without ip-forwarding enabled
2014-11-11 10:33:22 +00:00