Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-11-20 06:50:08 +01:00
Asynchronously load mappings (until needed), create optional mappings cache for VB
Dieser Commit ist enthalten in:
Ursprung
b5e5118450
Commit
e658304405
@ -10,6 +10,7 @@ import us.myles.ViaVersion.api.Via;
|
|||||||
import us.myles.ViaVersion.api.ViaAPI;
|
import us.myles.ViaVersion.api.ViaAPI;
|
||||||
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.data.MappingDataLoader;
|
||||||
import us.myles.ViaVersion.api.platform.TaskId;
|
import us.myles.ViaVersion.api.platform.TaskId;
|
||||||
import us.myles.ViaVersion.api.platform.ViaPlatform;
|
import us.myles.ViaVersion.api.platform.ViaPlatform;
|
||||||
import us.myles.ViaVersion.bukkit.classgenerator.ClassGenerator;
|
import us.myles.ViaVersion.bukkit.classgenerator.ClassGenerator;
|
||||||
@ -82,6 +83,10 @@ public class ViaVersionPlugin extends JavaPlugin implements ViaPlatform {
|
|||||||
compatSpigotBuild = false;
|
compatSpigotBuild = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (getServer().getPluginManager().getPlugin("ViaBackwards") != null) {
|
||||||
|
MappingDataLoader.setCacheJsonMappings(true);
|
||||||
|
}
|
||||||
|
|
||||||
// Generate classes needed (only works if it's compat or ps)
|
// Generate classes needed (only works if it's compat or ps)
|
||||||
ClassGenerator.generate();
|
ClassGenerator.generate();
|
||||||
lateBind = !BukkitViaInjector.isBinded();
|
lateBind = !BukkitViaInjector.isBinded();
|
||||||
|
@ -12,6 +12,7 @@ import us.myles.ViaVersion.api.Via;
|
|||||||
import us.myles.ViaVersion.api.ViaAPI;
|
import us.myles.ViaVersion.api.ViaAPI;
|
||||||
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.data.MappingDataLoader;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.api.platform.TaskId;
|
import us.myles.ViaVersion.api.platform.TaskId;
|
||||||
import us.myles.ViaVersion.api.platform.ViaPlatform;
|
import us.myles.ViaVersion.api.platform.ViaPlatform;
|
||||||
@ -37,7 +38,7 @@ public class BungeePlugin extends Plugin implements ViaPlatform, Listener {
|
|||||||
@Override
|
@Override
|
||||||
public void onLoad() {
|
public void onLoad() {
|
||||||
try {
|
try {
|
||||||
ProtocolConstants.class.getField("MINECRAFT_1_14_4");
|
ProtocolConstants.class.getField("MINECRAFT_1_15_2");
|
||||||
} catch (NoSuchFieldException e) {
|
} catch (NoSuchFieldException e) {
|
||||||
getLogger().warning(" / \\");
|
getLogger().warning(" / \\");
|
||||||
getLogger().warning(" / \\");
|
getLogger().warning(" / \\");
|
||||||
@ -47,10 +48,12 @@ public class BungeePlugin extends Plugin implements ViaPlatform, Listener {
|
|||||||
getLogger().warning(" / o \\");
|
getLogger().warning(" / o \\");
|
||||||
getLogger().warning("/_____________\\");
|
getLogger().warning("/_____________\\");
|
||||||
}
|
}
|
||||||
|
|
||||||
api = new BungeeViaAPI();
|
api = new BungeeViaAPI();
|
||||||
config = new BungeeViaConfig(getDataFolder());
|
config = new BungeeViaConfig(getDataFolder());
|
||||||
commandHandler = new BungeeCommandHandler();
|
commandHandler = new BungeeCommandHandler();
|
||||||
ProxyServer.getInstance().getPluginManager().registerCommand(this, new BungeeCommand(commandHandler));
|
ProxyServer.getInstance().getPluginManager().registerCommand(this, new BungeeCommand(commandHandler));
|
||||||
|
|
||||||
// Init platform
|
// Init platform
|
||||||
Via.init(ViaManager.builder()
|
Via.init(ViaManager.builder()
|
||||||
.platform(this)
|
.platform(this)
|
||||||
@ -62,6 +65,10 @@ public class BungeePlugin extends Plugin implements ViaPlatform, Listener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
|
if (ProxyServer.getInstance().getPluginManager().getPlugin("ViaBackwards") != null) {
|
||||||
|
MappingDataLoader.setCacheJsonMappings(true);
|
||||||
|
}
|
||||||
|
|
||||||
// Inject
|
// Inject
|
||||||
Via.getManager().init();
|
Via.getManager().init();
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import us.myles.ViaVersion.api.platform.ViaPlatform;
|
|||||||
public class Via {
|
public class Via {
|
||||||
private static ViaPlatform platform;
|
private static ViaPlatform platform;
|
||||||
private static ViaManager manager;
|
private static ViaManager manager;
|
||||||
|
private static boolean cacheJsonMappings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register the ViaManager associated with the platform.
|
* Register the ViaManager associated with the platform.
|
||||||
|
@ -5,10 +5,36 @@ import us.myles.ViaVersion.api.Via;
|
|||||||
import us.myles.ViaVersion.util.GsonUtil;
|
import us.myles.ViaVersion.util.GsonUtil;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class MappingDataLoader {
|
public class MappingDataLoader {
|
||||||
|
|
||||||
|
private static final Map<String, JsonObject> MAPPINGS_CACHE = new HashMap<>();
|
||||||
|
private static boolean cacheJsonMappings;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true if a selected number of mappings should be cached.
|
||||||
|
* If enabled, cleanup should be done after the cache is no longer needed.
|
||||||
|
*
|
||||||
|
* @return true if mappings should be cached
|
||||||
|
*/
|
||||||
|
public static boolean cacheJsonMappings() {
|
||||||
|
return cacheJsonMappings;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setCacheJsonMappings(boolean cacheJsonMappings) {
|
||||||
|
MappingDataLoader.cacheJsonMappings = cacheJsonMappings;
|
||||||
|
Via.getPlatform().getLogger().info("Enabled caching of mappingdata for ViaBackwards!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see #cacheJsonMappings()
|
||||||
|
*/
|
||||||
|
public static Map<String, JsonObject> getMappingsCache() {
|
||||||
|
return MAPPINGS_CACHE;
|
||||||
|
}
|
||||||
|
|
||||||
public static JsonObject loadFromDataDir(String name) {
|
public static JsonObject loadFromDataDir(String name) {
|
||||||
File file = new File(Via.getPlatform().getDataFolder(), name);
|
File file = new File(Via.getPlatform().getDataFolder(), name);
|
||||||
if (!file.exists()) return loadData(name);
|
if (!file.exists()) return loadData(name);
|
||||||
@ -27,10 +53,18 @@ public class MappingDataLoader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static JsonObject loadData(String name) {
|
public static JsonObject loadData(String name) {
|
||||||
|
return loadData(name, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JsonObject loadData(String name, boolean cacheIfEnabled) {
|
||||||
InputStream stream = getResource(name);
|
InputStream stream = getResource(name);
|
||||||
InputStreamReader reader = new InputStreamReader(stream);
|
InputStreamReader reader = new InputStreamReader(stream);
|
||||||
try {
|
try {
|
||||||
return GsonUtil.getGson().fromJson(reader, JsonObject.class);
|
JsonObject object = GsonUtil.getGson().fromJson(reader, JsonObject.class);
|
||||||
|
if (cacheIfEnabled && cacheJsonMappings) {
|
||||||
|
MAPPINGS_CACHE.put(name, object);
|
||||||
|
}
|
||||||
|
return object;
|
||||||
} finally {
|
} finally {
|
||||||
try {
|
try {
|
||||||
reader.close();
|
reader.close();
|
||||||
|
@ -18,8 +18,14 @@ public abstract class Protocol {
|
|||||||
private final Map<Packet, ProtocolPacket> incoming = new HashMap<>();
|
private final Map<Packet, ProtocolPacket> incoming = new HashMap<>();
|
||||||
private final Map<Packet, ProtocolPacket> outgoing = new HashMap<>();
|
private final Map<Packet, ProtocolPacket> outgoing = new HashMap<>();
|
||||||
private final Map<Class, Object> storedObjects = new HashMap<>(); // currently only used for MetadataRewriters
|
private final Map<Class, Object> storedObjects = new HashMap<>(); // currently only used for MetadataRewriters
|
||||||
|
private final boolean hasMappingDataToLoad;
|
||||||
|
|
||||||
public Protocol() {
|
public Protocol() {
|
||||||
|
this(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Protocol(boolean hasMappingDataToLoad) {
|
||||||
|
this.hasMappingDataToLoad = hasMappingDataToLoad;
|
||||||
registerPackets();
|
registerPackets();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,6 +57,14 @@ public abstract class Protocol {
|
|||||||
*/
|
*/
|
||||||
protected abstract void registerPackets();
|
protected abstract void registerPackets();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load mapping data for the protocol.
|
||||||
|
* <p>
|
||||||
|
* To be overridden if needed.
|
||||||
|
*/
|
||||||
|
protected void loadMappingData() {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle protocol registration phase, use this to register providers / tasks.
|
* Handle protocol registration phase, use this to register providers / tasks.
|
||||||
* <p>
|
* <p>
|
||||||
@ -164,6 +178,10 @@ public abstract class Protocol {
|
|||||||
cancelOutgoing(state, oldPacketID, -1);
|
cancelOutgoing(state, oldPacketID, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasMappingDataToLoad() {
|
||||||
|
return hasMappingDataToLoad;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Transform a packet using this protocol
|
* Transform a packet using this protocol
|
||||||
*
|
*
|
||||||
|
@ -2,9 +2,9 @@ package us.myles.ViaVersion.api.protocol;
|
|||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Range;
|
import com.google.common.collect.Range;
|
||||||
import com.google.common.collect.Sets;
|
|
||||||
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.data.MappingDataLoader;
|
||||||
import us.myles.ViaVersion.protocols.base.BaseProtocol;
|
import us.myles.ViaVersion.protocols.base.BaseProtocol;
|
||||||
import us.myles.ViaVersion.protocols.base.BaseProtocol1_7;
|
import us.myles.ViaVersion.protocols.base.BaseProtocol1_7;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_10to1_9_3.Protocol1_10To1_9_3_4;
|
import us.myles.ViaVersion.protocols.protocol1_10to1_9_3.Protocol1_10To1_9_3_4;
|
||||||
@ -32,7 +32,7 @@ import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9To1_8;
|
|||||||
import us.myles.ViaVersion.protocols.protocol1_9to1_9_1.Protocol1_9To1_9_1;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_9_1.Protocol1_9To1_9_1;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.*;
|
||||||
|
|
||||||
public class ProtocolRegistry {
|
public class ProtocolRegistry {
|
||||||
public static final Protocol BASE_PROTOCOL = new BaseProtocol();
|
public static final Protocol BASE_PROTOCOL = new BaseProtocol();
|
||||||
@ -40,11 +40,17 @@ public class ProtocolRegistry {
|
|||||||
// Input Version -> Output Version & Protocol (Allows fast lookup)
|
// Input Version -> Output Version & Protocol (Allows fast lookup)
|
||||||
private static final Map<Integer, Map<Integer, Protocol>> registryMap = new ConcurrentHashMap<>();
|
private static final Map<Integer, Map<Integer, Protocol>> registryMap = new ConcurrentHashMap<>();
|
||||||
private static final 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 final List<Protocol> registerList = Lists.newCopyOnWriteArrayList();
|
private static final List<Protocol> registerList = new ArrayList<>();
|
||||||
private static final Set<Integer> supportedVersions = Sets.newConcurrentHashSet();
|
private static final Set<Integer> supportedVersions = new HashSet<>();
|
||||||
private static final List<Pair<Range<Integer>, Protocol>> baseProtocols = Lists.newCopyOnWriteArrayList();
|
private static final List<Pair<Range<Integer>, Protocol>> baseProtocols = Lists.newCopyOnWriteArrayList();
|
||||||
|
|
||||||
|
private static Map<Class<? extends Protocol>, CompletableFuture<Void>> mappingLoaderFutures = new ConcurrentHashMap<>();
|
||||||
|
private static ThreadPoolExecutor mappingLoaderExecutor;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
mappingLoaderExecutor = new ThreadPoolExecutor(5, 16, 45L, TimeUnit.SECONDS, new SynchronousQueue<>());
|
||||||
|
mappingLoaderExecutor.allowCoreThreadTimeOut(true);
|
||||||
|
|
||||||
// Base Protocol
|
// Base Protocol
|
||||||
registerBaseProtocol(BASE_PROTOCOL, Range.lessThan(Integer.MIN_VALUE));
|
registerBaseProtocol(BASE_PROTOCOL, Range.lessThan(Integer.MIN_VALUE));
|
||||||
registerBaseProtocol(new BaseProtocol1_7(), Range.all());
|
registerBaseProtocol(new BaseProtocol1_7(), Range.all());
|
||||||
@ -102,15 +108,13 @@ public class ProtocolRegistry {
|
|||||||
*/
|
*/
|
||||||
public static void registerProtocol(Protocol protocol, List<Integer> supported, Integer output) {
|
public static void registerProtocol(Protocol protocol, List<Integer> supported, Integer output) {
|
||||||
// Clear cache as this may make new routes.
|
// Clear cache as this may make new routes.
|
||||||
if (!pathCache.isEmpty())
|
if (!pathCache.isEmpty()) {
|
||||||
pathCache.clear();
|
pathCache.clear();
|
||||||
|
|
||||||
for (Integer version : supported) {
|
|
||||||
if (!registryMap.containsKey(version)) {
|
|
||||||
registryMap.put(version, new HashMap<>());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
registryMap.get(version).put(output, protocol);
|
for (Integer version : supported) {
|
||||||
|
Map<Integer, Protocol> protocolMap = registryMap.computeIfAbsent(version, k -> new HashMap<>());
|
||||||
|
protocolMap.put(output, protocol);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Via.getPlatform().isPluginEnabled()) {
|
if (Via.getPlatform().isPluginEnabled()) {
|
||||||
@ -119,6 +123,21 @@ public class ProtocolRegistry {
|
|||||||
} else {
|
} else {
|
||||||
registerList.add(protocol);
|
registerList.add(protocol);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (protocol.hasMappingDataToLoad()) {
|
||||||
|
if (mappingLoaderExecutor != null) {
|
||||||
|
// Submit mapping data loading
|
||||||
|
CompletableFuture<Void> future = new CompletableFuture<>();
|
||||||
|
mappingLoaderFutures.put(protocol.getClass(), future);
|
||||||
|
mappingLoaderExecutor.execute(() -> {
|
||||||
|
protocol.loadMappingData();
|
||||||
|
future.complete(null);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// Late protocol adding - just do it on the current thread
|
||||||
|
protocol.loadMappingData();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -248,7 +267,7 @@ public class ProtocolRegistry {
|
|||||||
return protocolList;
|
return protocolList;
|
||||||
}
|
}
|
||||||
// Generate path
|
// Generate path
|
||||||
List<Pair<Integer, Protocol>> outputPath = getProtocolPath(new ArrayList<Pair<Integer, Protocol>>(), clientVersion, serverVersion);
|
List<Pair<Integer, Protocol>> outputPath = getProtocolPath(new ArrayList<>(), clientVersion, serverVersion);
|
||||||
// If it found a path, cache it.
|
// If it found a path, cache it.
|
||||||
if (outputPath != null) {
|
if (outputPath != null) {
|
||||||
pathCache.put(protocolKey, outputPath);
|
pathCache.put(protocolKey, outputPath);
|
||||||
@ -274,4 +293,53 @@ public class ProtocolRegistry {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ensure that mapping data for that protocol has already been loaded, completes it otherwise.
|
||||||
|
*
|
||||||
|
* @param protocolClass protocol class
|
||||||
|
*/
|
||||||
|
public static void completeMappingDataLoading(Class<? extends Protocol> protocolClass) throws Exception {
|
||||||
|
if (mappingLoaderFutures == null) return;
|
||||||
|
|
||||||
|
CompletableFuture<Void> future = mappingLoaderFutures.remove(protocolClass);
|
||||||
|
if (future == null) return;
|
||||||
|
|
||||||
|
future.get();
|
||||||
|
|
||||||
|
if (mappingLoaderFutures.isEmpty()) {
|
||||||
|
shutdownLoaderExecutor();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ensure that all mapping data has already been loaded, completes it otherwise.
|
||||||
|
*/
|
||||||
|
public static void completeMappingDataLoading() throws Exception {
|
||||||
|
if (mappingLoaderFutures == null) return;
|
||||||
|
|
||||||
|
for (CompletableFuture<Void> future : mappingLoaderFutures.values()) {
|
||||||
|
future.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
mappingLoaderFutures.clear();
|
||||||
|
shutdownLoaderExecutor();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void shutdownLoaderExecutor() {
|
||||||
|
mappingLoaderExecutor.shutdown();
|
||||||
|
mappingLoaderExecutor = null;
|
||||||
|
mappingLoaderFutures = null;
|
||||||
|
if (MappingDataLoader.cacheJsonMappings()) {
|
||||||
|
MappingDataLoader.getMappingsCache().clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void getMappingLoaderFuture(Class<? extends Protocol> protocolClass, Runnable runnable) {
|
||||||
|
CompletableFuture<Void> future = mappingLoaderFutures.get(protocolClass);
|
||||||
|
if (future != null) {
|
||||||
|
future.whenComplete((v, t) -> runnable.run());
|
||||||
|
} else {
|
||||||
|
runnable.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -58,6 +58,8 @@ public class BaseProtocol extends Protocol {
|
|||||||
if (protocols != null) {
|
if (protocols != null) {
|
||||||
for (Pair<Integer, Protocol> prot : protocols) {
|
for (Pair<Integer, Protocol> prot : protocols) {
|
||||||
pipeline.add(prot.getValue());
|
pipeline.add(prot.getValue());
|
||||||
|
// Ensure mapping data has already been loaded
|
||||||
|
ProtocolRegistry.completeMappingDataLoading(prot.getValue().getClass());
|
||||||
}
|
}
|
||||||
wrapper.set(Type.VAR_INT, 0, protocol);
|
wrapper.set(Type.VAR_INT, 0, protocol);
|
||||||
}
|
}
|
||||||
|
@ -42,14 +42,15 @@ import java.util.Map;
|
|||||||
|
|
||||||
public class Protocol1_13To1_12_2 extends Protocol {
|
public class Protocol1_13To1_12_2 extends Protocol {
|
||||||
|
|
||||||
public static final PacketHandler POS_TO_3_INT = new PacketHandler() {
|
public Protocol1_13To1_12_2() {
|
||||||
@Override
|
super(true);
|
||||||
public void handle(PacketWrapper wrapper) throws Exception {
|
}
|
||||||
|
|
||||||
|
public static final PacketHandler POS_TO_3_INT = wrapper -> {
|
||||||
Position position = wrapper.read(Type.POSITION);
|
Position position = wrapper.read(Type.POSITION);
|
||||||
wrapper.write(Type.INT, position.getX());
|
wrapper.write(Type.INT, position.getX());
|
||||||
wrapper.write(Type.INT, (int) position.getY());
|
wrapper.write(Type.INT, (int) position.getY());
|
||||||
wrapper.write(Type.INT, position.getZ());
|
wrapper.write(Type.INT, position.getZ());
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
public static final PacketHandler SEND_DECLARE_COMMANDS_AND_TAGS =
|
public static final PacketHandler SEND_DECLARE_COMMANDS_AND_TAGS =
|
||||||
@ -132,11 +133,6 @@ public class Protocol1_13To1_12_2 extends Protocol {
|
|||||||
SCOREBOARD_TEAM_NAME_REWRITE.put(ChatColor.UNDERLINE, ':');
|
SCOREBOARD_TEAM_NAME_REWRITE.put(ChatColor.UNDERLINE, ':');
|
||||||
SCOREBOARD_TEAM_NAME_REWRITE.put(ChatColor.ITALIC, ';');
|
SCOREBOARD_TEAM_NAME_REWRITE.put(ChatColor.ITALIC, ';');
|
||||||
SCOREBOARD_TEAM_NAME_REWRITE.put(ChatColor.RESET, '/');
|
SCOREBOARD_TEAM_NAME_REWRITE.put(ChatColor.RESET, '/');
|
||||||
|
|
||||||
MappingData.init();
|
|
||||||
ConnectionData.init();
|
|
||||||
RecipeData.init();
|
|
||||||
BlockIdData.init();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -1151,6 +1147,14 @@ public class Protocol1_13To1_12_2 extends Protocol {
|
|||||||
registerIncoming(State.PLAY, 0x20, 0x2A);
|
registerIncoming(State.PLAY, 0x20, 0x2A);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void loadMappingData() {
|
||||||
|
MappingData.init();
|
||||||
|
ConnectionData.init();
|
||||||
|
RecipeData.init();
|
||||||
|
BlockIdData.init();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init(UserConnection userConnection) {
|
public void init(UserConnection userConnection) {
|
||||||
userConnection.put(new EntityTracker1_13(userConnection));
|
userConnection.put(new EntityTracker1_13(userConnection));
|
||||||
|
@ -195,7 +195,7 @@ public class ConnectionData {
|
|||||||
public static void init() {
|
public static void init() {
|
||||||
if (!Via.getConfig().isServersideBlockConnections()) return;
|
if (!Via.getConfig().isServersideBlockConnections()) return;
|
||||||
Via.getPlatform().getLogger().info("Loading block connection mappings ...");
|
Via.getPlatform().getLogger().info("Loading block connection mappings ...");
|
||||||
JsonObject mapping1_13 = MappingDataLoader.loadData("mapping-1.13.json");
|
JsonObject mapping1_13 = MappingDataLoader.loadData("mapping-1.13.json", true);
|
||||||
JsonObject blocks1_13 = mapping1_13.getAsJsonObject("blocks");
|
JsonObject blocks1_13 = mapping1_13.getAsJsonObject("blocks");
|
||||||
for (Entry<String, JsonElement> blockState : blocks1_13.entrySet()) {
|
for (Entry<String, JsonElement> blockState : blocks1_13.entrySet()) {
|
||||||
Integer id = Integer.parseInt(blockState.getKey());
|
Integer id = Integer.parseInt(blockState.getKey());
|
||||||
|
@ -33,23 +33,19 @@ public class MappingData {
|
|||||||
public static Mappings blockMappings;
|
public static Mappings blockMappings;
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
JsonObject mapping1_12 = MappingDataLoader.loadData("mapping-1.12.json");
|
JsonObject mapping1_12 = MappingDataLoader.loadData("mapping-1.12.json", true);
|
||||||
JsonObject mapping1_13 = MappingDataLoader.loadData("mapping-1.13.json");
|
JsonObject mapping1_13 = MappingDataLoader.loadData("mapping-1.13.json", true);
|
||||||
|
Via.getPlatform().getLogger().info("Loading 1.12.2 -> 1.13 mappings...");
|
||||||
|
|
||||||
Via.getPlatform().getLogger().info("Loading 1.12.2 -> 1.13 block mapping...");
|
|
||||||
blockMappings = new BlockMappingsShortArray(mapping1_12.getAsJsonObject("blocks"), mapping1_13.getAsJsonObject("blocks"));
|
blockMappings = new BlockMappingsShortArray(mapping1_12.getAsJsonObject("blocks"), mapping1_13.getAsJsonObject("blocks"));
|
||||||
Via.getPlatform().getLogger().info("Loading 1.12.2 -> 1.13 item mapping...");
|
|
||||||
MappingDataLoader.mapIdentifiers(oldToNewItems, mapping1_12.getAsJsonObject("items"), mapping1_13.getAsJsonObject("items"));
|
MappingDataLoader.mapIdentifiers(oldToNewItems, mapping1_12.getAsJsonObject("items"), mapping1_13.getAsJsonObject("items"));
|
||||||
Via.getPlatform().getLogger().info("Loading new 1.13 tags...");
|
|
||||||
loadTags(blockTags, mapping1_13.getAsJsonObject("block_tags"));
|
loadTags(blockTags, mapping1_13.getAsJsonObject("block_tags"));
|
||||||
loadTags(itemTags, mapping1_13.getAsJsonObject("item_tags"));
|
loadTags(itemTags, mapping1_13.getAsJsonObject("item_tags"));
|
||||||
loadTags(fluidTags, mapping1_13.getAsJsonObject("fluid_tags"));
|
loadTags(fluidTags, mapping1_13.getAsJsonObject("fluid_tags"));
|
||||||
Via.getPlatform().getLogger().info("Loading 1.12.2 -> 1.13 enchantment mapping...");
|
|
||||||
loadEnchantments(oldEnchantmentsIds, mapping1_12.getAsJsonObject("enchantments"));
|
loadEnchantments(oldEnchantmentsIds, mapping1_12.getAsJsonObject("enchantments"));
|
||||||
enchantmentMappings = new Mappings(72, mapping1_12.getAsJsonObject("enchantments"), mapping1_13.getAsJsonObject("enchantments"));
|
enchantmentMappings = new Mappings(72, mapping1_12.getAsJsonObject("enchantments"), mapping1_13.getAsJsonObject("enchantments"));
|
||||||
Via.getPlatform().getLogger().info("Loading 1.12.2 -> 1.13 sound mapping...");
|
|
||||||
soundMappings = new Mappings(662, mapping1_12.getAsJsonArray("sounds"), mapping1_13.getAsJsonArray("sounds"));
|
soundMappings = new Mappings(662, mapping1_12.getAsJsonArray("sounds"), mapping1_13.getAsJsonArray("sounds"));
|
||||||
Via.getPlatform().getLogger().info("Loading 1.12.2 -> 1.13 plugin channel mappings...");
|
|
||||||
|
|
||||||
JsonObject object = MappingDataLoader.loadFromDataDir("channelmappings-1.13.json");
|
JsonObject object = MappingDataLoader.loadFromDataDir("channelmappings-1.13.json");
|
||||||
if (object != null) {
|
if (object != null) {
|
||||||
@ -64,7 +60,6 @@ public class MappingData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Via.getPlatform().getLogger().info("Loading translation mappping");
|
|
||||||
Map<String, String> translateData = GsonUtil.getGson().fromJson(
|
Map<String, String> translateData = GsonUtil.getGson().fromJson(
|
||||||
new InputStreamReader(MappingData.class.getClassLoader().getResourceAsStream("assets/viaversion/data/mapping-lang-1.12-1.13.json")),
|
new InputStreamReader(MappingData.class.getClassLoader().getResourceAsStream("assets/viaversion/data/mapping-lang-1.12-1.13.json")),
|
||||||
new TypeToken<Map<String, String>>() {
|
new TypeToken<Map<String, String>>() {
|
||||||
|
@ -19,8 +19,8 @@ import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
|
|||||||
|
|
||||||
public class Protocol1_14To1_13_2 extends Protocol {
|
public class Protocol1_14To1_13_2 extends Protocol {
|
||||||
|
|
||||||
static {
|
public Protocol1_14To1_13_2() {
|
||||||
MappingData.init();
|
super(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -254,6 +254,14 @@ public class Protocol1_14To1_13_2 extends Protocol {
|
|||||||
registerIncoming(State.PLAY, 0x2A, 0x2D);
|
registerIncoming(State.PLAY, 0x2A, 0x2D);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void loadMappingData() {
|
||||||
|
MappingData.init();
|
||||||
|
WorldPackets.air = MappingData.blockStateMappings.getNewId(0);
|
||||||
|
WorldPackets.voidAir = MappingData.blockStateMappings.getNewId(8591);
|
||||||
|
WorldPackets.caveAir = MappingData.blockStateMappings.getNewId(8592);
|
||||||
|
}
|
||||||
|
|
||||||
public static int getNewSoundId(int id) {
|
public static int getNewSoundId(int id) {
|
||||||
int newId = MappingData.soundMappings.getNewId(id);
|
int newId = MappingData.soundMappings.getNewId(id);
|
||||||
if (newId == -1) {
|
if (newId == -1) {
|
||||||
|
@ -23,26 +23,21 @@ public class MappingData {
|
|||||||
public static Set<Integer> nonFullBlocks;
|
public static Set<Integer> nonFullBlocks;
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
JsonObject mapping1_13_2 = MappingDataLoader.loadData("mapping-1.13.2.json");
|
JsonObject mapping1_13_2 = MappingDataLoader.loadData("mapping-1.13.2.json", true);
|
||||||
JsonObject mapping1_14 = MappingDataLoader.loadData("mapping-1.14.json");
|
JsonObject mapping1_14 = MappingDataLoader.loadData("mapping-1.14.json", true);
|
||||||
|
Via.getPlatform().getLogger().info("Loading 1.13.2 -> 1.14 mappings...");
|
||||||
|
|
||||||
Via.getPlatform().getLogger().info("Loading 1.13.2 -> 1.14 blockstate mapping...");
|
|
||||||
blockStateMappings = new Mappings(mapping1_13_2.getAsJsonObject("blockstates"), mapping1_14.getAsJsonObject("blockstates"));
|
blockStateMappings = new Mappings(mapping1_13_2.getAsJsonObject("blockstates"), mapping1_14.getAsJsonObject("blockstates"));
|
||||||
Via.getPlatform().getLogger().info("Loading 1.13.2 -> 1.14 block mapping...");
|
|
||||||
blockMappings = new Mappings(mapping1_13_2.getAsJsonObject("blocks"), mapping1_14.getAsJsonObject("blocks"));
|
blockMappings = new Mappings(mapping1_13_2.getAsJsonObject("blocks"), mapping1_14.getAsJsonObject("blocks"));
|
||||||
Via.getPlatform().getLogger().info("Loading 1.13.2 -> 1.14 item mapping...");
|
|
||||||
MappingDataLoader.mapIdentifiers(oldToNewItems, mapping1_13_2.getAsJsonObject("items"), mapping1_14.getAsJsonObject("items"));
|
MappingDataLoader.mapIdentifiers(oldToNewItems, mapping1_13_2.getAsJsonObject("items"), mapping1_14.getAsJsonObject("items"));
|
||||||
Via.getPlatform().getLogger().info("Loading 1.13.2 -> 1.14 sound mapping...");
|
|
||||||
soundMappings = new Mappings(mapping1_13_2.getAsJsonArray("sounds"), mapping1_14.getAsJsonArray("sounds"));
|
soundMappings = new Mappings(mapping1_13_2.getAsJsonArray("sounds"), mapping1_14.getAsJsonArray("sounds"));
|
||||||
|
|
||||||
Via.getPlatform().getLogger().info("Loading 1.14 blockstates...");
|
|
||||||
JsonObject blockStates = mapping1_14.getAsJsonObject("blockstates");
|
JsonObject blockStates = mapping1_14.getAsJsonObject("blockstates");
|
||||||
Map<String, Integer> blockStateMap = new HashMap<>(blockStates.entrySet().size());
|
Map<String, Integer> blockStateMap = new HashMap<>(blockStates.entrySet().size());
|
||||||
for (Map.Entry<String, JsonElement> entry : blockStates.entrySet()) {
|
for (Map.Entry<String, JsonElement> entry : blockStates.entrySet()) {
|
||||||
blockStateMap.put(entry.getValue().getAsString(), Integer.parseInt(entry.getKey()));
|
blockStateMap.put(entry.getValue().getAsString(), Integer.parseInt(entry.getKey()));
|
||||||
}
|
}
|
||||||
|
|
||||||
Via.getPlatform().getLogger().info("Loading 1.14 heightmap data...");
|
|
||||||
JsonObject heightMapData = MappingDataLoader.loadData("heightMapData-1.14.json");
|
JsonObject heightMapData = MappingDataLoader.loadData("heightMapData-1.14.json");
|
||||||
JsonArray motionBlocking = heightMapData.getAsJsonArray("MOTION_BLOCKING");
|
JsonArray motionBlocking = heightMapData.getAsJsonArray("MOTION_BLOCKING");
|
||||||
us.myles.ViaVersion.protocols.protocol1_14to1_13_2.data.MappingData.motionBlocking = new HashSet<>(motionBlocking.size());
|
us.myles.ViaVersion.protocols.protocol1_14to1_13_2.data.MappingData.motionBlocking = new HashSet<>(motionBlocking.size());
|
||||||
|
@ -28,11 +28,11 @@ import us.myles.ViaVersion.util.CompactArrayUtil;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
public class WorldPackets {
|
public class WorldPackets {
|
||||||
private static final int AIR = MappingData.blockStateMappings.getNewId(0);
|
|
||||||
private static final int VOID_AIR = MappingData.blockStateMappings.getNewId(8591);
|
|
||||||
private static final int CAVE_AIR = MappingData.blockStateMappings.getNewId(8592);
|
|
||||||
public static final int SERVERSIDE_VIEW_DISTANCE = 64;
|
public static final int SERVERSIDE_VIEW_DISTANCE = 64;
|
||||||
private static final byte[] FULL_LIGHT = new byte[2048];
|
private static final byte[] FULL_LIGHT = new byte[2048];
|
||||||
|
public static int air;
|
||||||
|
public static int voidAir;
|
||||||
|
public static int caveAir;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
Arrays.fill(FULL_LIGHT, (byte) 0xff);
|
Arrays.fill(FULL_LIGHT, (byte) 0xff);
|
||||||
@ -156,7 +156,7 @@ public class WorldPackets {
|
|||||||
for (int i = 0; i < section.getPaletteSize(); i++) {
|
for (int i = 0; i < section.getPaletteSize(); i++) {
|
||||||
int old = section.getPaletteEntry(i);
|
int old = section.getPaletteEntry(i);
|
||||||
int newId = Protocol1_14To1_13_2.getNewBlockStateId(old);
|
int newId = Protocol1_14To1_13_2.getNewBlockStateId(old);
|
||||||
if (!hasBlock && newId != AIR && newId != VOID_AIR && newId != CAVE_AIR) { // air, void_air, cave_air
|
if (!hasBlock && newId != air && newId != voidAir && newId != caveAir) { // air, void_air, cave_air
|
||||||
hasBlock = true;
|
hasBlock = true;
|
||||||
}
|
}
|
||||||
section.setPaletteEntry(i, newId);
|
section.setPaletteEntry(i, newId);
|
||||||
@ -171,7 +171,7 @@ public class WorldPackets {
|
|||||||
for (int y = 0; y < 16; y++) {
|
for (int y = 0; y < 16; y++) {
|
||||||
for (int z = 0; z < 16; z++) {
|
for (int z = 0; z < 16; z++) {
|
||||||
int id = section.getFlatBlock(x, y, z);
|
int id = section.getFlatBlock(x, y, z);
|
||||||
if (id != AIR && id != VOID_AIR && id != CAVE_AIR) {
|
if (id != air && id != voidAir && id != caveAir) {
|
||||||
nonAirBlockCount++;
|
nonAirBlockCount++;
|
||||||
worldSurface[x + z * 16] = y + s * 16 + 1; // +1 (top of the block)
|
worldSurface[x + z * 16] = y + s * 16 + 1; // +1 (top of the block)
|
||||||
}
|
}
|
||||||
|
@ -21,11 +21,14 @@ import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
|
|||||||
|
|
||||||
public class Protocol1_15To1_14_4 extends Protocol {
|
public class Protocol1_15To1_14_4 extends Protocol {
|
||||||
|
|
||||||
|
public Protocol1_15To1_14_4() {
|
||||||
|
super(true);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void registerPackets() {
|
protected void registerPackets() {
|
||||||
new MetadataRewriter1_15To1_14_4(this);
|
new MetadataRewriter1_15To1_14_4(this);
|
||||||
|
|
||||||
MappingData.init();
|
|
||||||
EntityPackets.register(this);
|
EntityPackets.register(this);
|
||||||
PlayerPackets.register(this);
|
PlayerPackets.register(this);
|
||||||
WorldPackets.register(this);
|
WorldPackets.register(this);
|
||||||
@ -203,6 +206,11 @@ public class Protocol1_15To1_14_4 extends Protocol {
|
|||||||
registerOutgoing(State.PLAY, 0x59, 0x5A);
|
registerOutgoing(State.PLAY, 0x59, 0x5A);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void loadMappingData() {
|
||||||
|
MappingData.init();
|
||||||
|
}
|
||||||
|
|
||||||
public static int getNewBlockStateId(int id) {
|
public static int getNewBlockStateId(int id) {
|
||||||
int newId = MappingData.blockStateMappings.getNewId(id);
|
int newId = MappingData.blockStateMappings.getNewId(id);
|
||||||
if (newId == -1) {
|
if (newId == -1) {
|
||||||
|
@ -15,16 +15,13 @@ public class MappingData {
|
|||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
JsonObject diffmapping = MappingDataLoader.loadData("mappingdiff-1.14to1.15.json");
|
JsonObject diffmapping = MappingDataLoader.loadData("mappingdiff-1.14to1.15.json");
|
||||||
JsonObject mapping1_14 = MappingDataLoader.loadData("mapping-1.14.json");
|
JsonObject mapping1_14 = MappingDataLoader.loadData("mapping-1.14.json", true);
|
||||||
JsonObject mapping1_15 = MappingDataLoader.loadData("mapping-1.15.json");
|
JsonObject mapping1_15 = MappingDataLoader.loadData("mapping-1.15.json", true);
|
||||||
|
Via.getPlatform().getLogger().info("Loading 1.14.4 -> 1.15 mappings...");
|
||||||
|
|
||||||
Via.getPlatform().getLogger().info("Loading 1.14.4 -> 1.15 blockstate mapping...");
|
|
||||||
blockStateMappings = new Mappings(mapping1_14.getAsJsonObject("blockstates"), mapping1_15.getAsJsonObject("blockstates"), diffmapping.getAsJsonObject("blockstates"));
|
blockStateMappings = new Mappings(mapping1_14.getAsJsonObject("blockstates"), mapping1_15.getAsJsonObject("blockstates"), diffmapping.getAsJsonObject("blockstates"));
|
||||||
Via.getPlatform().getLogger().info("Loading 1.14.4 -> 1.15 block mapping...");
|
|
||||||
blockMappings = new Mappings(mapping1_14.getAsJsonObject("blocks"), mapping1_15.getAsJsonObject("blocks"));
|
blockMappings = new Mappings(mapping1_14.getAsJsonObject("blocks"), mapping1_15.getAsJsonObject("blocks"));
|
||||||
Via.getPlatform().getLogger().info("Loading 1.14.4 -> 1.15 item mapping...");
|
|
||||||
MappingDataLoader.mapIdentifiers(oldToNewItems, mapping1_14.getAsJsonObject("items"), mapping1_15.getAsJsonObject("items"));
|
MappingDataLoader.mapIdentifiers(oldToNewItems, mapping1_14.getAsJsonObject("items"), mapping1_15.getAsJsonObject("items"));
|
||||||
Via.getPlatform().getLogger().info("Loading 1.14.4 -> 1.15 sound mapping...");
|
|
||||||
soundMappings = new Mappings(mapping1_14.getAsJsonArray("sounds"), mapping1_15.getAsJsonArray("sounds"), false);
|
soundMappings = new Mappings(mapping1_14.getAsJsonArray("sounds"), mapping1_15.getAsJsonArray("sounds"), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,11 +20,14 @@ import java.util.UUID;
|
|||||||
|
|
||||||
public class Protocol1_16To1_15_2 extends Protocol {
|
public class Protocol1_16To1_15_2 extends Protocol {
|
||||||
|
|
||||||
|
public Protocol1_16To1_15_2() {
|
||||||
|
super(true);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void registerPackets() {
|
protected void registerPackets() {
|
||||||
MetadataRewriter1_16To1_15_2 metadataRewriter = new MetadataRewriter1_16To1_15_2(this);
|
MetadataRewriter1_16To1_15_2 metadataRewriter = new MetadataRewriter1_16To1_15_2(this);
|
||||||
|
|
||||||
MappingData.init();
|
|
||||||
EntityPackets.register(this);
|
EntityPackets.register(this);
|
||||||
WorldPackets.register(this);
|
WorldPackets.register(this);
|
||||||
InventoryPackets.register(this);
|
InventoryPackets.register(this);
|
||||||
@ -132,6 +135,11 @@ public class Protocol1_16To1_15_2 extends Protocol {
|
|||||||
registerOutgoing(State.PLAY, 0x4E, 0x43);
|
registerOutgoing(State.PLAY, 0x4E, 0x43);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void loadMappingData() {
|
||||||
|
MappingData.init();
|
||||||
|
}
|
||||||
|
|
||||||
public static int getNewBlockStateId(int id) {
|
public static int getNewBlockStateId(int id) {
|
||||||
int newId = MappingData.blockStateMappings.getNewId(id);
|
int newId = MappingData.blockStateMappings.getNewId(id);
|
||||||
if (newId == -1) {
|
if (newId == -1) {
|
||||||
|
@ -19,16 +19,13 @@ public class MappingData {
|
|||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
JsonObject diffmapping = MappingDataLoader.loadData("mappingdiff-1.15to1.16.json");
|
JsonObject diffmapping = MappingDataLoader.loadData("mappingdiff-1.15to1.16.json");
|
||||||
JsonObject mapping1_15 = MappingDataLoader.loadData("mapping-1.15.json");
|
JsonObject mapping1_15 = MappingDataLoader.loadData("mapping-1.15.json", true);
|
||||||
JsonObject mapping1_16 = MappingDataLoader.loadData("mapping-1.16.json");
|
JsonObject mapping1_16 = MappingDataLoader.loadData("mapping-1.16.json", true);
|
||||||
|
Via.getPlatform().getLogger().info("Loading 1.15 -> 1.16 mappings...");
|
||||||
|
|
||||||
Via.getPlatform().getLogger().info("Loading 1.15 -> 1.16 blockstate mapping...");
|
|
||||||
blockStateMappings = new Mappings(mapping1_15.getAsJsonObject("blockstates"), mapping1_16.getAsJsonObject("blockstates"), diffmapping.getAsJsonObject("blockstates"));
|
blockStateMappings = new Mappings(mapping1_15.getAsJsonObject("blockstates"), mapping1_16.getAsJsonObject("blockstates"), diffmapping.getAsJsonObject("blockstates"));
|
||||||
Via.getPlatform().getLogger().info("Loading 1.15 -> 1.16 block mapping...");
|
|
||||||
blockMappings = new Mappings(mapping1_15.getAsJsonObject("blocks"), mapping1_16.getAsJsonObject("blocks"));
|
blockMappings = new Mappings(mapping1_15.getAsJsonObject("blocks"), mapping1_16.getAsJsonObject("blocks"));
|
||||||
Via.getPlatform().getLogger().info("Loading 1.15 -> 1.16 item mapping...");
|
|
||||||
MappingDataLoader.mapIdentifiers(oldToNewItems, mapping1_15.getAsJsonObject("items"), mapping1_16.getAsJsonObject("items"), diffmapping.getAsJsonObject("items"));
|
MappingDataLoader.mapIdentifiers(oldToNewItems, mapping1_15.getAsJsonObject("items"), mapping1_16.getAsJsonObject("items"), diffmapping.getAsJsonObject("items"));
|
||||||
Via.getPlatform().getLogger().info("Loading 1.15 -> 1.16 sound mapping...");
|
|
||||||
soundMappings = new Mappings(mapping1_15.getAsJsonArray("sounds"), mapping1_16.getAsJsonArray("sounds"), diffmapping.getAsJsonObject("sounds"));
|
soundMappings = new Mappings(mapping1_15.getAsJsonArray("sounds"), mapping1_16.getAsJsonArray("sounds"), diffmapping.getAsJsonObject("sounds"));
|
||||||
|
|
||||||
attributeMappings.put("generic.maxHealth", "minecraft:generic.max_health");
|
attributeMappings.put("generic.maxHealth", "minecraft:generic.max_health");
|
||||||
|
@ -19,6 +19,7 @@ import org.spongepowered.api.text.serializer.TextSerializers;
|
|||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
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.data.MappingDataLoader;
|
||||||
import us.myles.ViaVersion.api.platform.TaskId;
|
import us.myles.ViaVersion.api.platform.TaskId;
|
||||||
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;
|
||||||
@ -68,7 +69,8 @@ public class SpongePlugin implements ViaPlatform {
|
|||||||
conf = new SpongeViaConfig(container, defaultConfig.getParentFile());
|
conf = new SpongeViaConfig(container, defaultConfig.getParentFile());
|
||||||
SpongeCommandHandler commandHandler = new SpongeCommandHandler();
|
SpongeCommandHandler commandHandler = new SpongeCommandHandler();
|
||||||
game.getCommandManager().register(this, commandHandler, "viaversion", "viaver", "vvsponge");
|
game.getCommandManager().register(this, commandHandler, "viaversion", "viaver", "vvsponge");
|
||||||
getLogger().info("ViaVersion " + getPluginVersion() + " is now loaded!");
|
logger.info("ViaVersion " + getPluginVersion() + " is now loaded!");
|
||||||
|
|
||||||
// Init platform
|
// Init platform
|
||||||
Via.init(ViaManager.builder()
|
Via.init(ViaManager.builder()
|
||||||
.platform(this)
|
.platform(this)
|
||||||
@ -80,6 +82,10 @@ public class SpongePlugin implements ViaPlatform {
|
|||||||
|
|
||||||
@Listener
|
@Listener
|
||||||
public void onServerStart(GameAboutToStartServerEvent event) {
|
public void onServerStart(GameAboutToStartServerEvent event) {
|
||||||
|
if (game.getPluginManager().getPlugin("ViaBackwards").isPresent()) {
|
||||||
|
MappingDataLoader.setCacheJsonMappings(true);
|
||||||
|
}
|
||||||
|
|
||||||
// Inject!
|
// Inject!
|
||||||
logger.info("ViaVersion is injecting!");
|
logger.info("ViaVersion is injecting!");
|
||||||
Via.getManager().init();
|
Via.getManager().init();
|
||||||
|
@ -18,6 +18,7 @@ import org.slf4j.Logger;
|
|||||||
import us.myles.ViaVersion.api.Via;
|
import us.myles.ViaVersion.api.Via;
|
||||||
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.data.MappingDataLoader;
|
||||||
import us.myles.ViaVersion.api.data.UserConnection;
|
import us.myles.ViaVersion.api.data.UserConnection;
|
||||||
import us.myles.ViaVersion.api.platform.TaskId;
|
import us.myles.ViaVersion.api.platform.TaskId;
|
||||||
import us.myles.ViaVersion.api.platform.ViaPlatform;
|
import us.myles.ViaVersion.api.platform.ViaPlatform;
|
||||||
@ -73,6 +74,11 @@ public class VelocityPlugin implements ViaPlatform<Player> {
|
|||||||
.commandHandler(commandHandler)
|
.commandHandler(commandHandler)
|
||||||
.loader(new VelocityViaLoader())
|
.loader(new VelocityViaLoader())
|
||||||
.injector(new VelocityViaInjector()).build());
|
.injector(new VelocityViaInjector()).build());
|
||||||
|
|
||||||
|
if (proxy.getPluginManager().getPlugin("ViaBackwards").isPresent()) {
|
||||||
|
MappingDataLoader.setCacheJsonMappings(true);
|
||||||
|
}
|
||||||
|
|
||||||
Via.getManager().init();
|
Via.getManager().init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren