13
0
geforkt von Mirrors/Velocity
Datei suchen
Gabik21 2217e8a5c9
Fix 1.7 tablist behaving weird with colored names
The 1.7 tablist packet only contains three types of information:

 - Name of the tablist entry (limited to 16 characters including colors)
 - Ping of the entry
 - If this entry needs to be added or removed (client accepts duplicates
 as 'ping update')

The previous logic was trying to preserve parity with
GameProfile#getName returning a stripped down name to have a 'real'
username.
That is fundamentally broken, because entries with duplicate content,
but different colors are very common, especially with custom tablists.

For packets coming from a native 1.7 server we just won't define the
displayname anymore, as there is no such thing as a 'displayname',
because tablist entries are not bound to any player.

Using the Velocity Tablist API to modify existing entries will work, though
the backend server will completely loose control over the entry. Custom
entries added over the Velocity Tablist API will work, but are cut off
by the 16 character limitation.

This commit only fixes the bug, where entries are incorrectly handled
with their stripped name, a lot of the things explained above were
already implemented correctly.
2020-04-07 12:17:02 +02:00
api Deal with potentially nullable player sample entries 2020-02-13 13:32:47 -05:00
config/checkstyle Reformat with Google code style and enforce Checkstyle. 2018-10-27 23:45:36 -04:00
gradle An Easter basket bearing gifts! (#191) 2019-04-24 14:36:49 -04:00
native Introduce velocity.natives-tmpdir property for properly handling noexec /tmp 2019-11-29 14:27:27 -05:00
proxy Fix 1.7 tablist behaving weird with colored names 2020-04-07 12:17:02 +02:00
.gitignore Fix typo in gitignore 2019-09-29 22:07:49 +02:00
.travis.yml Allow building on Java 11 (and set Travis to build on OpenJDK 11) 2019-10-04 17:09:41 -04:00
build.gradle update text to 3.0.3 2020-03-29 19:26:10 -07:00
CONTRIBUTING.md Update CONTRIBUTING.md since we now enforce Checkstyle. 2018-12-30 03:31:32 -05:00
gradlew Initial commit. Very broken and only does Server List Ping! 2018-07-24 14:08:55 -04:00
gradlew.bat Initial commit. Very broken and only does Server List Ping! 2018-07-24 14:08:55 -04:00
Jenkinsfile Disallow all concurrent builds. 2018-12-07 17:25:04 -05:00
LICENSE MIT license 2018-07-24 14:14:52 -04:00
README.md Remove inaccurate "Status" section 2019-08-17 20:12:09 -04:00
settings.gradle An Easter basket bearing gifts! (#191) 2019-04-24 14:36:49 -04:00

Velocity

Build Status Join our Discord

A Minecraft server proxy with unparalleled server support, scalability, and flexibility.

Velocity is licensed under the MIT license for ultimate permissiveness and expanding the pool of potential contributors and users.

Goals

  • A codebase that is easy to dive into and consistently follows best practices for Java projects as much as reasonably possible.
  • High performance: handle thousands of players on one proxy.
  • A new, refreshing API built from the ground up to be flexible and powerful whilst avoiding design mistakes and suboptimal designs from other proxies.
  • First-class support for Paper, Sponge, and Forge. (Other implementations may work, but we make every endeavor to support these server implementations specifically.)

Building

Velocity is built with Gradle. We recommend using the wrapper script (./gradlew) as our CI builds using it.

It is sufficient to run ./gradlew build to run the full build cycle.

Running

Once you've built Velocity, you can copy and run the -all JAR from proxy/build/libs. Velocity will generate a default configuration file and you can configure it from there.

Alternatively, you can get the proxy JAR from the downloads page.