3
0
Mirror von https://github.com/PaperMC/Velocity.git synchronisiert 2024-11-16 21:10:30 +01:00

Convert into a multi-module project.

For now, the API module only contains a few assorted utilities. More
will be added later.
Dieser Commit ist enthalten in:
Andrew Steinborn 2018-07-31 16:12:41 -04:00
Ursprung f9fd58eea5
Commit bbf861d3bc
97 geänderte Dateien mit 119 neuen und 118 gelöschten Zeilen

4
Jenkinsfile vendored
Datei anzeigen

@ -1,7 +1,7 @@
pipeline {
agent {
docker {
image 'gradle:jdk8-slim'
image 'openjdk:8-jdk-slim'
args '-v gradle-cache:/home/gradle/.gradle:rw'
}
@ -10,7 +10,7 @@ pipeline {
stage('Build') {
steps {
sh './gradlew shadowJar'
archiveArtifacts 'build/libs/*.jar'
archiveArtifacts 'proxy/build/libs/*-all.jar'
}
}
stage('Test') {

29
api/build.gradle Normale Datei
Datei anzeigen

@ -0,0 +1,29 @@
plugins {
id 'java'
id 'com.github.johnrengelman.shadow' version '2.0.4'
}
dependencies {
compile 'com.google.code.gson:gson:2.8.5'
compile 'com.google.guava:guava:25.1-jre'
compile 'net.kyori:text:1.12-1.6.0-SNAPSHOT'
compile 'com.moandjiezana.toml:toml4j:0.7.2'
testCompile "org.junit.jupiter:junit-jupiter-api:${junitVersion}"
testCompile "org.junit.jupiter:junit-jupiter-engine:${junitVersion}"
}
task javadocJar(type: Jar) {
classifier 'javadoc'
from javadoc
}
task sourcesJar(type: Jar) {
classifier 'sources'
from sourceSets.main.allSource
}
artifacts {
archives javadocJar
archives shadowJar
archives sourcesJar
}

Datei anzeigen

@ -0,0 +1,5 @@
package com.velocitypowered.api;
/**
* Welcome to the Velocity API documentation.
*/

Datei anzeigen

@ -1,14 +1,22 @@
package com.velocitypowered.proxy.data;
package com.velocitypowered.api.servers;
import com.google.common.base.Preconditions;
import java.net.InetSocketAddress;
import java.util.Objects;
/**
* ServerInfo represents a server that a player can connect to. This object is immutable and safe for concurrent access.
*/
public final class ServerInfo {
private final String name;
private final InetSocketAddress address;
/**
* Creates a new ServerInfo object.
* @param name the name for the server
* @param address the address of the server to connect to
*/
public ServerInfo(String name, InetSocketAddress address) {
this.name = Preconditions.checkNotNull(name, "name");
this.address = Preconditions.checkNotNull(address, "address");

Datei anzeigen

@ -1,12 +1,12 @@
package com.velocitypowered.proxy.util;
package com.velocitypowered.api.util;
import com.google.common.base.Preconditions;
import java.util.regex.Pattern;
/**
* Utilities for handling legacy Minecraft color codes. Generally, you should prefer JSON-based components, but for
* convenience Velocity provides these utilities.
* LegacyChatColorUtils contains utilities for handling legacy Minecraft color codes. Generally, you should prefer
* JSON-based components, but for convenience Velocity provides a limited set of tools to handle Minecraft color codes.
*/
public enum LegacyChatColorUtils {
;

Datei anzeigen

@ -1,5 +1,6 @@
package com.velocitypowered.proxy.util;
package com.velocitypowered.api.util;
import com.velocitypowered.api.util.LegacyChatColorUtils;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

Datei anzeigen

@ -1,78 +1,32 @@
plugins {
id 'java'
id 'com.github.johnrengelman.shadow' version '2.0.4'
}
group 'com.velocitypowered'
version '1.0-SNAPSHOT'
allprojects {
group 'com.velocitypowered'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
targetCompatibility = 1.8
sourceCompatibility = 1.8
targetCompatibility = 1.8
ext {
// dependency versions
junitVersion = '5.3.0-M1'
log4jVersion = '2.11.0'
nettyVersion = '4.1.28.Final'
}
repositories {
mavenLocal()
mavenCentral()
maven {
url 'https://oss.sonatype.org/content/groups/public/'
ext {
// dependency versions
junitVersion = '5.3.0-M1'
log4jVersion = '2.11.0'
nettyVersion = '4.1.28.Final'
}
}
dependencies {
compile 'com.google.code.gson:gson:2.8.5'
compile 'com.google.guava:guava:25.1-jre'
compile "io.netty:netty-codec:${nettyVersion}"
compile "io.netty:netty-codec-http:${nettyVersion}"
compile "io.netty:netty-handler:${nettyVersion}"
compile "io.netty:netty-transport-native-epoll:${nettyVersion}"
compile "io.netty:netty-transport-native-epoll:${nettyVersion}:linux-x86_64"
compile 'net.kyori:text:1.12-1.6.0-SNAPSHOT'
compile "org.apache.logging.log4j:log4j-api:${log4jVersion}"
compile "org.apache.logging.log4j:log4j-core:${log4jVersion}"
compile 'com.moandjiezana.toml:toml4j:0.7.2'
testCompile "org.junit.jupiter:junit-jupiter-api:${junitVersion}"
testCompile "org.junit.jupiter:junit-jupiter-engine:${junitVersion}"
}
compileJava {
options.compilerArgs += ['-proc:none']
}
compileTestJava {
options.compilerArgs += ['-proc:none']
}
jar {
manifest {
attributes 'Main-Class': 'com.velocitypowered.proxy.Velocity'
attributes 'Implementation-Version': project.version
repositories {
mavenLocal()
mavenCentral()
maven {
url 'https://oss.sonatype.org/content/groups/public/'
}
}
}
test {
reports {
junitXml.enabled = true
test {
reports {
junitXml.enabled = true
}
}
}
task javadocJar(type: Jar) {
classifier 'javadoc'
from javadoc
}
task sourcesJar(type: Jar) {
classifier 'sources'
from sourceSets.main.allSource
}
artifacts {
archives javadocJar
archives shadowJar
archives sourcesJar
}
}

36
proxy/build.gradle Normale Datei
Datei anzeigen

@ -0,0 +1,36 @@
plugins {
id 'java'
id 'com.github.johnrengelman.shadow' version '2.0.4'
}
compileJava {
options.compilerArgs += ['-proc:none']
}
compileTestJava {
options.compilerArgs += ['-proc:none']
}
jar {
manifest {
attributes 'Main-Class': 'com.velocitypowered.proxy.Velocity'
attributes 'Implementation-Version': project.version
}
}
dependencies {
compile project(':velocity-api')
compile "io.netty:netty-codec:${nettyVersion}"
compile "io.netty:netty-codec-http:${nettyVersion}"
compile "io.netty:netty-handler:${nettyVersion}"
compile "io.netty:netty-transport-native-epoll:${nettyVersion}"
compile "io.netty:netty-transport-native-epoll:${nettyVersion}:linux-x86_64"
compile "org.apache.logging.log4j:log4j-api:${log4jVersion}"
compile "org.apache.logging.log4j:log4j-core:${log4jVersion}"
testCompile "org.junit.jupiter:junit-jupiter-api:${junitVersion}"
testCompile "org.junit.jupiter:junit-jupiter-engine:${junitVersion}"
}
artifacts {
archives shadowJar
}

Datei anzeigen

@ -5,7 +5,7 @@ import com.google.gson.GsonBuilder;
import com.velocitypowered.network.ConnectionManager;
import com.velocitypowered.proxy.config.VelocityConfiguration;
import com.velocitypowered.proxy.connection.http.NettyHttpClient;
import com.velocitypowered.proxy.data.ServerInfo;
import com.velocitypowered.api.servers.ServerInfo;
import com.velocitypowered.proxy.util.AddressUtil;
import com.velocitypowered.proxy.util.EncryptionUtils;
import com.velocitypowered.proxy.util.ServerMap;
@ -21,7 +21,6 @@ import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.security.KeyPair;
import java.util.HashMap;
import java.util.Map;
public class VelocityServer {

Datei anzeigen

@ -3,7 +3,7 @@ package com.velocitypowered.proxy.config;
import com.google.common.collect.ImmutableMap;
import com.moandjiezana.toml.Toml;
import com.velocitypowered.proxy.util.AddressUtil;
import com.velocitypowered.proxy.util.LegacyChatColorUtils;
import com.velocitypowered.api.util.LegacyChatColorUtils;
import net.kyori.text.Component;
import net.kyori.text.serializer.ComponentSerializers;
import org.apache.logging.log4j.LogManager;

Datei anzeigen

@ -11,7 +11,7 @@ import com.velocitypowered.proxy.protocol.packets.Handshake;
import com.velocitypowered.proxy.protocol.packets.ServerLogin;
import com.velocitypowered.proxy.connection.MinecraftConnection;
import com.velocitypowered.proxy.protocol.StateRegistry;
import com.velocitypowered.proxy.data.ServerInfo;
import com.velocitypowered.api.servers.ServerInfo;
import com.velocitypowered.proxy.VelocityServer;
import com.velocitypowered.proxy.connection.client.ConnectedPlayer;
import io.netty.channel.*;

Datei anzeigen

@ -2,7 +2,7 @@ package com.velocitypowered.proxy.connection.client;
import com.velocitypowered.proxy.VelocityServer;
import com.velocitypowered.proxy.connection.backend.ServerConnection;
import com.velocitypowered.proxy.data.ServerInfo;
import com.velocitypowered.api.servers.ServerInfo;
import com.velocitypowered.proxy.data.scoreboard.Objective;
import com.velocitypowered.proxy.data.scoreboard.Score;
import com.velocitypowered.proxy.data.scoreboard.Scoreboard;

Datei anzeigen

@ -9,7 +9,7 @@ import com.velocitypowered.proxy.connection.MinecraftConnection;
import com.velocitypowered.proxy.connection.backend.ServerConnection;
import com.velocitypowered.proxy.protocol.packets.ClientSettings;
import com.velocitypowered.proxy.util.ThrowableUtils;
import com.velocitypowered.proxy.data.ServerInfo;
import com.velocitypowered.api.servers.ServerInfo;
import com.velocitypowered.proxy.protocol.packets.Disconnect;
import net.kyori.text.Component;
import net.kyori.text.TextComponent;
@ -21,7 +21,6 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.net.InetSocketAddress;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
import java.util.UUID;

Datei anzeigen

@ -10,10 +10,8 @@ import com.velocitypowered.proxy.protocol.packets.*;
import com.velocitypowered.proxy.connection.MinecraftConnection;
import com.velocitypowered.proxy.connection.MinecraftSessionHandler;
import com.velocitypowered.proxy.VelocityServer;
import com.velocitypowered.proxy.connection.backend.ServerConnection;
import com.velocitypowered.proxy.data.ServerInfo;
import com.velocitypowered.api.servers.ServerInfo;
import com.velocitypowered.proxy.util.EncryptionUtils;
import com.velocitypowered.proxy.util.UuidUtils;
import io.netty.buffer.Unpooled;
import net.kyori.text.TextComponent;
import net.kyori.text.format.TextColor;

Datei anzeigen

@ -2,7 +2,7 @@ package com.velocitypowered.proxy.util;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.velocitypowered.proxy.data.ServerInfo;
import com.velocitypowered.api.servers.ServerInfo;
import java.util.Collection;
import java.util.HashMap;

Datei anzeigen

@ -1 +1,6 @@
rootProject.name = 'velocity'
include 'api'
include 'proxy'
findProject(':api')?.name = 'velocity-api'
findProject(':proxy')?.name = 'velocity-proxy'

Datei anzeigen

@ -1,33 +0,0 @@
# What port should the proxy be bound to? By default, we'll bind to all addresses on port 25577.
bind = "0.0.0.0:25577"
# What should be the MOTD? Legacy color codes and JSON are accepted.
motd = "&3A Velocity Server"
# What should we display for the maximum number of players? (Velocity does not support a cap
# on the number of players online.)
show-max-players = 500
# Should we authenticate players with Mojang? By default, this is on.
online-mode = true
# Should we forward IP addresses and other data to backend servers?
# Available options:
# - "none": No forwarding will be done. All players will appear to be connecting from the proxy
# and will have offline-mode UUIDs.
# - "legacy": Forward player IPs and UUIDs in BungeeCord-compatible fashion. Use this if you run
# servers using Minecraft 1.12 or lower.
# - "modern": Forward player IPs and UUIDs as part of the login process using Velocity's native
# forwarding. Only applicable for Minecraft 1.13 or higher.
ip-forwarding = "modern"
[servers]
# Configure your servers here.
lobby = "127.0.0.1:30066"
factions = "127.0.0.1:30067"
minigames = "127.0.0.1:30068"
# In what order we should try servers when a player logs in or is kicked from a server.
try = [
"lobby"
]