Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-12-25 15:50:10 +01:00
Factor & Javadoc update
Dieser Commit ist enthalten in:
Ursprung
ff3d76a387
Commit
396998c7fc
@ -2,7 +2,7 @@ package us.myles.ViaVersion;
|
|||||||
|
|
||||||
import us.myles.ViaVersion.api.ViaVersionConfig;
|
import us.myles.ViaVersion.api.ViaVersionConfig;
|
||||||
import us.myles.ViaVersion.api.configuration.ConfigurationProvider;
|
import us.myles.ViaVersion.api.configuration.ConfigurationProvider;
|
||||||
import us.myles.ViaVersion.util.Configuration;
|
import us.myles.ViaVersion.bukkit.util.Configuration;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -14,10 +14,14 @@ import us.myles.ViaVersion.api.ViaVersion;
|
|||||||
import us.myles.ViaVersion.api.command.ViaCommandSender;
|
import us.myles.ViaVersion.api.command.ViaCommandSender;
|
||||||
import us.myles.ViaVersion.api.configuration.ConfigurationProvider;
|
import us.myles.ViaVersion.api.configuration.ConfigurationProvider;
|
||||||
import us.myles.ViaVersion.api.platform.ViaPlatform;
|
import us.myles.ViaVersion.api.platform.ViaPlatform;
|
||||||
import us.myles.ViaVersion.bukkit.*;
|
import us.myles.ViaVersion.bukkit.classgenerator.ClassGenerator;
|
||||||
import us.myles.ViaVersion.classgenerator.ClassGenerator;
|
import us.myles.ViaVersion.bukkit.commands.BukkitCommandHandler;
|
||||||
|
import us.myles.ViaVersion.bukkit.commands.BukkitCommandSender;
|
||||||
|
import us.myles.ViaVersion.bukkit.platform.BukkitViaAPI;
|
||||||
|
import us.myles.ViaVersion.bukkit.platform.BukkitViaInjector;
|
||||||
|
import us.myles.ViaVersion.bukkit.platform.BukkitViaLoader;
|
||||||
import us.myles.ViaVersion.dump.PluginInfo;
|
import us.myles.ViaVersion.dump.PluginInfo;
|
||||||
import us.myles.ViaVersion.util.NMSUtil;
|
import us.myles.ViaVersion.bukkit.util.NMSUtil;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -103,9 +103,9 @@ public interface ViaVersionAPI extends ViaAPI<Player> {
|
|||||||
boolean isDebug();
|
boolean isDebug();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get ViaVersions command handler
|
* Get ViaVersions commands handler
|
||||||
*
|
*
|
||||||
* @return command handler
|
* @return commands handler
|
||||||
*/
|
*/
|
||||||
ViaVersionCommand getCommandHandler();
|
ViaVersionCommand getCommandHandler();
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package us.myles.ViaVersion.classgenerator;
|
package us.myles.ViaVersion.bukkit.classgenerator;
|
||||||
|
|
||||||
import io.netty.handler.codec.ByteToMessageDecoder;
|
import io.netty.handler.codec.ByteToMessageDecoder;
|
||||||
import io.netty.handler.codec.MessageToByteEncoder;
|
import io.netty.handler.codec.MessageToByteEncoder;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.handlers.ViaDecodeHandler;
|
import us.myles.ViaVersion.bukkit.handlers.ViaDecodeHandler;
|
||||||
import us.myles.ViaVersion.handlers.ViaEncodeHandler;
|
import us.myles.ViaVersion.bukkit.handlers.ViaEncodeHandler;
|
||||||
|
|
||||||
public class BasicHandlerConstructor implements HandlerConstructor {
|
public class BasicHandlerConstructor implements HandlerConstructor {
|
||||||
@Override
|
@Override
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.classgenerator;
|
package us.myles.ViaVersion.bukkit.classgenerator;
|
||||||
|
|
||||||
import javassist.*;
|
import javassist.*;
|
||||||
import javassist.expr.ConstructorCall;
|
import javassist.expr.ConstructorCall;
|
||||||
@ -6,9 +6,9 @@ import javassist.expr.ExprEditor;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import us.myles.ViaVersion.api.ViaVersion;
|
import us.myles.ViaVersion.api.ViaVersion;
|
||||||
import us.myles.ViaVersion.handlers.ViaDecodeHandler;
|
import us.myles.ViaVersion.bukkit.handlers.ViaDecodeHandler;
|
||||||
import us.myles.ViaVersion.handlers.ViaEncodeHandler;
|
import us.myles.ViaVersion.bukkit.handlers.ViaEncodeHandler;
|
||||||
import us.myles.ViaVersion.util.NMSUtil;
|
import us.myles.ViaVersion.bukkit.util.NMSUtil;
|
||||||
|
|
||||||
public class ClassGenerator {
|
public class ClassGenerator {
|
||||||
private static HandlerConstructor constructor = new BasicHandlerConstructor();
|
private static HandlerConstructor constructor = new BasicHandlerConstructor();
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.classgenerator;
|
package us.myles.ViaVersion.bukkit.classgenerator;
|
||||||
|
|
||||||
import io.netty.handler.codec.ByteToMessageDecoder;
|
import io.netty.handler.codec.ByteToMessageDecoder;
|
||||||
import io.netty.handler.codec.MessageToByteEncoder;
|
import io.netty.handler.codec.MessageToByteEncoder;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.bukkit;
|
package us.myles.ViaVersion.bukkit.commands;
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.bukkit;
|
package us.myles.ViaVersion.bukkit.commands;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.handlers;
|
package us.myles.ViaVersion.bukkit.handlers;
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.handlers;
|
package us.myles.ViaVersion.bukkit.handlers;
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.handlers;
|
package us.myles.ViaVersion.bukkit.handlers;
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.handlers;
|
package us.myles.ViaVersion.bukkit.handlers;
|
||||||
|
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.Channel;
|
||||||
import io.netty.channel.ChannelInitializer;
|
import io.netty.channel.ChannelInitializer;
|
||||||
@ -7,8 +7,8 @@ import io.netty.handler.codec.ByteToMessageDecoder;
|
|||||||
import io.netty.handler.codec.MessageToByteEncoder;
|
import io.netty.handler.codec.MessageToByteEncoder;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.api.protocol.ProtocolPipeline;
|
import us.myles.ViaVersion.api.protocol.ProtocolPipeline;
|
||||||
import us.myles.ViaVersion.classgenerator.ClassGenerator;
|
import us.myles.ViaVersion.bukkit.classgenerator.ClassGenerator;
|
||||||
import us.myles.ViaVersion.classgenerator.HandlerConstructor;
|
import us.myles.ViaVersion.bukkit.classgenerator.HandlerConstructor;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.listeners;
|
package us.myles.ViaVersion.bukkit.listeners;
|
||||||
|
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.listeners;
|
package us.myles.ViaVersion.bukkit.listeners;
|
||||||
|
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.listeners.protocol1_9to1_8;
|
package us.myles.ViaVersion.bukkit.listeners.protocol1_9to1_8;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.HumanEntity;
|
import org.bukkit.entity.HumanEntity;
|
||||||
@ -17,7 +17,7 @@ import us.myles.ViaVersion.ViaVersionPlugin;
|
|||||||
import us.myles.ViaVersion.api.PacketWrapper;
|
import us.myles.ViaVersion.api.PacketWrapper;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
import us.myles.ViaVersion.api.type.Type;
|
import us.myles.ViaVersion.api.type.Type;
|
||||||
import us.myles.ViaVersion.listeners.ViaBukkitListener;
|
import us.myles.ViaVersion.bukkit.listeners.ViaBukkitListener;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.ArmorType;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.ArmorType;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.listeners.protocol1_9to1_8;
|
package us.myles.ViaVersion.bukkit.listeners.protocol1_9to1_8;
|
||||||
|
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@ -6,7 +6,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
import org.bukkit.event.block.BlockPlaceEvent;
|
||||||
import us.myles.ViaVersion.ViaVersionPlugin;
|
import us.myles.ViaVersion.ViaVersionPlugin;
|
||||||
import us.myles.ViaVersion.api.minecraft.Position;
|
import us.myles.ViaVersion.api.minecraft.Position;
|
||||||
import us.myles.ViaVersion.listeners.ViaBukkitListener;
|
import us.myles.ViaVersion.bukkit.listeners.ViaBukkitListener;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.EntityTracker;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.EntityTracker;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.listeners.protocol1_9to1_8;
|
package us.myles.ViaVersion.bukkit.listeners.protocol1_9to1_8;
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.buffer.ByteBufOutputStream;
|
import io.netty.buffer.ByteBufOutputStream;
|
||||||
@ -21,9 +21,9 @@ import us.myles.ViaVersion.api.PacketWrapper;
|
|||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.api.minecraft.Position;
|
import us.myles.ViaVersion.api.minecraft.Position;
|
||||||
import us.myles.ViaVersion.api.type.Type;
|
import us.myles.ViaVersion.api.type.Type;
|
||||||
import us.myles.ViaVersion.listeners.ViaBukkitListener;
|
import us.myles.ViaVersion.bukkit.listeners.ViaBukkitListener;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
|
||||||
import us.myles.ViaVersion.util.NMSUtil;
|
import us.myles.ViaVersion.bukkit.util.NMSUtil;
|
||||||
import us.myles.ViaVersion.util.ReflectionUtil;
|
import us.myles.ViaVersion.util.ReflectionUtil;
|
||||||
|
|
||||||
import java.io.DataOutput;
|
import java.io.DataOutput;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.listeners.protocol1_9to1_8;
|
package us.myles.ViaVersion.bukkit.listeners.protocol1_9to1_8;
|
||||||
|
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -10,7 +10,7 @@ import us.myles.ViaVersion.api.PacketWrapper;
|
|||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
import us.myles.ViaVersion.api.ViaVersion;
|
import us.myles.ViaVersion.api.ViaVersion;
|
||||||
import us.myles.ViaVersion.api.type.Type;
|
import us.myles.ViaVersion.api.type.Type;
|
||||||
import us.myles.ViaVersion.listeners.ViaBukkitListener;
|
import us.myles.ViaVersion.bukkit.listeners.ViaBukkitListener;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
|
||||||
|
|
||||||
public class DeathListener extends ViaBukkitListener {
|
public class DeathListener extends ViaBukkitListener {
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.listeners.protocol1_9to1_8;
|
package us.myles.ViaVersion.bukkit.listeners.protocol1_9to1_8;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.listeners.protocol1_9to1_8;
|
package us.myles.ViaVersion.bukkit.listeners.protocol1_9to1_8;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -6,7 +6,7 @@ import org.bukkit.block.BlockFace;
|
|||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
import org.bukkit.event.block.BlockPlaceEvent;
|
||||||
import us.myles.ViaVersion.ViaVersionPlugin;
|
import us.myles.ViaVersion.ViaVersionPlugin;
|
||||||
import us.myles.ViaVersion.listeners.ViaBukkitListener;
|
import us.myles.ViaVersion.bukkit.listeners.ViaBukkitListener;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
|
||||||
|
|
||||||
public class PaperPatch extends ViaBukkitListener {
|
public class PaperPatch extends ViaBukkitListener {
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.bukkit;
|
package us.myles.ViaVersion.bukkit.platform;
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@ -17,7 +17,7 @@ import us.myles.ViaVersion.api.data.UserConnection;
|
|||||||
import us.myles.ViaVersion.api.protocol.ProtocolRegistry;
|
import us.myles.ViaVersion.api.protocol.ProtocolRegistry;
|
||||||
import us.myles.ViaVersion.boss.ViaBossBar;
|
import us.myles.ViaVersion.boss.ViaBossBar;
|
||||||
import us.myles.ViaVersion.protocols.base.ProtocolInfo;
|
import us.myles.ViaVersion.protocols.base.ProtocolInfo;
|
||||||
import us.myles.ViaVersion.util.ProtocolSupportUtil;
|
import us.myles.ViaVersion.bukkit.util.ProtocolSupportUtil;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.SortedSet;
|
import java.util.SortedSet;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.bukkit;
|
package us.myles.ViaVersion.bukkit.platform;
|
||||||
|
|
||||||
import io.netty.channel.ChannelFuture;
|
import io.netty.channel.ChannelFuture;
|
||||||
import io.netty.channel.ChannelHandler;
|
import io.netty.channel.ChannelHandler;
|
||||||
@ -8,10 +8,10 @@ import org.bukkit.plugin.PluginDescriptionFile;
|
|||||||
import us.myles.ViaVersion.api.Pair;
|
import us.myles.ViaVersion.api.Pair;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
import us.myles.ViaVersion.api.platform.ViaInjector;
|
import us.myles.ViaVersion.api.platform.ViaInjector;
|
||||||
import us.myles.ViaVersion.handlers.ViaVersionInitializer;
|
import us.myles.ViaVersion.bukkit.handlers.ViaVersionInitializer;
|
||||||
import us.myles.ViaVersion.util.ConcurrentList;
|
import us.myles.ViaVersion.util.ConcurrentList;
|
||||||
import us.myles.ViaVersion.util.ListWrapper;
|
import us.myles.ViaVersion.util.ListWrapper;
|
||||||
import us.myles.ViaVersion.util.NMSUtil;
|
import us.myles.ViaVersion.bukkit.util.NMSUtil;
|
||||||
import us.myles.ViaVersion.util.ReflectionUtil;
|
import us.myles.ViaVersion.util.ReflectionUtil;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.bukkit;
|
package us.myles.ViaVersion.bukkit.platform;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
@ -10,8 +10,10 @@ import us.myles.ViaVersion.api.Via;
|
|||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.api.minecraft.item.Item;
|
import us.myles.ViaVersion.api.minecraft.item.Item;
|
||||||
import us.myles.ViaVersion.api.platform.ViaPlatformLoader;
|
import us.myles.ViaVersion.api.platform.ViaPlatformLoader;
|
||||||
import us.myles.ViaVersion.listeners.UpdateListener;
|
import us.myles.ViaVersion.bukkit.listeners.UpdateListener;
|
||||||
import us.myles.ViaVersion.listeners.protocol1_9to1_8.*;
|
import us.myles.ViaVersion.bukkit.listeners.protocol1_9to1_8.*;
|
||||||
|
import us.myles.ViaVersion.bukkit.providers.BukkitViaBulkChunkTranslator;
|
||||||
|
import us.myles.ViaVersion.bukkit.providers.BukkitViaMovementTransmitter;
|
||||||
import us.myles.ViaVersion.protocols.base.ProtocolInfo;
|
import us.myles.ViaVersion.protocols.base.ProtocolInfo;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.BulkChunkTranslatorProvider;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.BulkChunkTranslatorProvider;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.HandItemProvider;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.HandItemProvider;
|
@ -1,11 +1,11 @@
|
|||||||
package us.myles.ViaVersion.bukkit;
|
package us.myles.ViaVersion.bukkit.providers;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import us.myles.ViaVersion.ViaVersionPlugin;
|
import us.myles.ViaVersion.ViaVersionPlugin;
|
||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.BulkChunkTranslatorProvider;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.BulkChunkTranslatorProvider;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.ClientChunks;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.ClientChunks;
|
||||||
import us.myles.ViaVersion.util.NMSUtil;
|
import us.myles.ViaVersion.bukkit.util.NMSUtil;
|
||||||
import us.myles.ViaVersion.util.ReflectionUtil;
|
import us.myles.ViaVersion.util.ReflectionUtil;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.bukkit;
|
package us.myles.ViaVersion.bukkit.providers;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -7,7 +7,7 @@ import us.myles.ViaVersion.api.data.UserConnection;
|
|||||||
import us.myles.ViaVersion.protocols.base.ProtocolInfo;
|
import us.myles.ViaVersion.protocols.base.ProtocolInfo;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.MovementTransmitterProvider;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.providers.MovementTransmitterProvider;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.MovementTracker;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.MovementTracker;
|
||||||
import us.myles.ViaVersion.util.NMSUtil;
|
import us.myles.ViaVersion.bukkit.util.NMSUtil;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.util;
|
package us.myles.ViaVersion.bukkit.util;
|
||||||
|
|
||||||
import com.google.common.base.Joiner;
|
import com.google.common.base.Joiner;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.util;
|
package us.myles.ViaVersion.bukkit.util;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.util;
|
package us.myles.ViaVersion.bukkit.util;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
@ -11,13 +11,13 @@ import us.myles.ViaVersion.api.ViaVersionConfig;
|
|||||||
import us.myles.ViaVersion.api.command.ViaCommandSender;
|
import us.myles.ViaVersion.api.command.ViaCommandSender;
|
||||||
import us.myles.ViaVersion.api.configuration.ConfigurationProvider;
|
import us.myles.ViaVersion.api.configuration.ConfigurationProvider;
|
||||||
import us.myles.ViaVersion.api.platform.ViaPlatform;
|
import us.myles.ViaVersion.api.platform.ViaPlatform;
|
||||||
import us.myles.ViaVersion.bungee.BungeeViaAPI;
|
import us.myles.ViaVersion.bungee.platform.BungeeViaAPI;
|
||||||
import us.myles.ViaVersion.bungee.BungeeViaInjector;
|
import us.myles.ViaVersion.bungee.platform.BungeeViaInjector;
|
||||||
import us.myles.ViaVersion.bungee.BungeeViaLoader;
|
import us.myles.ViaVersion.bungee.platform.BungeeViaLoader;
|
||||||
import us.myles.ViaVersion.bungee.command.BungeeCommand;
|
import us.myles.ViaVersion.bungee.commands.BungeeCommand;
|
||||||
import us.myles.ViaVersion.bungee.command.BungeeCommandHandler;
|
import us.myles.ViaVersion.bungee.commands.BungeeCommandHandler;
|
||||||
import us.myles.ViaVersion.bungee.command.BungeeCommandSender;
|
import us.myles.ViaVersion.bungee.commands.BungeeCommandSender;
|
||||||
import us.myles.ViaVersion.bungee.config.BungeeConfigAPI;
|
import us.myles.ViaVersion.bungee.platform.BungeeConfigAPI;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.bungee.command;
|
package us.myles.ViaVersion.bungee.commands;
|
||||||
|
|
||||||
import net.md_5.bungee.api.CommandSender;
|
import net.md_5.bungee.api.CommandSender;
|
||||||
import net.md_5.bungee.api.plugin.Command;
|
import net.md_5.bungee.api.plugin.Command;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.bungee.command;
|
package us.myles.ViaVersion.bungee.commands;
|
||||||
|
|
||||||
import us.myles.ViaVersion.commands.ViaCommandHandler;
|
import us.myles.ViaVersion.commands.ViaCommandHandler;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.bungee.command;
|
package us.myles.ViaVersion.bungee.commands;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import net.md_5.bungee.api.CommandSender;
|
import net.md_5.bungee.api.CommandSender;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.bungee;
|
package us.myles.ViaVersion.bungee.platform;
|
||||||
|
|
||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
import us.myles.ViaVersion.api.boss.BossBar;
|
import us.myles.ViaVersion.api.boss.BossBar;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.bungee.config;
|
package us.myles.ViaVersion.bungee.platform;
|
||||||
|
|
||||||
import us.myles.ViaVersion.api.ViaVersionConfig;
|
import us.myles.ViaVersion.api.ViaVersionConfig;
|
||||||
import us.myles.ViaVersion.api.configuration.ConfigurationProvider;
|
import us.myles.ViaVersion.api.configuration.ConfigurationProvider;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.bungee;
|
package us.myles.ViaVersion.bungee.platform;
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.bungee;
|
package us.myles.ViaVersion.bungee.platform;
|
||||||
|
|
||||||
import io.netty.channel.Channel;
|
import io.netty.channel.Channel;
|
||||||
import io.netty.channel.ChannelInitializer;
|
import io.netty.channel.ChannelInitializer;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.bungee;
|
package us.myles.ViaVersion.bungee.platform;
|
||||||
|
|
||||||
import us.myles.ViaVersion.api.platform.ViaPlatformLoader;
|
import us.myles.ViaVersion.api.platform.ViaPlatformLoader;
|
||||||
|
|
@ -24,7 +24,7 @@ import java.util.LinkedList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class PacketWrapper {
|
public class PacketWrapper {
|
||||||
public static int PASSTHROUGH_ID = 1000;
|
public static final int PASSTHROUGH_ID = 1000;
|
||||||
|
|
||||||
private final ByteBuf inputBuffer;
|
private final ByteBuf inputBuffer;
|
||||||
private final UserConnection userConnection;
|
private final UserConnection userConnection;
|
||||||
@ -32,8 +32,8 @@ public class PacketWrapper {
|
|||||||
@Setter
|
@Setter
|
||||||
@Getter
|
@Getter
|
||||||
private int id = -1;
|
private int id = -1;
|
||||||
private LinkedList<Pair<Type, Object>> readableObjects = new LinkedList<>();
|
private final LinkedList<Pair<Type, Object>> readableObjects = new LinkedList<>();
|
||||||
private List<Pair<Type, Object>> packetValues = new ArrayList<>();
|
private final List<Pair<Type, Object>> packetValues = new ArrayList<>();
|
||||||
|
|
||||||
public PacketWrapper(int packetID, ByteBuf inputBuffer, UserConnection userConnection) {
|
public PacketWrapper(int packetID, ByteBuf inputBuffer, UserConnection userConnection) {
|
||||||
this.id = packetID;
|
this.id = packetID;
|
||||||
@ -404,7 +404,7 @@ public class PacketWrapper {
|
|||||||
* @param index The index to start from
|
* @param index The index to start from
|
||||||
* @param pipeline The pipeline
|
* @param pipeline The pipeline
|
||||||
* @return The current packetwrapper
|
* @return The current packetwrapper
|
||||||
* @throws Exception
|
* @throws Exception If it fails to transform a packet, exception will be thrown
|
||||||
*/
|
*/
|
||||||
public PacketWrapper apply(Direction direction, State state, int index, List<Protocol> pipeline) throws Exception {
|
public PacketWrapper apply(Direction direction, State state, int index, List<Protocol> pipeline) throws Exception {
|
||||||
for (int i = index; i < pipeline.size(); i++) { // Copy to prevent from removal.
|
for (int i = index; i < pipeline.size(); i++) { // Copy to prevent from removal.
|
||||||
|
@ -11,6 +11,11 @@ public class Via {
|
|||||||
@Getter
|
@Getter
|
||||||
private static ViaManager manager;
|
private static ViaManager manager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register the ViaManager associated with the platform.
|
||||||
|
*
|
||||||
|
* @param viaManager The ViaManager
|
||||||
|
*/
|
||||||
public static void init(ViaManager viaManager) {
|
public static void init(ViaManager viaManager) {
|
||||||
Validate.isTrue(manager == null, "ViaManager is already set");
|
Validate.isTrue(manager == null, "ViaManager is already set");
|
||||||
|
|
||||||
@ -18,11 +23,21 @@ public class Via {
|
|||||||
Via.manager = viaManager;
|
Via.manager = viaManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the API associated with the current platform.
|
||||||
|
*
|
||||||
|
* @return API instance
|
||||||
|
*/
|
||||||
public static ViaAPI getAPI() {
|
public static ViaAPI getAPI() {
|
||||||
Validate.isTrue(platform != null, "ViaVersion has not loaded the Platform");
|
Validate.isTrue(platform != null, "ViaVersion has not loaded the Platform");
|
||||||
return Via.platform.getApi();
|
return Via.platform.getApi();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the config associated with the current platform.
|
||||||
|
*
|
||||||
|
* @return Config instance
|
||||||
|
*/
|
||||||
public static ViaVersionConfig getConfig() {
|
public static ViaVersionConfig getConfig() {
|
||||||
Validate.isTrue(platform != null, "ViaVersion has not loaded the Platform");
|
Validate.isTrue(platform != null, "ViaVersion has not loaded the Platform");
|
||||||
return Via.platform.getConf();
|
return Via.platform.getConf();
|
||||||
|
@ -21,7 +21,6 @@ public abstract class ViaListener {
|
|||||||
* @return The UserConnection
|
* @return The UserConnection
|
||||||
*/
|
*/
|
||||||
protected UserConnection getUserConnection(@NonNull UUID uuid) {
|
protected UserConnection getUserConnection(@NonNull UUID uuid) {
|
||||||
if (!Via.getAPI().isPorted(uuid)) return null;
|
|
||||||
return Via.getManager().getConnection(uuid);
|
return Via.getManager().getConnection(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,6 +111,12 @@ public abstract class BossBar<T> {
|
|||||||
throw new NotImplementedException("This method is not implemented for the platform " + Via.getPlatform().getPlatformName());
|
throw new NotImplementedException("This method is not implemented for the platform " + Via.getPlatform().getPlatformName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the bossbar from a player
|
||||||
|
*
|
||||||
|
* @param uuid The platers YYUD
|
||||||
|
* @return The BossBar object
|
||||||
|
*/
|
||||||
public abstract BossBar removePlayer(UUID uuid);
|
public abstract BossBar removePlayer(UUID uuid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -3,11 +3,32 @@ package us.myles.ViaVersion.api.command;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public interface ViaCommandSender {
|
public interface ViaCommandSender {
|
||||||
public boolean hasPermission(String permission);
|
/**
|
||||||
|
* Check if the sender has a permission.
|
||||||
|
*
|
||||||
|
* @param permission Permission string eg. viaversion.admin
|
||||||
|
* @return True if the sender has the permission
|
||||||
|
*/
|
||||||
|
boolean hasPermission(String permission);
|
||||||
|
|
||||||
public void sendMessage(String msg);
|
/**
|
||||||
|
* Send a message to the sender
|
||||||
|
*
|
||||||
|
* @param msg The message to send
|
||||||
|
*/
|
||||||
|
void sendMessage(String msg);
|
||||||
|
|
||||||
public UUID getUUID();
|
/**
|
||||||
|
* Get the senders UUID.
|
||||||
|
*
|
||||||
|
* @return The senders UUID
|
||||||
|
*/
|
||||||
|
UUID getUUID();
|
||||||
|
|
||||||
public String getName();
|
/**
|
||||||
|
* Get the senders name.
|
||||||
|
*
|
||||||
|
* @return The senders name
|
||||||
|
*/
|
||||||
|
String getName();
|
||||||
}
|
}
|
||||||
|
@ -9,14 +9,14 @@ public abstract class ViaSubCommand {
|
|||||||
/**
|
/**
|
||||||
* Subcommand name
|
* Subcommand name
|
||||||
*
|
*
|
||||||
* @return The command name
|
* @return The commands name
|
||||||
*/
|
*/
|
||||||
public abstract String name();
|
public abstract String name();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* subcommand description, this'll show in /viaversion list
|
* subcommand description, this'll show in /viaversion list
|
||||||
*
|
*
|
||||||
* @return The command description
|
* @return The commands description
|
||||||
*/
|
*/
|
||||||
public abstract String description();
|
public abstract String description();
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ public abstract class ViaSubCommand {
|
|||||||
* Usage example:
|
* Usage example:
|
||||||
* "playerversion [name]"
|
* "playerversion [name]"
|
||||||
*
|
*
|
||||||
* @return The command usage
|
* @return The commands usage
|
||||||
*/
|
*/
|
||||||
public String usage() {
|
public String usage() {
|
||||||
return name();
|
return name();
|
||||||
@ -33,7 +33,7 @@ public abstract class ViaSubCommand {
|
|||||||
/**
|
/**
|
||||||
* Permission, null for everyone
|
* Permission, null for everyone
|
||||||
*
|
*
|
||||||
* @return The permission required to use the command
|
* @return The permission required to use the commands
|
||||||
*/
|
*/
|
||||||
public String permission() {
|
public String permission() {
|
||||||
return "viaversion.admin";
|
return "viaversion.admin";
|
||||||
@ -44,7 +44,7 @@ public abstract class ViaSubCommand {
|
|||||||
*
|
*
|
||||||
* @param sender Command sender
|
* @param sender Command sender
|
||||||
* @param args Arguments
|
* @param args Arguments
|
||||||
* @return command executed succesfully if false, show usage
|
* @return commands executed succesfully if false, show usage
|
||||||
*/
|
*/
|
||||||
public abstract boolean execute(ViaCommandSender sender, String[] args);
|
public abstract boolean execute(ViaCommandSender sender, String[] args);
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ public abstract class ViaSubCommand {
|
|||||||
/**
|
/**
|
||||||
* Send message formatted / colored
|
* Send message formatted / colored
|
||||||
*
|
*
|
||||||
* @param sender command sender
|
* @param sender commands sender
|
||||||
* @param message string message
|
* @param message string message
|
||||||
* @param args optional objects
|
* @param args optional objects
|
||||||
*/
|
*/
|
||||||
|
@ -28,7 +28,7 @@ public interface ViaVersionCommand {
|
|||||||
ViaSubCommand getSubCommand(String name);
|
ViaSubCommand getSubCommand(String name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executed when the Command sender executes the command
|
* Executed when the Command sender executes the commands
|
||||||
*
|
*
|
||||||
* @param sender Sender object
|
* @param sender Sender object
|
||||||
* @param args arguments provided
|
* @param args arguments provided
|
||||||
|
@ -1,11 +1,32 @@
|
|||||||
package us.myles.ViaVersion.api.platform;
|
package us.myles.ViaVersion.api.platform;
|
||||||
|
|
||||||
public interface ViaInjector {
|
public interface ViaInjector {
|
||||||
public void inject() throws Exception;
|
/**
|
||||||
|
* Inject into the current Platform
|
||||||
|
*
|
||||||
|
* @throws Exception If there is an error with injecting
|
||||||
|
*/
|
||||||
|
void inject() throws Exception;
|
||||||
|
|
||||||
public void uninject() throws Exception;
|
/**
|
||||||
|
* Uninject into the current Platform
|
||||||
|
*
|
||||||
|
* @throws Exception If there is an error with uninjecting
|
||||||
|
*/
|
||||||
|
void uninject() throws Exception;
|
||||||
|
|
||||||
public int getServerProtocolVersion() throws Exception;
|
/**
|
||||||
|
* Get the server protocol version
|
||||||
|
*
|
||||||
|
* @return The server protocol integer
|
||||||
|
* @throws Exception If there is an error with getting this info, eg. not binded.
|
||||||
|
*/
|
||||||
|
int getServerProtocolVersion() throws Exception;
|
||||||
|
|
||||||
public String getEncoderName();
|
/**
|
||||||
|
* Get the name of the encoder for then netty pipeline for this platform.
|
||||||
|
*
|
||||||
|
* @return The name
|
||||||
|
*/
|
||||||
|
String getEncoderName();
|
||||||
}
|
}
|
||||||
|
@ -15,35 +15,122 @@ import java.util.logging.Logger;
|
|||||||
* @param <T> - The player type for the platform, used for API related methods
|
* @param <T> - The player type for the platform, used for API related methods
|
||||||
*/
|
*/
|
||||||
public interface ViaPlatform<T> {
|
public interface ViaPlatform<T> {
|
||||||
|
/**
|
||||||
|
* Get the logger for this platform
|
||||||
|
*
|
||||||
|
* @return Java Logger (may be a wrapper)
|
||||||
|
*/
|
||||||
Logger getLogger();
|
Logger getLogger();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the platform name
|
||||||
|
*
|
||||||
|
* @return Platform Name (simply its name)
|
||||||
|
*/
|
||||||
String getPlatformName();
|
String getPlatformName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the plugin version
|
||||||
|
*
|
||||||
|
* @return Plugin version as a semver string
|
||||||
|
*/
|
||||||
String getPluginVersion();
|
String getPluginVersion();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run a task Async
|
||||||
|
*
|
||||||
|
* @param runnable The task to run
|
||||||
|
* @return The Task ID
|
||||||
|
*/
|
||||||
int runAsync(Runnable runnable);
|
int runAsync(Runnable runnable);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run a task Sync
|
||||||
|
*
|
||||||
|
* @param runnable The task to run
|
||||||
|
* @return The Task ID
|
||||||
|
*/
|
||||||
int runSync(Runnable runnable);
|
int runSync(Runnable runnable);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Run a task at a repeating interval.
|
||||||
|
* Initial interval is the same as repeat.
|
||||||
|
*
|
||||||
|
* @param runnable The task to run
|
||||||
|
* @param ticks The interval to run it at
|
||||||
|
* @return The Task ID
|
||||||
|
*/
|
||||||
int runRepeatingSync(Runnable runnable, Long ticks);
|
int runRepeatingSync(Runnable runnable, Long ticks);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cancel a task
|
||||||
|
*
|
||||||
|
* @param taskId The task ID to cancel
|
||||||
|
*/
|
||||||
void cancelTask(int taskId);
|
void cancelTask(int taskId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the online players
|
||||||
|
*
|
||||||
|
* @return Array of ViaCommandSender
|
||||||
|
*/
|
||||||
ViaCommandSender[] getOnlinePlayers();
|
ViaCommandSender[] getOnlinePlayers();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send a message to a player
|
||||||
|
*
|
||||||
|
* @param uuid The player's UUID
|
||||||
|
* @param message The message to send
|
||||||
|
*/
|
||||||
void sendMessage(UUID uuid, String message);
|
void sendMessage(UUID uuid, String message);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Kick a player for a reason
|
||||||
|
*
|
||||||
|
* @param uuid The player's UUID
|
||||||
|
* @param message The message to kick them with
|
||||||
|
* @return True if it was successful
|
||||||
|
*/
|
||||||
boolean kickPlayer(UUID uuid, String message);
|
boolean kickPlayer(UUID uuid, String message);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the plugin is enabled.
|
||||||
|
*
|
||||||
|
* @return True if it is enabled
|
||||||
|
*/
|
||||||
boolean isPluginEnabled();
|
boolean isPluginEnabled();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the API for this platform
|
||||||
|
*
|
||||||
|
* @return The API for the platform
|
||||||
|
*/
|
||||||
ViaAPI<T> getApi();
|
ViaAPI<T> getApi();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the config API for this platform
|
||||||
|
*
|
||||||
|
* @return The config API
|
||||||
|
*/
|
||||||
ViaVersionConfig getConf();
|
ViaVersionConfig getConf();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the backend configuration provider for this platform.
|
||||||
|
* (On some platforms this returns the same as getConf())
|
||||||
|
*
|
||||||
|
* @return The configuration provider
|
||||||
|
*/
|
||||||
ConfigurationProvider getConfigurationProvider();
|
ConfigurationProvider getConfigurationProvider();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a reload happens
|
||||||
|
*/
|
||||||
void onReload();
|
void onReload();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the JSON data required for /viaversion dump
|
||||||
|
*
|
||||||
|
* @return The json data
|
||||||
|
*/
|
||||||
JsonObject getDump();
|
JsonObject getDump();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package us.myles.ViaVersion.api.platform;
|
package us.myles.ViaVersion.api.platform;
|
||||||
|
|
||||||
public interface ViaPlatformLoader {
|
public interface ViaPlatformLoader {
|
||||||
public void load();
|
/**
|
||||||
|
* Initialise the loading for a platform, eg. registering listeners / providers / events etc.
|
||||||
|
*/
|
||||||
|
void load();
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,8 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class ViaProviders {
|
public class ViaProviders {
|
||||||
private Map<Class<? extends Provider>, Provider> providers = new HashMap<>();
|
private final Map<Class<? extends Provider>, Provider> providers = new HashMap<>();
|
||||||
private List<Class<? extends Provider>> lonelyProviders = new ArrayList<>();
|
private final List<Class<? extends Provider>> lonelyProviders = new ArrayList<>();
|
||||||
|
|
||||||
public void require(Class<? extends Provider> provider) {
|
public void require(Class<? extends Provider> provider) {
|
||||||
lonelyProviders.add(provider);
|
lonelyProviders.add(provider);
|
||||||
|
@ -16,8 +16,8 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public abstract class Protocol {
|
public abstract class Protocol {
|
||||||
private Map<Pair<State, Integer>, ProtocolPacket> incoming = new HashMap<>();
|
private final Map<Pair<State, Integer>, ProtocolPacket> incoming = new HashMap<>();
|
||||||
private Map<Pair<State, Integer>, ProtocolPacket> outgoing = new HashMap<>();
|
private final Map<Pair<State, Integer>, ProtocolPacket> outgoing = new HashMap<>();
|
||||||
|
|
||||||
public Protocol() {
|
public Protocol() {
|
||||||
registerPackets();
|
registerPackets();
|
||||||
|
@ -20,10 +20,10 @@ public class ProtocolRegistry {
|
|||||||
public static final Protocol BASE_PROTOCOL = new BaseProtocol();
|
public static final Protocol BASE_PROTOCOL = new BaseProtocol();
|
||||||
public static int SERVER_PROTOCOL = -1;
|
public static int SERVER_PROTOCOL = -1;
|
||||||
// Input Version -> Output Version & Protocol (Allows fast lookup)
|
// Input Version -> Output Version & Protocol (Allows fast lookup)
|
||||||
private static Map<Integer, Map<Integer, Protocol>> registryMap = new ConcurrentHashMap<>();
|
private static final Map<Integer, Map<Integer, Protocol>> registryMap = new ConcurrentHashMap<>();
|
||||||
private static Map<Pair<Integer, Integer>, List<Pair<Integer, Protocol>>> pathCache = new ConcurrentHashMap<>();
|
private static final Map<Pair<Integer, Integer>, List<Pair<Integer, Protocol>>> pathCache = new ConcurrentHashMap<>();
|
||||||
private static List<Protocol> registerList = Lists.newCopyOnWriteArrayList();
|
private static final List<Protocol> registerList = Lists.newCopyOnWriteArrayList();
|
||||||
private static Set<Integer> supportedVersions = Sets.newConcurrentHashSet();
|
private static final Set<Integer> supportedVersions = Sets.newConcurrentHashSet();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
// Base Protocol
|
// Base Protocol
|
||||||
|
@ -9,7 +9,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public abstract class PacketRemapper {
|
public abstract class PacketRemapper {
|
||||||
private List<Pair<ValueReader, ValueWriter>> valueRemappers = new ArrayList<>();
|
private final List<Pair<ValueReader, ValueWriter>> valueRemappers = new ArrayList<>();
|
||||||
|
|
||||||
public PacketRemapper() {
|
public PacketRemapper() {
|
||||||
registerMap();
|
registerMap();
|
||||||
|
@ -9,10 +9,10 @@ public class Types1_8 {
|
|||||||
/**
|
/**
|
||||||
* Metadata list type for 1.8
|
* Metadata list type for 1.8
|
||||||
*/
|
*/
|
||||||
public static Type<List<Metadata>> METADATA_LIST = new MetadataList1_8Type();
|
public static final Type<List<Metadata>> METADATA_LIST = new MetadataList1_8Type();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Metadata type for 1.8
|
* Metadata type for 1.8
|
||||||
*/
|
*/
|
||||||
public static Type<Metadata> METADATA = new Metadata1_8Type();
|
public static final Type<Metadata> METADATA = new Metadata1_8Type();
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ import us.myles.ViaVersion.commands.defaultsubs.*;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public abstract class ViaCommandHandler implements ViaVersionCommand {
|
public abstract class ViaCommandHandler implements ViaVersionCommand {
|
||||||
private Map<String, ViaSubCommand> commandMap;
|
private final Map<String, ViaSubCommand> commandMap;
|
||||||
|
|
||||||
public ViaCommandHandler() {
|
public ViaCommandHandler() {
|
||||||
commandMap = new HashMap<>();
|
commandMap = new HashMap<>();
|
||||||
@ -49,14 +49,14 @@ public abstract class ViaCommandHandler implements ViaVersionCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!hasSubCommand(args[0])) {
|
if (!hasSubCommand(args[0])) {
|
||||||
sender.sendMessage(color("&cThis command is not found"));
|
sender.sendMessage(color("&cThis commands is not found"));
|
||||||
showHelp(sender);
|
showHelp(sender);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
ViaSubCommand handler = getSubCommand(args[0]);
|
ViaSubCommand handler = getSubCommand(args[0]);
|
||||||
|
|
||||||
if (!hasPermission(sender, handler.permission())) {
|
if (!hasPermission(sender, handler.permission())) {
|
||||||
sender.sendMessage(color("&cYou are not allowed to use this command!"));
|
sender.sendMessage(color("&cYou are not allowed to use this commands!"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,10 +100,14 @@ public abstract class ViaCommandHandler implements ViaVersionCommand {
|
|||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shows the ViaVersion help to a sender
|
||||||
|
* @param sender The sender to send the help to
|
||||||
|
*/
|
||||||
public void showHelp(ViaCommandSender sender) {
|
public void showHelp(ViaCommandSender sender) {
|
||||||
Set<ViaSubCommand> allowed = calculateAllowedCommands(sender);
|
Set<ViaSubCommand> allowed = calculateAllowedCommands(sender);
|
||||||
if (allowed.size() == 0) {
|
if (allowed.size() == 0) {
|
||||||
sender.sendMessage(color("&cYou are not allowed to use this command!"));
|
sender.sendMessage(color("&cYou are not allowed to use this commands!"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sender.sendMessage(color("&aViaVersion &c" + Via.getPlatform().getPluginVersion()));
|
sender.sendMessage(color("&aViaVersion &c" + Via.getPlatform().getPluginVersion()));
|
||||||
@ -137,6 +141,12 @@ public abstract class ViaCommandHandler implements ViaVersionCommand {
|
|||||||
registerSubCommand(new ReloadSubCmd());
|
registerSubCommand(new ReloadSubCmd());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replaces colour codes in a string
|
||||||
|
*
|
||||||
|
* @param string String to replace
|
||||||
|
* @return The output String
|
||||||
|
*/
|
||||||
public static String color(String string) {
|
public static String color(String string) {
|
||||||
try {
|
try {
|
||||||
string = ChatColor.translateAlternateColorCodes('&', string); //Dont replace all & with $ like we did before.
|
string = ChatColor.translateAlternateColorCodes('&', string); //Dont replace all & with $ like we did before.
|
||||||
@ -145,6 +155,13 @@ public abstract class ViaCommandHandler implements ViaVersionCommand {
|
|||||||
return string;
|
return string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send a colour coded string with replacements to a user
|
||||||
|
*
|
||||||
|
* @param sender The target to send the message to
|
||||||
|
* @param message The message
|
||||||
|
* @param args The objects to replace
|
||||||
|
*/
|
||||||
public static void sendMessage(@NonNull ViaCommandSender sender, String message, Object... args) {
|
public static void sendMessage(@NonNull ViaCommandSender sender, String message, Object... args) {
|
||||||
sender.sendMessage(color(args == null ? message : String.format(message, args)));
|
sender.sendMessage(color(args == null ? message : String.format(message, args)));
|
||||||
}
|
}
|
||||||
|
@ -32,8 +32,6 @@ public class PPSSubCmd extends ViaSubCommand {
|
|||||||
long max = 0;
|
long max = 0;
|
||||||
|
|
||||||
for (ViaCommandSender p : Via.getPlatform().getOnlinePlayers()) {
|
for (ViaCommandSender p : Via.getPlatform().getOnlinePlayers()) {
|
||||||
if (!Via.getAPI().isPorted(p.getUUID()))
|
|
||||||
continue;
|
|
||||||
int playerVersion = Via.getAPI().getPlayerVersion(p.getUUID());
|
int playerVersion = Via.getAPI().getPlayerVersion(p.getUUID());
|
||||||
if (!playerVersions.containsKey(playerVersion))
|
if (!playerVersions.containsKey(playerVersion))
|
||||||
playerVersions.put(playerVersion, new HashSet<String>());
|
playerVersions.put(playerVersion, new HashSet<String>());
|
||||||
|
@ -4,7 +4,7 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class InformativeException extends Exception {
|
public class InformativeException extends Exception {
|
||||||
Map<String, Object> info = new HashMap<>();
|
final Map<String, Object> info = new HashMap<>();
|
||||||
int sources = 0;
|
int sources = 0;
|
||||||
|
|
||||||
public InformativeException(Throwable cause) {
|
public InformativeException(Throwable cause) {
|
||||||
|
@ -140,8 +140,8 @@ public enum PacketType {
|
|||||||
PLAY_SET_COMPRESSION(State.PLAY, Direction.OUTGOING, 0x46, -1),
|
PLAY_SET_COMPRESSION(State.PLAY, Direction.OUTGOING, 0x46, -1),
|
||||||
PLAY_UPDATE_ENTITY_NBT(State.PLAY, Direction.OUTGOING, 0x49, -1);
|
PLAY_UPDATE_ENTITY_NBT(State.PLAY, Direction.OUTGOING, 0x49, -1);
|
||||||
|
|
||||||
private static HashMap<Short, PacketType> oldids = new HashMap<>();
|
private static final HashMap<Short, PacketType> oldids = new HashMap<>();
|
||||||
private static HashMap<Short, PacketType> newids = new HashMap<>();
|
private static final HashMap<Short, PacketType> newids = new HashMap<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
for (PacketType pt : PacketType.values()) {
|
for (PacketType pt : PacketType.values()) {
|
||||||
|
@ -28,7 +28,7 @@ import java.util.UUID;
|
|||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
public class BaseProtocol extends Protocol {
|
public class BaseProtocol extends Protocol {
|
||||||
private static Gson gson = new GsonBuilder().create(); // TODO: Possibly global gson provider?
|
private final static Gson gson = new GsonBuilder().create(); // TODO: Possibly global gson provider?
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void registerPackets() {
|
protected void registerPackets() {
|
||||||
@ -198,11 +198,6 @@ public class BaseProtocol extends Protocol {
|
|||||||
// Nothing gets added, ProtocolPipeline handles ProtocolInfo
|
// Nothing gets added, ProtocolPipeline handles ProtocolInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void registerListeners() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void transform(Direction direction, State state, PacketWrapper packetWrapper) throws Exception {
|
public void transform(Direction direction, State state, PacketWrapper packetWrapper) throws Exception {
|
||||||
super.transform(direction, state, packetWrapper);
|
super.transform(direction, state, packetWrapper);
|
||||||
|
@ -23,13 +23,13 @@ public class Protocol1_10To1_9_3_4 extends Protocol {
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public static final Type<Metadata> METADATA = new Metadata1_9Type();
|
public static final Type<Metadata> METADATA = new Metadata1_9Type();
|
||||||
|
|
||||||
public static ValueTransformer<Short, Float> toNewPitch = new ValueTransformer<Short, Float>(Type.FLOAT) {
|
public static final ValueTransformer<Short, Float> toNewPitch = new ValueTransformer<Short, Float>(Type.FLOAT) {
|
||||||
@Override
|
@Override
|
||||||
public Float transform(PacketWrapper wrapper, Short inputValue) throws Exception {
|
public Float transform(PacketWrapper wrapper, Short inputValue) throws Exception {
|
||||||
return inputValue / 63.5F;
|
return inputValue / 63.5F;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
public static ValueTransformer<List<Metadata>, List<Metadata>> transformMetadata = new ValueTransformer<List<Metadata>, List<Metadata>>(Types1_9.METADATA_LIST) {
|
public static final ValueTransformer<List<Metadata>, List<Metadata>> transformMetadata = new ValueTransformer<List<Metadata>, List<Metadata>>(Types1_9.METADATA_LIST) {
|
||||||
@Override
|
@Override
|
||||||
public List<Metadata> transform(PacketWrapper wrapper, List<Metadata> inputValue) throws Exception {
|
public List<Metadata> transform(PacketWrapper wrapper, List<Metadata> inputValue) throws Exception {
|
||||||
List<Metadata> metaList = new CopyOnWriteArrayList<>(inputValue);
|
List<Metadata> metaList = new CopyOnWriteArrayList<>(inputValue);
|
||||||
|
@ -103,7 +103,7 @@ public class ChunkSection1_9_3_4 implements ChunkSection {
|
|||||||
* </ul>
|
* </ul>
|
||||||
*
|
*
|
||||||
* @param input The buffer to read from.
|
* @param input The buffer to read from.
|
||||||
* @throws Exception
|
* @throws Exception If it fails to read
|
||||||
*/
|
*/
|
||||||
public void readBlocks(ByteBuf input) throws Exception {
|
public void readBlocks(ByteBuf input) throws Exception {
|
||||||
palette.clear();
|
palette.clear();
|
||||||
|
@ -103,7 +103,7 @@ public class ChunkSection1_9_1_2 implements ChunkSection {
|
|||||||
* </ul>
|
* </ul>
|
||||||
*
|
*
|
||||||
* @param input The buffer to read from.
|
* @param input The buffer to read from.
|
||||||
* @throws Exception
|
* @throws Exception If it failed to read properly
|
||||||
*/
|
*/
|
||||||
public void readBlocks(ByteBuf input) throws Exception {
|
public void readBlocks(ByteBuf input) throws Exception {
|
||||||
palette.clear();
|
palette.clear();
|
||||||
|
@ -14,7 +14,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
* It requires now to have all tile entity data included in the chunk packet, otherwise it'll crash.
|
* It requires now to have all tile entity data included in the chunk packet, otherwise it'll crash.
|
||||||
*/
|
*/
|
||||||
public class FakeTileEntity {
|
public class FakeTileEntity {
|
||||||
private static Map<Integer, CompoundTag> tileEntities = new ConcurrentHashMap<>();
|
private static final Map<Integer, CompoundTag> tileEntities = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
register(Arrays.asList(61, 62), "Furnace");
|
register(Arrays.asList(61, 62), "Furnace");
|
||||||
|
@ -72,9 +72,7 @@ public class Chunk1_9_1_2Type extends PartialType<Chunk, ClientWorld> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(ByteBuf output, ClientWorld world, Chunk input) throws Exception {
|
public void write(ByteBuf output, ClientWorld world, Chunk chunk) throws Exception {
|
||||||
Chunk chunk = input;
|
|
||||||
|
|
||||||
output.writeInt(chunk.getX());
|
output.writeInt(chunk.getX());
|
||||||
output.writeInt(chunk.getZ());
|
output.writeInt(chunk.getZ());
|
||||||
|
|
||||||
|
@ -44,6 +44,12 @@ public enum ArmorType {
|
|||||||
private final int id;
|
private final int id;
|
||||||
private final String type;
|
private final String type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find an armour type by the item id
|
||||||
|
* @param id ID of the item
|
||||||
|
*
|
||||||
|
* @return Return the ArmourType, ArmourType.NONE if not found
|
||||||
|
*/
|
||||||
public static ArmorType findById(int id) {
|
public static ArmorType findById(int id) {
|
||||||
for (ArmorType a : ArmorType.values())
|
for (ArmorType a : ArmorType.values())
|
||||||
if (a.getId() == id)
|
if (a.getId() == id)
|
||||||
@ -51,6 +57,12 @@ public enum ArmorType {
|
|||||||
return ArmorType.NONE;
|
return ArmorType.NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find an armour type by the item string
|
||||||
|
* @param type String name for the item
|
||||||
|
*
|
||||||
|
* @return Return the ArmourType, ArmourType.NONE if not found
|
||||||
|
*/
|
||||||
public static ArmorType findByType(String type) {
|
public static ArmorType findByType(String type) {
|
||||||
for (ArmorType a : ArmorType.values())
|
for (ArmorType a : ArmorType.values())
|
||||||
if (a.getType().equals(type))
|
if (a.getType().equals(type))
|
||||||
@ -58,6 +70,11 @@ public enum ArmorType {
|
|||||||
return NONE;
|
return NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if an item id is armour
|
||||||
|
* @param id The item ID
|
||||||
|
* @return True if the item is a piece of armour
|
||||||
|
*/
|
||||||
public static boolean isArmor(int id) {
|
public static boolean isArmor(int id) {
|
||||||
for (ArmorType a : ArmorType.values())
|
for (ArmorType a : ArmorType.values())
|
||||||
if (a.getId() == id)
|
if (a.getId() == id)
|
||||||
@ -65,6 +82,11 @@ public enum ArmorType {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if an item id is armour
|
||||||
|
* @param type The item material name
|
||||||
|
* @return True if the item is a piece of armour
|
||||||
|
*/
|
||||||
public static boolean isArmor(String type) {
|
public static boolean isArmor(String type) {
|
||||||
for (ArmorType a : ArmorType.values())
|
for (ArmorType a : ArmorType.values())
|
||||||
if (a.getType().equals(type))
|
if (a.getType().equals(type))
|
||||||
@ -72,6 +94,10 @@ public enum ArmorType {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the Minecraft ID for the Armour Type
|
||||||
|
* @return The ID
|
||||||
|
*/
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return this.id;
|
return this.id;
|
||||||
}
|
}
|
||||||
|
@ -28,8 +28,8 @@ public class Protocol1_9TO1_8 extends Protocol {
|
|||||||
@Deprecated
|
@Deprecated
|
||||||
public static Type<Metadata> METADATA = new Metadata1_8Type();
|
public static Type<Metadata> METADATA = new Metadata1_8Type();
|
||||||
|
|
||||||
private static Gson gson = new GsonBuilder().create();
|
private static final Gson gson = new GsonBuilder().create();
|
||||||
public static ValueTransformer<String, String> FIX_JSON = new ValueTransformer<String, String>(Type.STRING) {
|
public static final ValueTransformer<String, String> FIX_JSON = new ValueTransformer<String, String>(Type.STRING) {
|
||||||
@Override
|
@Override
|
||||||
public String transform(PacketWrapper wrapper, String line) {
|
public String transform(PacketWrapper wrapper, String line) {
|
||||||
return fixJson(line);
|
return fixJson(line);
|
||||||
|
@ -6,6 +6,12 @@ import us.myles.ViaVersion.api.data.UserConnection;
|
|||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.EntityTracker;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.EntityTracker;
|
||||||
|
|
||||||
public class ChatRewriter {
|
public class ChatRewriter {
|
||||||
|
/**
|
||||||
|
* Rewrite chat being sent to the client so that gamemode issues don't occur.
|
||||||
|
*
|
||||||
|
* @param obj The json object being sent by the server
|
||||||
|
* @param user The player involved. (Required for Gamemode info)
|
||||||
|
*/
|
||||||
public static void toClient(JsonObject obj, UserConnection user) {
|
public static void toClient(JsonObject obj, UserConnection user) {
|
||||||
//Check gamemode change
|
//Check gamemode change
|
||||||
if (obj.get("translate") != null && obj.get("translate").getAsString().equals("gameMode.changed")) {
|
if (obj.get("translate") != null && obj.get("translate").getAsString().equals("gameMode.changed")) {
|
||||||
|
@ -20,7 +20,7 @@ import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.EntityTracker;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class EntityPackets {
|
public class EntityPackets {
|
||||||
public static ValueTransformer<Byte, Short> toNewShort = new ValueTransformer<Byte, Short>(Type.SHORT) {
|
public static final ValueTransformer<Byte, Short> toNewShort = new ValueTransformer<Byte, Short>(Type.SHORT) {
|
||||||
@Override
|
@Override
|
||||||
public Short transform(PacketWrapper wrapper, Byte inputValue) {
|
public Short transform(PacketWrapper wrapper, Byte inputValue) {
|
||||||
return (short) (inputValue * 128);
|
return (short) (inputValue * 128);
|
||||||
|
@ -23,7 +23,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class SpawnPackets {
|
public class SpawnPackets {
|
||||||
public static ValueTransformer<Integer, Double> toNewDouble = new ValueTransformer<Integer, Double>(Type.DOUBLE) {
|
public static final ValueTransformer<Integer, Double> toNewDouble = new ValueTransformer<Integer, Double>(Type.DOUBLE) {
|
||||||
@Override
|
@Override
|
||||||
public Double transform(PacketWrapper wrapper, Integer inputValue) {
|
public Double transform(PacketWrapper wrapper, Integer inputValue) {
|
||||||
return inputValue / 32D;
|
return inputValue / 32D;
|
||||||
|
@ -7,10 +7,23 @@ import java.util.Arrays;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class BulkChunkTranslatorProvider implements Provider {
|
public class BulkChunkTranslatorProvider implements Provider {
|
||||||
|
/**
|
||||||
|
* Transforms a Bulk Chunk packet into Chunk Packets
|
||||||
|
*
|
||||||
|
* @param packet The NMS Packet
|
||||||
|
* @param clientChunks The ClientChunks object for the current player
|
||||||
|
* @return A List of all the output packets
|
||||||
|
*/
|
||||||
public List<Object> transformMapChunkBulk(Object packet, ClientChunks clientChunks) {
|
public List<Object> transformMapChunkBulk(Object packet, ClientChunks clientChunks) {
|
||||||
return Arrays.asList(packet);
|
return Arrays.asList(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a packet of a class should be filtered
|
||||||
|
*
|
||||||
|
* @param packet NMS Packet
|
||||||
|
* @return True if it should be filtered into transformmapChunkBulk
|
||||||
|
*/
|
||||||
public boolean isFiltered(Class<?> packet) {
|
public boolean isFiltered(Class<?> packet) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ import java.util.HashMap;
|
|||||||
|
|
||||||
public class Effect {
|
public class Effect {
|
||||||
|
|
||||||
private static HashMap<Integer, Integer> effects;
|
private final static HashMap<Integer, Integer> effects;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
effects = new HashMap<>();
|
effects = new HashMap<>();
|
||||||
|
@ -98,9 +98,7 @@ public class EntityTracker extends StoredObject {
|
|||||||
public boolean interactedBlockRecently(int x, int y, int z) {
|
public boolean interactedBlockRecently(int x, int y, int z) {
|
||||||
if (blockInteractions.size() == 0)
|
if (blockInteractions.size() == 0)
|
||||||
return false;
|
return false;
|
||||||
Iterator<Position> it = blockInteractions.asMap().keySet().iterator();
|
for (Position p : blockInteractions.asMap().keySet()) {
|
||||||
while (it.hasNext()) {
|
|
||||||
Position p = it.next();
|
|
||||||
if (p.getX() == x)
|
if (p.getX() == x)
|
||||||
if (p.getY() == y)
|
if (p.getY() == y)
|
||||||
if (p.getZ() == z)
|
if (p.getZ() == z)
|
||||||
|
@ -16,10 +16,19 @@ public class PlaceBlockTracker extends StoredObject {
|
|||||||
super(user);
|
super(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a certain amount of time has passed
|
||||||
|
*
|
||||||
|
* @param ms The amount of time in MS
|
||||||
|
* @return True if it has passed
|
||||||
|
*/
|
||||||
public boolean isExpired(int ms) {
|
public boolean isExpired(int ms) {
|
||||||
return System.currentTimeMillis() > (lastPlaceTimestamp + ms);
|
return System.currentTimeMillis() > (lastPlaceTimestamp + ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the last place time to the current time
|
||||||
|
*/
|
||||||
public void updateTime() {
|
public void updateTime() {
|
||||||
lastPlaceTimestamp = System.currentTimeMillis();
|
lastPlaceTimestamp = System.currentTimeMillis();
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,8 @@ import java.util.regex.Matcher;
|
|||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
public class Version implements Comparable<Version> {
|
public class Version implements Comparable<Version> {
|
||||||
private static Pattern semVer = Pattern.compile("(?<a>0|[1-9]\\d*)\\.(?<b>0|[1-9]\\d*)(?:\\.(?<c>0|[1-9]\\d*))?(?:-(?<tag>[A-z0-9.-]*))?");
|
private static final Pattern semVer = Pattern.compile("(?<a>0|[1-9]\\d*)\\.(?<b>0|[1-9]\\d*)(?:\\.(?<c>0|[1-9]\\d*))?(?:-(?<tag>[A-z0-9.-]*))?");
|
||||||
private int[] parts = new int[3];
|
private final int[] parts = new int[3];
|
||||||
private String tag;
|
private String tag;
|
||||||
|
|
||||||
public Version(String value) {
|
public Version(String value) {
|
||||||
@ -24,6 +24,13 @@ public class Version implements Comparable<Version> {
|
|||||||
tag = matcher.group("tag") == null ? "" : matcher.group("tag");
|
tag = matcher.group("tag") == null ? "" : matcher.group("tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compare two versions
|
||||||
|
*
|
||||||
|
* @param verA The first version
|
||||||
|
* @param verB The second
|
||||||
|
* @return 0 if they are the same, 1 if versionA is newer, -1 if versionA is older
|
||||||
|
*/
|
||||||
public static int compare(Version verA, Version verB) {
|
public static int compare(Version verA, Version verB) {
|
||||||
if (verA == verB) return 0;
|
if (verA == verB) return 0;
|
||||||
if (verA == null) return -1;
|
if (verA == null) return -1;
|
||||||
@ -47,6 +54,13 @@ public class Version implements Comparable<Version> {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a version is the same
|
||||||
|
*
|
||||||
|
* @param verA The first
|
||||||
|
* @param verB The second
|
||||||
|
* @return True if they are the same
|
||||||
|
*/
|
||||||
public static boolean equals(Version verA, Version verB) {
|
public static boolean equals(Version verA, Version verB) {
|
||||||
return verA == verB || verA != null && verB != null && compare(verA, verB) == 0;
|
return verA == verB || verA != null && verB != null && compare(verA, verB) == 0;
|
||||||
}
|
}
|
||||||
@ -71,6 +85,11 @@ public class Version implements Comparable<Version> {
|
|||||||
return that instanceof Version && equals(this, (Version) that);
|
return that instanceof Version && equals(this, (Version) that);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the tag, eg. -ALPHA
|
||||||
|
*
|
||||||
|
* @return The version tag
|
||||||
|
*/
|
||||||
public String getTag() {
|
public String getTag() {
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,15 @@ public class PipelineUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Call the decode method on a netty ByteToMessageDecoder
|
||||||
|
*
|
||||||
|
* @param decoder The decoder
|
||||||
|
* @param ctx The current context
|
||||||
|
* @param input The packet to decode
|
||||||
|
* @return A list of the decoders output
|
||||||
|
* @throws InvocationTargetException If an exception happens while executing
|
||||||
|
*/
|
||||||
public static List<Object> callDecode(ByteToMessageDecoder decoder, ChannelHandlerContext ctx, Object input) throws InvocationTargetException {
|
public static List<Object> callDecode(ByteToMessageDecoder decoder, ChannelHandlerContext ctx, Object input) throws InvocationTargetException {
|
||||||
List<Object> output = new ArrayList<>();
|
List<Object> output = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
@ -42,6 +51,15 @@ public class PipelineUtil {
|
|||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Call the encode method on a netty MessageToByteEncoder
|
||||||
|
*
|
||||||
|
* @param encoder The encoder
|
||||||
|
* @param ctx The current context
|
||||||
|
* @param msg The packet to encode
|
||||||
|
* @param output The bytebuf to write the output to
|
||||||
|
* @throws InvocationTargetException If an exception happens while executing
|
||||||
|
*/
|
||||||
public static void callEncode(MessageToByteEncoder encoder, ChannelHandlerContext ctx, Object msg, ByteBuf output) throws InvocationTargetException {
|
public static void callEncode(MessageToByteEncoder encoder, ChannelHandlerContext ctx, Object msg, ByteBuf output) throws InvocationTargetException {
|
||||||
try {
|
try {
|
||||||
PipelineUtil.ENCODE_METHOD.invoke(encoder, ctx, msg, output);
|
PipelineUtil.ENCODE_METHOD.invoke(encoder, ctx, msg, output);
|
||||||
@ -50,6 +68,13 @@ public class PipelineUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a stack trace contains a certain exception
|
||||||
|
*
|
||||||
|
* @param t The throwable
|
||||||
|
* @param c The exception to look for
|
||||||
|
* @return True if the stack trace contained it as its cause.
|
||||||
|
*/
|
||||||
public static boolean containsCause(Throwable t, Class<? extends Throwable> c) {
|
public static boolean containsCause(Throwable t, Class<? extends Throwable> c) {
|
||||||
while (t != null) {
|
while (t != null) {
|
||||||
t = t.getCause();
|
t = t.getCause();
|
||||||
@ -59,6 +84,13 @@ public class PipelineUtil {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the context for a the channel handler before a certain name.
|
||||||
|
*
|
||||||
|
* @param name The name of the channel handler
|
||||||
|
* @param pipeline The pipeline to target
|
||||||
|
* @return The ChannelHandler before the one requested.
|
||||||
|
*/
|
||||||
public static ChannelHandlerContext getContextBefore(String name, ChannelPipeline pipeline) {
|
public static ChannelHandlerContext getContextBefore(String name, ChannelPipeline pipeline) {
|
||||||
boolean mark = false;
|
boolean mark = false;
|
||||||
for (String s : pipeline.names()) {
|
for (String s : pipeline.names()) {
|
||||||
|
@ -20,6 +20,13 @@ import us.myles.ViaVersion.api.configuration.ConfigurationProvider;
|
|||||||
import us.myles.ViaVersion.api.platform.ViaPlatform;
|
import us.myles.ViaVersion.api.platform.ViaPlatform;
|
||||||
import us.myles.ViaVersion.dump.PluginInfo;
|
import us.myles.ViaVersion.dump.PluginInfo;
|
||||||
import us.myles.ViaVersion.sponge.*;
|
import us.myles.ViaVersion.sponge.*;
|
||||||
|
import us.myles.ViaVersion.sponge.commands.SpongeCommandHandler;
|
||||||
|
import us.myles.ViaVersion.sponge.commands.SpongeCommandSender;
|
||||||
|
import us.myles.ViaVersion.sponge.platform.SpongeConfigAPI;
|
||||||
|
import us.myles.ViaVersion.sponge.platform.SpongeViaAPI;
|
||||||
|
import us.myles.ViaVersion.sponge.platform.SpongeViaInjector;
|
||||||
|
import us.myles.ViaVersion.sponge.platform.SpongeViaLoader;
|
||||||
|
import us.myles.ViaVersion.sponge.util.LoggerWrapper;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.sponge;
|
package us.myles.ViaVersion.sponge.commands;
|
||||||
|
|
||||||
import org.spongepowered.api.command.CommandCallable;
|
import org.spongepowered.api.command.CommandCallable;
|
||||||
import org.spongepowered.api.command.CommandException;
|
import org.spongepowered.api.command.CommandException;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.sponge;
|
package us.myles.ViaVersion.sponge.commands;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.spongepowered.api.command.CommandSource;
|
import org.spongepowered.api.command.CommandSource;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.sponge;
|
package us.myles.ViaVersion.sponge.platform;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.spongepowered.api.entity.living.player.Player;
|
import org.spongepowered.api.entity.living.player.Player;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.sponge;
|
package us.myles.ViaVersion.sponge.platform;
|
||||||
|
|
||||||
import org.yaml.snakeyaml.Yaml;
|
import org.yaml.snakeyaml.Yaml;
|
||||||
import us.myles.ViaVersion.api.ViaVersionConfig;
|
import us.myles.ViaVersion.api.ViaVersionConfig;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.sponge;
|
package us.myles.ViaVersion.sponge.platform;
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.sponge;
|
package us.myles.ViaVersion.sponge.platform;
|
||||||
|
|
||||||
import io.netty.channel.ChannelFuture;
|
import io.netty.channel.ChannelFuture;
|
||||||
import io.netty.channel.ChannelHandler;
|
import io.netty.channel.ChannelHandler;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.sponge;
|
package us.myles.ViaVersion.sponge.platform;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.spongepowered.api.Sponge;
|
import org.spongepowered.api.Sponge;
|
@ -1,4 +1,4 @@
|
|||||||
package us.myles.ViaVersion.sponge;
|
package us.myles.ViaVersion.sponge.util;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren