SteamWar/SpigotCore
Archiviert
13
0

WIP: Update to Linkage System #212

Geschlossen
YoyoNow möchte 6 Commits von Linkage nach master mergen
12 geänderte Dateien mit 43 neuen und 45 gelöschten Zeilen

@ -1 +1 @@
Subproject commit a249d66dcf96bb9aef44b700438c81670ad81de7
Subproject commit d90938eff2a258d3dbd9b975b9df0fc7fe87b938

Datei anzeigen

@ -33,7 +33,7 @@ targetCompatibility = 1.8
sourceSets {
main {
java {
srcDirs = ['src/']
srcDirs = ['src/', 'build/generated/sources/annotationProcessor/java/main/']
}
resources {
srcDirs = ['src/']
@ -65,10 +65,5 @@ dependencies {
testImplementation 'org.hamcrest:hamcrest:2.2'
implementation project(':CommonCore')
}
processResources {
from("build/classes/java/main/META-INF/annotations/") {
into("de.steamwar.bausystem")
}
annotationProcessor project(":CommonCore")
}

Datei anzeigen

@ -19,11 +19,13 @@
package de.steamwar.command;
import de.steamwar.linkage.Linked;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
@Linked
public class CaseInsensitiveCommandsListener implements Listener {
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)

Datei anzeigen

@ -21,11 +21,7 @@ package de.steamwar.core;
import com.comphenix.tinyprotocol.TinyProtocol;
import de.steamwar.command.*;
import de.steamwar.core.authlib.AuthlibInjector;
import de.steamwar.core.events.ChattingEvent;
import de.steamwar.core.events.PartialChunkFixer;
import de.steamwar.core.events.PlayerJoinedEvent;
import de.steamwar.core.events.WorldLoadEvent;
import de.steamwar.spigotcore.linkage.LinkageUtils;
import de.steamwar.message.Message;
import de.steamwar.network.NetworkReceiver;
import de.steamwar.sql.Statement;
@ -115,22 +111,12 @@ public class Core extends JavaPlugin{
}
});
Bukkit.getScheduler().runTaskTimer(this, TabCompletionCache::invalidateOldEntries, 20, 20);
Bukkit.getPluginManager().registerEvents(new CaseInsensitiveCommandsListener(), this);
Bukkit.getPluginManager().registerEvents(new PlayerJoinedEvent(), this);
Bukkit.getPluginManager().registerEvents(new ChattingEvent(), this);
Bukkit.getPluginManager().registerEvents(new WorldLoadEvent(), this);
getServer().getMessenger().registerIncomingPluginChannel(this, "sw:bridge", new NetworkReceiver());
getServer().getMessenger().registerOutgoingPluginChannel(this, "sw:bridge");
if(Core.getVersion() < 19)
AuthlibInjector.inject();
TinyProtocol.init();
if(Core.getVersion() < 17 && Bukkit.getPluginManager().getPlugin("ViaVersion") != null)
new PartialChunkFixer();
if(Core.getVersion() >= 19)
//new ServerDataHandler();
LinkageUtils.link();
try {
getLogger().log(Level.INFO, "Running on: " + new BufferedReader(new InputStreamReader(Runtime.getRuntime().exec("hostname").getInputStream())).readLine());

Datei anzeigen

@ -22,11 +22,16 @@ package de.steamwar.core.authlib;
import com.comphenix.tinyprotocol.Reflection;
import com.mojang.authlib.GameProfileRepository;
import com.mojang.authlib.yggdrasil.YggdrasilGameProfileRepository;
import de.steamwar.linkage.Linked;
import de.steamwar.linkage.MaxVersion;
import de.steamwar.linkage.api.Enable;
public class AuthlibInjector {
private AuthlibInjector() {}
@Linked
@MaxVersion(18)
public class AuthlibInjector implements Enable {
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Inklusiv oder Exklusiv? Ich finde die exklusive Range hier verwirrend.

Inklusiv oder Exklusiv? Ich finde die exklusive Range hier verwirrend.
Veraltet
Review

Da es bis jetzt diese checks immer exklusiv gemacht wurden, habe ich dies erstmal so übernommen, kann dies aber gerne ändern.

Da es bis jetzt diese checks immer exklusiv gemacht wurden, habe ich dies erstmal so übernommen, kann dies aber gerne ändern.
Veraltet
Review

Die Checks wurden immer mit einem Vergleich gemacht, das hier aber als "MaxVersion" zu betiteln, verwirrt.

Die Checks wurden immer mit einem Vergleich gemacht, das hier aber als "MaxVersion" zu betiteln, verwirrt.
Veraltet
Review

Gut dann wird das umgebaut.

Gut dann wird das umgebaut.
public static void inject() {
@Override
public void enable() {
Class<?> minecraftServerClass = Reflection.getClass("{nms.server}.MinecraftServer");
Reflection.FieldAccessor<GameProfileRepository> gameProfile = Reflection.getField(minecraftServerClass, GameProfileRepository.class, 0);
Object minecraftServer = Reflection.getTypedMethod(minecraftServerClass, "getServer", minecraftServerClass).invoke(null);

Datei anzeigen

@ -20,15 +20,17 @@
package de.steamwar.core.events;
import de.steamwar.core.Core;
import de.steamwar.linkage.Linked;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
@Linked
public class ChattingEvent implements Listener {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
private void onChat(AsyncPlayerChatEvent event) {
public void onChat(AsyncPlayerChatEvent event) {
event.setCancelled(true);
Core.MESSAGE.broadcastPrefixless("LOCAL_CHAT", event.getPlayer().getDisplayName(), event.getMessage());
}

Datei anzeigen

@ -25,6 +25,9 @@ import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.ViaAPI;
import de.steamwar.core.Core;
import de.steamwar.core.CraftbukkitWrapper;
import de.steamwar.linkage.Linked;
import de.steamwar.linkage.MaxVersion;
import de.steamwar.linkage.PluginCheck;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@ -35,6 +38,9 @@ import java.util.List;
* TinyProtocol can't translate BlockEntities during 1.16 to 1.17 conversions du to removed partial chunk update support. This class cancels PartialChunkUpdates for this players and sends them a complete chunk instead.
* This class can only be loaded on 1.9 to 1.15 with active ViaVersion.
**/
@Linked
@MaxVersion(16)
@PluginCheck("ViaVersion")
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Genauso.

Genauso.
public class PartialChunkFixer {
private static final int PROTOCOL1_17 = 755;

Datei anzeigen

@ -19,6 +19,7 @@
package de.steamwar.core.events;
import de.steamwar.linkage.Linked;
import de.steamwar.sql.SteamwarUser;
import de.steamwar.sql.UserGroup;
import org.bukkit.entity.Player;
@ -28,10 +29,11 @@ import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
@Linked
public class PlayerJoinedEvent implements Listener{
@EventHandler
private void onJoin(PlayerJoinEvent event) {
public void onJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
SteamwarUser user = SteamwarUser.get(player.getUniqueId());
@ -45,7 +47,7 @@ public class PlayerJoinedEvent implements Listener{
}
@EventHandler
private void onQuit(PlayerQuitEvent event) {
public void onQuit(PlayerQuitEvent event) {
Player player = event.getPlayer();
event.setQuitMessage("§c§l« §r" + player.getDisplayName());

Datei anzeigen

@ -19,10 +19,12 @@
package de.steamwar.core.events;
import de.steamwar.linkage.Linked;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.world.WorldInitEvent;
@Linked
public class WorldLoadEvent implements Listener {
@EventHandler

Datei anzeigen

@ -20,9 +20,12 @@
package de.steamwar.network;
import de.steamwar.core.BountifulWrapper;
import de.steamwar.network.handlers.InventoryHandler;
import de.steamwar.linkage.Linked;
import de.steamwar.network.packets.PacketHandler;
import de.steamwar.network.packets.server.*;
import de.steamwar.network.packets.server.BaumemberUpdatePacket;
import de.steamwar.network.packets.server.CloseInventoryPacket;
import de.steamwar.network.packets.server.LocaleInvalidationPacket;
import de.steamwar.network.packets.server.PingPacket;
import de.steamwar.sql.BauweltMember;
import de.steamwar.sql.SteamwarUser;
import org.bukkit.Bukkit;
@ -30,13 +33,9 @@ import org.bukkit.entity.Player;
import java.util.UUID;
@Linked
public class CoreNetworkHandler extends PacketHandler {
public CoreNetworkHandler() {
super();
new InventoryHandler().register();
}
@Handler
public void handleBaumemberUpdatePacket(BaumemberUpdatePacket packet) {
BauweltMember.clear();
@ -50,11 +49,6 @@ public class CoreNetworkHandler extends PacketHandler {
}
}
@Handler
public void handleInventoryPacket(InventoryPacket packet) {
InventoryHandler.handleInventoryPacket(packet);
}
@Handler
public void handlePingPacket(PingPacket packet) {
UUID uuid = SteamwarUser.get(packet.getId()).getUUID();

Datei anzeigen

@ -22,6 +22,7 @@ package de.steamwar.network.handlers;
import com.google.gson.JsonParser;
import de.steamwar.inventory.SWInventory;
import de.steamwar.inventory.SWItem;
import de.steamwar.linkage.Linked;
import de.steamwar.network.NetworkSender;
import de.steamwar.network.packets.PacketHandler;
import de.steamwar.network.packets.client.InventoryCallbackPacket;
@ -34,10 +35,11 @@ import org.bukkit.event.inventory.InventoryType;
import java.util.HashMap;
import java.util.Map;
@Linked
public class InventoryHandler extends PacketHandler {
@Handler
public static void handleInventoryPacket(InventoryPacket packet) {
public void handleInventoryPacket(InventoryPacket packet) {
Player player = Bukkit.getPlayer(SteamwarUser.get(packet.getPlayer()).getUUID());
Map<Integer, SWItem> items = new HashMap<>();
packet.getItems().forEach((i, item) -> {

Datei anzeigen

@ -3,9 +3,11 @@ package de.steamwar.network.handlers;
import com.comphenix.tinyprotocol.Reflection;
import com.comphenix.tinyprotocol.TinyProtocol;
import de.steamwar.core.ChatWrapper;
import de.steamwar.core.CraftbukkitWrapper;
import de.steamwar.linkage.MinVersion;
import org.bukkit.entity.Player;
// @Linked
@MinVersion(19)
public class ServerDataHandler {
private Class<?> serverDataPacket = Reflection.getClass("{nms.network.protocol.game}.ClientboundServerDataPacket");