Merge branch 'dev/1.1.0' into dev/2.0.0

# Conflicts:
#	api/src/main/java/com/velocitypowered/api/command/ConsoleCommandSource.java
#	api/src/main/java/com/velocitypowered/api/event/connection/ProxyPingEvent.java
#	api/src/main/java/com/velocitypowered/api/event/connection/ProxyQueryEvent.java
#	api/src/main/java/com/velocitypowered/api/event/lifecycle/ListenerBoundEvent.java
#	api/src/main/java/com/velocitypowered/api/event/lifecycle/ListenerCloseEvent.java
#	api/src/main/java/com/velocitypowered/api/event/lifecycle/ProxyInitializeEvent.java
#	api/src/main/java/com/velocitypowered/api/event/lifecycle/ProxyReloadEvent.java
#	api/src/main/java/com/velocitypowered/api/event/lifecycle/ProxyShutdownEvent.java
#	api/src/main/java/com/velocitypowered/api/event/player/DisconnectEvent.java
#	api/src/main/java/com/velocitypowered/api/event/player/LoginEvent.java
#	api/src/main/java/com/velocitypowered/api/event/player/PostLoginEvent.java
#	api/src/main/java/com/velocitypowered/api/event/player/PreLoginEvent.java
#	api/src/main/java/com/velocitypowered/api/event/query/package-info.java
#	api/src/main/java/com/velocitypowered/api/proxy/connection/InboundConnection.java
#	api/src/main/java/com/velocitypowered/api/proxy/connection/Player.java
#	api/src/main/java/com/velocitypowered/api/proxy/connection/ServerConnection.java
#	api/src/main/java/com/velocitypowered/api/proxy/player/ConnectionRequestBuilder.java
#	api/src/main/java/com/velocitypowered/api/util/MessagePosition.java
#	api/src/main/java/com/velocitypowered/api/util/bossbar/BossBar.java
#	api/src/main/java/com/velocitypowered/api/util/bossbar/BossBarColor.java
#	api/src/main/java/com/velocitypowered/api/util/bossbar/BossBarFlag.java
#	api/src/main/java/com/velocitypowered/api/util/bossbar/BossBarOverlay.java
#	api/src/main/java/com/velocitypowered/api/util/title/TextTitle.java
#	api/src/main/java/com/velocitypowered/api/util/title/Title.java
#	api/src/main/java/com/velocitypowered/api/util/title/Titles.java
#	api/src/main/java/com/velocitypowered/api/util/title/package-info.java
#	build.gradle
#	native/src/main/java/com/velocitypowered/natives/compression/Java11VelocityCompressor.java
#	proxy/src/main/java/com/velocitypowered/proxy/connection/client/LoginSessionHandler.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/ConnectionManager.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/NettyPreconditions.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/PluginMessageUtil.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/ProtocolUtils.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/ServerChannelInitializerHolder.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/buffer/ByteBufDataInput.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/buffer/ByteBufDataOutput.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundAvailableCommandsPacket.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundBossBarPacket.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundEncryptionRequestPacket.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundJoinGamePacket.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundPlayerListItemPacket.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundRespawnPacket.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/packet/clientbound/ClientboundTabCompleteResponsePacket.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/packet/legacy/LegacyDisconnectPacket.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/packet/legacy/LegacyMinecraftPingVersion.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/packet/serverbound/ServerboundClientSettingsPacket.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/packet/serverbound/ServerboundTabCompleteRequestPacket.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/AutoReadHolderHandler.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/GS4QueryHandler.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/LegacyPingDecoder.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/LegacyPingEncoder.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftCipherDecoder.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftCipherEncoder.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftCompressDecoder.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftCompressEncoder.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftDecoder.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftEncoder.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftVarintFrameDecoder.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/MinecraftVarintLengthEncoder.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/pipeline/VarintByteDecoder.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/resolver/SeparatePoolInetNameResolver.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/FaviconSerializer.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/GameProfileSerializer.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/VelocityLegacyHoverEventSerializer.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/ArgumentPropertyRegistry.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/ArgumentPropertySerializer.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/ByteArgumentPropertySerializer.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/DoubleArgumentPropertySerializer.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/EmptyArgumentPropertySerializer.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/FloatArgumentPropertySerializer.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/GenericArgumentPropertySerializer.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/IntegerArgumentPropertySerializer.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/LongArgumentPropertySerializer.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/ModArgumentProperty.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/ModArgumentPropertySerializer.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/PassthroughProperty.java
#	proxy/src/main/java/com/velocitypowered/proxy/network/serialization/brigadier/StringArgumentPropertySerializer.java
#	proxy/src/main/java/com/velocitypowered/proxy/plugin/VelocityEventManager.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/MinecraftPacket.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/StateRegistry.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/Chat.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/Disconnect.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/EncryptionResponse.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/Handshake.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/HeaderAndFooter.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/KeepAlive.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/LegacyHandshake.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/LegacyPing.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/LoginPluginMessage.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/LoginPluginResponse.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/PluginMessage.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ResourcePackRequest.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ResourcePackResponse.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ServerLogin.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ServerLoginSuccess.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/SetCompression.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/StatusPing.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/StatusRequest.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/StatusResponse.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/TitlePacket.java
#	proxy/src/main/java/com/velocitypowered/proxy/protocol/util/DeferredByteBufHolder.java
#	proxy/src/main/java/com/velocitypowered/proxy/util/bossbar/AdventureBossBarManager.java
#	proxy/src/main/java/com/velocitypowered/proxy/util/bossbar/VelocityBossBar.java
#	proxy/src/test/java/com/velocitypowered/proxy/event/MockEventManager.java
#	proxy/src/test/java/com/velocitypowered/proxy/network/PluginMessageUtilTest.java
#	proxy/src/test/java/com/velocitypowered/proxy/protocol/PacketRegistryTest.java
This commit is contained in:
Andrew Steinborn
2021-04-16 04:02:01 -04:00
247 changed files with 4023 additions and 77 deletions

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.plugin.ap;
import com.google.gson.Gson;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.plugin.ap;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.command;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.command;
import com.velocitypowered.api.proxy.connection.Player;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.command;
/**

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.command;
import com.velocitypowered.api.event.command.CommandExecuteEvent;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.command;
import com.mojang.brigadier.tree.CommandNode;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.command;
import com.velocitypowered.api.permission.PermissionSubject;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.command;
import com.google.common.collect.ImmutableList;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.command;
/**

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.command;
import org.checkerframework.checker.nullness.qual.NonNull;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides a command framework.
*/

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event;
/**

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event;
import java.util.concurrent.CompletableFuture;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event;
/**

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event;
import java.lang.annotation.ElementType;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.command;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.command;
import static com.google.common.base.Preconditions.checkNotNull;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.connection;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.connection;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides events for handling incoming connections to the proxy and logins.
*/

View File

@@ -1,4 +1,11 @@
package com.velocitypowered.api.event.lifecycle;
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.proxy;
/**
* This event is fired by the proxy after plugins have been loaded but before the proxy starts

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides events for handling the lifecycle of the proxy.
*/

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides core support for handling events with Velocity. Subpackages include event classes.
*/

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.permission;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides events to handle setting up permissions for permission subjects.
*/

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.player;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.player;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.player;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.player;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.player;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.player;
import com.google.common.base.MoreObjects;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.player;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.player;
import com.google.common.base.MoreObjects;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.player;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.player;
import com.google.common.annotations.Beta;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.player;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.event.player;
import static com.google.common.base.Preconditions.checkNotNull;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides events for handling actions performed by players.
*/

View File

@@ -0,0 +1,27 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.network;
/**
* Represents each listener type.
*/
public enum ListenerType {
MINECRAFT("Minecraft"),
QUERY("Query");
final String name;
ListenerType(final String name) {
this.name = name;
}
@Override
public String toString() {
return this.name;
}
}

View File

@@ -1,9 +1,18 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.network;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Sets;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import net.kyori.coffee.Ordered;
@@ -14,16 +23,19 @@ import net.kyori.coffee.Ordered;
public enum ProtocolVersion implements Ordered<ProtocolVersion> {
UNKNOWN(-1, "Unknown"),
LEGACY(-2, "Legacy"),
MINECRAFT_1_7_2(4, "1.7.2"),
MINECRAFT_1_7_6(5, "1.7.6"),
MINECRAFT_1_8(47, "1.8"),
MINECRAFT_1_7_2(4,
"1.7.2", "1.7.3", "1.7.4", "1.7.5"),
MINECRAFT_1_7_6(5,
"1.7.6", "1.7.7", "1.7.8", "1.7.9", "1.7.10"),
MINECRAFT_1_8(47,
"1.8", "1.8.1", "1.8.2", "1.8.3", "1.8.4", "1.8.5", "1.8.6", "1.8.7", "1.8.8", "1.8.9"),
MINECRAFT_1_9(107, "1.9"),
MINECRAFT_1_9_1(108, "1.9.1"),
MINECRAFT_1_9_2(109, "1.9.2"),
MINECRAFT_1_9_4(110, "1.9.4"),
MINECRAFT_1_10(210, "1.10"),
MINECRAFT_1_9_4(110, "1.9.3", "1.9.4"),
MINECRAFT_1_10(210, "1.10", "1.10.1", "1.10.2"),
MINECRAFT_1_11(315, "1.11"),
MINECRAFT_1_11_1(316, "1.11.1"),
MINECRAFT_1_11_1(316, "1.11.1", "1.11.2"),
MINECRAFT_1_12(335, "1.12"),
MINECRAFT_1_12_1(338, "1.12.1"),
MINECRAFT_1_12_2(340, "1.12.2"),
@@ -42,13 +54,13 @@ public enum ProtocolVersion implements Ordered<ProtocolVersion> {
MINECRAFT_1_16_1(736, "1.16.1"),
MINECRAFT_1_16_2(751, "1.16.2"),
MINECRAFT_1_16_3(753, "1.16.3"),
MINECRAFT_1_16_4(754, "1.16.4");
MINECRAFT_1_16_4(754, "1.16.4", "1.16.5");
private static final int SNAPSHOT_BIT = 30;
private final int protocol;
private final int snapshotProtocol;
private final String name;
private final String[] names;
/**
* Represents the lowest supported version.
@@ -63,7 +75,8 @@ public enum ProtocolVersion implements Ordered<ProtocolVersion> {
* The user-friendly representation of the lowest and highest supported versions.
*/
public static final String SUPPORTED_VERSION_STRING = String
.format("%s-%s", MINIMUM_VERSION, MAXIMUM_VERSION);
.format("%s-%s", MINIMUM_VERSION.getVersionIntroducedIn(),
MAXIMUM_VERSION.getMostRecentSupportedVersion());
/**
* A map linking the protocol version number to its {@link ProtocolVersion} representation.
@@ -102,11 +115,11 @@ public enum ProtocolVersion implements Ordered<ProtocolVersion> {
SUPPORTED_VERSIONS = Sets.immutableEnumSet(versions);
}
ProtocolVersion(int protocol, String name) {
this(protocol, -1, name);
ProtocolVersion(int protocol, String... names) {
this(protocol, -1, names);
}
ProtocolVersion(int protocol, int snapshotProtocol, String name) {
ProtocolVersion(int protocol, int snapshotProtocol, String... names) {
if (snapshotProtocol != -1) {
this.snapshotProtocol = (1 << SNAPSHOT_BIT) | snapshotProtocol;
} else {
@@ -114,7 +127,7 @@ public enum ProtocolVersion implements Ordered<ProtocolVersion> {
}
this.protocol = protocol;
this.name = name;
this.names = names;
}
/**
@@ -130,9 +143,41 @@ public enum ProtocolVersion implements Ordered<ProtocolVersion> {
* Returns the user-friendly name for this protocol.
*
* @return the protocol name
* @deprecated A protocol may be shared by multiple versions. Use @link{#getVersionIntroducedIn()}
* or @link{#getVersionsSupportedBy()} to get more accurate version names.
*/
@Deprecated
public String getName() {
return name;
return getVersionIntroducedIn();
}
/**
* Returns the user-friendly name of the version
* this protocol was introduced in.
*
* @return the version name
*/
public String getVersionIntroducedIn() {
return names[0];
}
/**
* Returns the user-friendly name of the last
* version this protocol is valid for.
*
* @return the version name
*/
public String getMostRecentSupportedVersion() {
return names[names.length - 1];
}
/**
* Returns all versions this protocol is valid for.
*
* @return the version names
*/
public List<String> getVersionsSupportedBy() {
return ImmutableList.copyOf(names);
}
/**
@@ -187,6 +232,6 @@ public enum ProtocolVersion implements Ordered<ProtocolVersion> {
@Override
public String toString() {
return name;
return getVersionIntroducedIn();
}
}

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.permission;
/**

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.permission;
/**

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.permission;
/**

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.permission;
import org.checkerframework.checker.nullness.qual.Nullable;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides the basic building blocks for a custom permission system.
*/

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.plugin;
import java.lang.annotation.Retention;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.plugin;
public class InvalidPluginException extends Exception {

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.plugin;
import java.lang.annotation.ElementType;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.plugin;
import java.util.Optional;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.plugin;
import com.google.common.collect.ImmutableList;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.plugin;
import java.nio.file.Path;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.plugin.annotation;
import com.google.inject.BindingAnnotation;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides annotations to handle injecting dependencies for plugins.
*/

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.plugin.meta;
import static com.google.common.base.Preconditions.checkArgument;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides metadata for plugins.
*/

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides the Velocity plugin API.
*/

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy;
import com.velocitypowered.api.command.CommandManager;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.config;
import com.velocitypowered.api.proxy.ProxyServer;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.messages;
/**

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.messages;
/**

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.messages;
/**

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.messages;
/**

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.messages;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.messages;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides an interface to receive, handle, and send plugin messages on the proxy from clients and
* servers.

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides an interface to interact with the proxy at a low level.
*/

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.player;
import com.velocitypowered.api.proxy.connection.Player;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.player;
import java.util.Locale;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.player;
public final class SkinParts {

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.player;
import com.velocitypowered.api.proxy.connection.Player;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.player;
import com.velocitypowered.api.util.GameProfile;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides an interface to work with players connected to the proxy.
*/

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.server;
import com.google.common.annotations.VisibleForTesting;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.server;
import com.velocitypowered.api.proxy.connection.Player;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.server;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.server;
import com.google.common.base.MoreObjects;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides utilities to handle server information.
*/

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.scheduler;
/**

View File

@@ -1,5 +1,13 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.scheduler;
import java.time.Duration;
import java.util.concurrent.TimeUnit;
import org.checkerframework.common.value.qual.IntRange;
@@ -31,6 +39,16 @@ public interface Scheduler {
*/
TaskBuilder delay(@IntRange(from = 0) long time, TimeUnit unit);
/**
* Specifies that the task should delay its execution by the specified amount of time.
*
* @param duration the duration of the delay
* @return this builder, for chaining
*/
default TaskBuilder delay(Duration duration) {
return delay(duration.toMillis(), TimeUnit.MILLISECONDS);
}
/**
* Specifies that the task should continue running after waiting for the specified amount, until
* it is cancelled.
@@ -41,6 +59,17 @@ public interface Scheduler {
*/
TaskBuilder repeat(@IntRange(from = 0) long time, TimeUnit unit);
/**
* Specifies that the task should continue running after waiting for the specified amount, until
* it is cancelled.
*
* @param duration the duration of the delay
* @return this builder, for chaining
*/
default TaskBuilder repeat(Duration duration) {
return repeat(duration.toMillis(), TimeUnit.MILLISECONDS);
}
/**
* Clears the delay on this task.
*

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.scheduler;
public enum TaskStatus {

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides utilities for scheduling tasks with a fluent builder.
*/

View File

@@ -1,25 +1,8 @@
/*
* The MIT License (MIT)
* Copyright (C) 2018 Velocity Contributors
*
* Copyright (c) 2018 Jon Chambers
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.util;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.util;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.util;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.util;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.util;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.util;
import com.google.common.base.Preconditions;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
/**
* Provides a selection of miscellaneous utilities for use by plugins and the proxy.
*/

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.messages;
import static com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier.create;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.server;
import static org.junit.jupiter.api.Assertions.assertEquals;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.proxy.server;
import static org.junit.jupiter.api.Assertions.assertEquals;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (C) 2018 Velocity Contributors
*
* The Velocity API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the api top-level directory.
*/
package com.velocitypowered.api.util;
import static org.junit.jupiter.api.Assertions.assertEquals;