Load NMS modules via Reflections instead of defining everything manually

This probably needs some additonal work but my idea
is that every NMS module has only one entry point.
This hopefully allows for as much freedom in version-specific
implementations as possible and allows for easily  loading them via Reflections.
This commit is contained in:
Christian Koop 2022-08-28 18:20:22 +02:00
parent e18db1d775
commit b3426a6a1a
No known key found for this signature in database
GPG Key ID: 89A8181384E010A3
28 changed files with 1118 additions and 215 deletions

View File

@ -5,7 +5,7 @@ import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import com.songoda.core.compatibility.ClassMapping;
import com.songoda.core.compatibility.ServerVersion;
import com.songoda.core.nms.NmsManager;
import com.songoda.core.nms.Nms;
import com.songoda.core.utils.TextUtils;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
@ -13,7 +13,6 @@ import org.bukkit.entity.Player;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
@ -228,7 +227,7 @@ public class ChatMessage {
Object packet;
if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_19)) {
packet = mc_PacketPlayOutChat_new.newInstance(mc_IChatBaseComponent_ChatSerializer_a.invoke(null, gson.toJson(textList)), mc_PacketPlayOutChat_new_1_19_0 ? 1 : true);
}else if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_16)) {
} else if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_16)) {
packet = mc_PacketPlayOutChat_new.newInstance(
mc_IChatBaseComponent_ChatSerializer_a.invoke(null, gson.toJson(textList)),
mc_chatMessageType_Chat.get(null),
@ -237,8 +236,8 @@ public class ChatMessage {
packet = mc_PacketPlayOutChat_new.newInstance(mc_IChatBaseComponent_ChatSerializer_a.invoke(null, gson.toJson(textList)));
}
NmsManager.getPlayer().sendPacket((Player) sender, packet);
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
Nms.getImplementations().getPlayer().sendPacket((Player) sender, packet);
} catch (ReflectiveOperationException | IllegalArgumentException ex) {
Bukkit.getLogger().log(Level.WARNING, "Problem preparing raw chat packets (disabling further packets)", ex);
enabled = false;
}

View File

@ -2,7 +2,7 @@ package com.songoda.core.gui;
import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.core.gui.methods.Clickable;
import com.songoda.core.nms.NmsManager;
import com.songoda.core.nms.Nms;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.anvil.CustomAnvil;
import org.bukkit.entity.Player;
@ -125,7 +125,7 @@ public class AnvilGui extends Gui {
@Override
protected void createInventory() {
AnvilCore nms = NmsManager.getAnvil();
AnvilCore nms = Nms.getImplementations().getAnvil();
if (nms != null) {
anvil = nms.createAnvil(player, new GuiHolder(guiManager, this));

View File

@ -0,0 +1,22 @@
package com.songoda.core.nms;
import com.songoda.core.compatibility.ServerVersion;
public class Nms {
protected static NmsImplementations impl;
/**
* @return The implementations for the current server version
*/
public static NmsImplementations getImplementations() throws UnsupportedServerVersionException {
if (impl == null) {
try {
impl = (NmsImplementations) Class.forName("com.songoda.core.nms." + ServerVersion.getServerVersionString() + ".NmsImplementationsImpl").getConstructors()[0].newInstance();
} catch (ReflectiveOperationException ex) {
throw new UnsupportedServerVersionException(ex);
}
}
return impl;
}
}

View File

@ -1,200 +0,0 @@
package com.songoda.core.nms;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.bukkit.Bukkit;
import java.util.logging.Level;
import java.util.logging.Logger;
public class NmsManager {
private static final String serverPackagePath = Bukkit.getServer().getClass().getPackage().getName();
private static final String serverPackageVersion = serverPackagePath.substring(serverPackagePath.lastIndexOf('.') + 1);
private static final NMSPlayer player;
private static final AnvilCore anvil;
private static final NBTCore nbt;
private static final WorldCore world;
private static final NmsWorldBorder worldBorder;
static {
switch (serverPackageVersion) {
case "v1_8_R1":
player = new com.songoda.core.nms.v1_8_R1.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_8_R1.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_8_R1.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_8_R1.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_8_R1.world.NmsWorldBorderImpl();
break;
case "v1_8_R2":
player = new com.songoda.core.nms.v1_8_R2.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_8_R2.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_8_R2.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_8_R2.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_8_R2.world.NmsWorldBorderImpl();
break;
case "v1_8_R3":
player = new com.songoda.core.nms.v1_8_R3.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_8_R3.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_8_R3.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_8_R3.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_8_R3.world.NmsWorldBorderImpl();
break;
case "v1_9_R1":
player = new com.songoda.core.nms.v1_9_R1.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_9_R1.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_9_R1.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_9_R1.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_9_R1.world.NmsWorldBorderImpl();
break;
case "v1_9_R2":
player = new com.songoda.core.nms.v1_9_R2.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_9_R2.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_9_R2.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_9_R2.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_9_R2.world.NmsWorldBorderImpl();
break;
case "v1_10_R1":
player = new com.songoda.core.nms.v1_10_R1.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_10_R1.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_10_R1.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_10_R1.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_10_R1.world.NmsWorldBorderImpl();
break;
case "v1_11_R1":
player = new com.songoda.core.nms.v1_11_R1.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_11_R1.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_11_R1.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_11_R1.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_11_R1.world.NmsWorldBorderImpl();
break;
case "v1_12_R1":
player = new com.songoda.core.nms.v1_12_R1.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_12_R1.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_12_R1.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_12_R1.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_12_R1.world.NmsWorldBorderImpl();
break;
case "v1_13_R1":
player = new com.songoda.core.nms.v1_13_R1.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_13_R1.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_13_R1.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_13_R1.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_13_R1.world.NmsWorldBorderImpl();
break;
case "v1_13_R2":
player = new com.songoda.core.nms.v1_13_R2.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_13_R2.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_13_R2.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_13_R2.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_13_R2.world.NmsWorldBorderImpl();
break;
case "v1_14_R1":
player = new com.songoda.core.nms.v1_14_R1.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_14_R1.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_14_R1.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_14_R1.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_14_R1.world.NmsWorldBorderImpl();
break;
case "v1_15_R1":
player = new com.songoda.core.nms.v1_15_R1.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_15_R1.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_15_R1.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_15_R1.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_15_R1.world.NmsWorldBorderImpl();
break;
case "v1_16_R1":
player = new com.songoda.core.nms.v1_16_R1.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_16_R1.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_16_R1.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_16_R1.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_16_R1.world.NmsWorldBorderImpl();
break;
case "v1_16_R2":
player = new com.songoda.core.nms.v1_16_R2.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_16_R2.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_16_R2.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_16_R2.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_16_R2.world.NmsWorldBorderImpl();
break;
case "v1_16_R3":
player = new com.songoda.core.nms.v1_16_R3.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_16_R3.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_16_R3.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_16_R3.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_16_R3.world.NmsWorldBorderImpl();
break;
case "v1_17_R1":
player = new com.songoda.core.nms.v1_17_R1.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_17_R1.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_17_R1.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_17_R1.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_17_R1.world.NmsWorldBorderImpl();
break;
case "v1_18_R1":
player = new com.songoda.core.nms.v1_18_R1.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_18_R1.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_18_R1.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_18_R1.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_18_R1.world.NmsWorldBorderImpl();
break;
case "v1_18_R2":
player = new com.songoda.core.nms.v1_18_R2.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_18_R2.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_18_R2.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_18_R2.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_18_R2.world.NmsWorldBorderImpl();
break;
case "v1_19_R1":
player = new com.songoda.core.nms.v1_19_R1.entity.NMSPlayerImpl();
anvil = new com.songoda.core.nms.v1_19_R1.anvil.AnvilCore();
nbt = new com.songoda.core.nms.v1_19_R1.nbt.NBTCoreImpl();
world = new com.songoda.core.nms.v1_19_R1.world.WorldCoreImpl();
worldBorder = new com.songoda.core.nms.v1_19_R1.world.NmsWorldBorderImpl();
break;
default:
Logger.getLogger(NmsManager.class.getName()).log(Level.SEVERE, "Failed to load NMS for this server version: version {0} not found", serverPackageVersion);
player = null;
anvil = null;
nbt = null;
world = null;
worldBorder = null;
break;
}
}
public static NMSPlayer getPlayer() {
return player;
}
public static AnvilCore getAnvil() {
return anvil;
}
public static boolean hasAnvil() {
return anvil != null;
}
public static NBTCore getNbt() {
return nbt;
}
public static boolean hasNbt() {
return nbt != null;
}
public static WorldCore getWorld() {
return world;
}
public static boolean hasWorld() {
return world != null;
}
public static NmsWorldBorder getWorldBorder() {
return worldBorder;
}
}

View File

@ -0,0 +1,17 @@
package com.songoda.core.nms;
import com.songoda.core.compatibility.ServerVersion;
public class UnsupportedServerVersionException extends RuntimeException {
public UnsupportedServerVersionException() {
this(null);
}
public UnsupportedServerVersionException(Throwable cause) {
this("Your sever version (" + ServerVersion.getServerVersionString() + "; " + ServerVersion.getServerVersion().name() + ") is not fully supported", null);
}
protected UnsupportedServerVersionException(String message, Throwable cause) {
super(message, cause);
}
}

View File

@ -3,7 +3,7 @@ package com.songoda.core.world;
import com.songoda.core.compatibility.CompatibleHand;
import com.songoda.core.compatibility.CompatibleSound;
import com.songoda.core.compatibility.ServerVersion;
import com.songoda.core.nms.NmsManager;
import com.songoda.core.nms.Nms;
import org.bukkit.Bukkit;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
@ -18,12 +18,12 @@ public class SItemStack {
public SItemStack(ItemStack item) {
this.item = item;
this.sItem = NmsManager.getWorld().getItemStack(item);
this.sItem = Nms.getImplementations().getWorld().getItemStack(item);
}
public SItemStack(CompatibleHand hand, Player player) {
this.item = hand.getItem(player);
this.sItem = NmsManager.getWorld().getItemStack(item);
this.sItem = Nms.getImplementations().getWorld().getItemStack(item);
}
public ItemStack addDamage(Player player, int damage) {
@ -49,7 +49,7 @@ public class SItemStack {
int durability;
if (ServerVersion.isServerVersionBelow(ServerVersion.V1_11)
? NmsManager.getNbt().of(item).has("Unbreakable")
? Nms.getImplementations().getNbt().of(item).has("Unbreakable")
: item.getItemMeta().isUnbreakable()) {
return item;
} else if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13)) {

View File

@ -2,7 +2,7 @@ package com.songoda.core.world;
import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.core.hooks.EntityStackerManager;
import com.songoda.core.nms.NmsManager;
import com.songoda.core.nms.Nms;
import com.songoda.core.nms.world.SpawnedEntity;
import com.songoda.core.utils.EntityUtils;
import org.bukkit.Location;
@ -20,7 +20,7 @@ public class SSpawner {
public SSpawner(Location location) {
this.location = location;
this.sSpawner = NmsManager.getWorld().getSpawner(location);
this.sSpawner = Nms.getImplementations().getWorld().getSpawner(location);
}
public SSpawner(CreatureSpawner spawner) {

View File

@ -1,7 +1,7 @@
package com.songoda.core.world;
import com.songoda.core.compatibility.ServerVersion;
import com.songoda.core.nms.NmsManager;
import com.songoda.core.nms.Nms;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Entity;
@ -15,7 +15,7 @@ public class SWorld {
public SWorld(World world) {
this.world = world;
this.sWorld = NmsManager.getWorld().getWorld(world);
this.sWorld = Nms.getImplementations().getWorld().getWorld(world);
}
public Entity[] getEntitiesFromChunk(int x, int z) {

View File

@ -0,0 +1,20 @@
package com.songoda.core.nms;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
public interface NmsImplementations {
@NotNull NMSPlayer getPlayer();
@NotNull WorldCore getWorld();
@NotNull NmsWorldBorder getWorldBorder();
@NotNull AnvilCore getAnvil();
@NotNull NBTCore getNbt();
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_10_R1;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_10_R1.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_10_R1.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_10_R1.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_10_R1.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_10_R1.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_11_R1;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_11_R1.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_11_R1.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_11_R1.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_11_R1.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_11_R1.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_12_R1;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_12_R1.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_12_R1.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_12_R1.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_12_R1.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_12_R1.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_13_R1;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_13_R1.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_13_R1.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_13_R1.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_13_R1.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_13_R1.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_13_R2;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_13_R2.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_13_R2.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_13_R2.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_13_R2.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_13_R2.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_14_R1;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_14_R1.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_14_R1.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_14_R1.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_14_R1.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_14_R1.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_15_R1;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_15_R1.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_15_R1.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_15_R1.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_15_R1.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_15_R1.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_16_R1;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_16_R1.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_16_R1.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_16_R1.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_16_R1.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_16_R1.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_16_R2;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_16_R2.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_16_R2.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_16_R2.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_16_R2.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_16_R2.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_16_R3;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_16_R3.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_16_R3.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_16_R3.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_16_R3.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_16_R3.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_17_R1;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_17_R1.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_17_R1.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_17_R1.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_17_R1.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_17_R1.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_18_R1;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_18_R1.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_18_R1.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_18_R1.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_18_R1.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_18_R1.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_18_R2;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_18_R2.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_18_R2.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_18_R2.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_18_R2.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_18_R2.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_19_R1;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_19_R1.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_19_R1.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_19_R1.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_19_R1.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_19_R1.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_8_R1;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_8_R1.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_8_R1.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_8_R1.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_8_R1.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_8_R1.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_8_R2;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_8_R2.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_8_R2.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_8_R2.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_8_R2.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_8_R2.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_8_R3;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_8_R3.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_8_R3.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_8_R3.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_8_R3.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_8_R3.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_9_R1;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_9_R1.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_9_R1.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_9_R1.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_9_R1.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_9_R1.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}

View File

@ -0,0 +1,55 @@
package com.songoda.core.nms.v1_9_R2;
import com.songoda.core.nms.NmsImplementations;
import com.songoda.core.nms.anvil.AnvilCore;
import com.songoda.core.nms.entity.NMSPlayer;
import com.songoda.core.nms.nbt.NBTCore;
import com.songoda.core.nms.v1_9_R2.entity.NMSPlayerImpl;
import com.songoda.core.nms.v1_9_R2.nbt.NBTCoreImpl;
import com.songoda.core.nms.v1_9_R2.world.NmsWorldBorderImpl;
import com.songoda.core.nms.v1_9_R2.world.WorldCoreImpl;
import com.songoda.core.nms.world.NmsWorldBorder;
import com.songoda.core.nms.world.WorldCore;
import org.jetbrains.annotations.NotNull;
@SuppressWarnings("unused")
public class NmsImplementationsImpl implements NmsImplementations {
private final NMSPlayer player;
private final WorldCore world;
private final NmsWorldBorder worldBorder;
private final AnvilCore anvil;
private final NBTCore nbt;
public NmsImplementationsImpl() {
this.player = new NMSPlayerImpl();
this.world = new WorldCoreImpl();
this.worldBorder = new NmsWorldBorderImpl();
this.anvil = new com.songoda.core.nms.v1_9_R2.anvil.AnvilCore();
this.nbt = new NBTCoreImpl();
}
@Override
public @NotNull NMSPlayer getPlayer() {
return this.player;
}
@Override
public @NotNull WorldCore getWorld() {
return this.world;
}
@Override
public @NotNull NmsWorldBorder getWorldBorder() {
return this.worldBorder;
}
@Override
public @NotNull AnvilCore getAnvil() {
return this.anvil;
}
@Override
public @NotNull NBTCore getNbt() {
return this.nbt;
}
}