From ea9d7ac584cc33b0d0398afb7b9ed035fbea1be2 Mon Sep 17 00:00:00 2001 From: D4rkr34lm Date: Sat, 30 May 2026 13:29:50 +0200 Subject: [PATCH] Refactor to use better impl of interaction entity in REntity system --- .../bausystem/features/tracer/Trace.java | 16 ------ .../tracer/rendering/TraceEntity.java | 14 ++++- .../steamwar/entity/RInteractionEntity.java | 55 ------------------- 3 files changed, 11 insertions(+), 74 deletions(-) delete mode 100644 SpigotCore/SpigotCore_Main/src/de/steamwar/entity/RInteractionEntity.java diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Trace.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Trace.java index 5179eead..95107761 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Trace.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Trace.java @@ -144,14 +144,6 @@ public class Trace { } else { entityServer = new REntityServer(); entityServer.addPlayer(player); - entityServer.setCallback((p, rEntity, entityAction) -> { - if (entityAction != REntityAction.INTERACT) { - return; - } - if (rEntity instanceof TraceEntity) { - ((TraceEntity) rEntity).printIntoChat(p); - } - }); entityServerMap.put(player, entityServer); } render(getRecords(), entityServer, playerTraceShowData); @@ -168,14 +160,6 @@ public class Trace { REntityServer entityServer = entityServerMap.computeIfAbsent(player, k -> { REntityServer newEntityServer = new REntityServer(); newEntityServer.addPlayer(k); - newEntityServer.setCallback((p, rEntity, entityAction) -> { - if (entityAction != REntityAction.INTERACT) { - return; - } - if (rEntity instanceof TraceEntity) { - ((TraceEntity) rEntity).printIntoChat(p); - } - }); return newEntityServer; }); diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/TraceEntity.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/TraceEntity.java index 204dcbc4..e2be5eb9 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/TraceEntity.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/rendering/TraceEntity.java @@ -25,8 +25,9 @@ import de.steamwar.bausystem.features.tracer.TNTPoint; import de.steamwar.bausystem.features.tracer.Trace; import de.steamwar.bausystem.features.tracer.TraceManager; import de.steamwar.entity.RBlockDisplay; -import de.steamwar.entity.RInteractionEntity; +import de.steamwar.entity.REntityAction; import de.steamwar.entity.REntityServer; +import de.steamwar.entity.RInteraction; import lombok.Getter; import net.md_5.bungee.api.chat.ClickEvent; import org.bukkit.Location; @@ -68,7 +69,7 @@ public class TraceEntity extends RBlockDisplay { private final String uniqueTntIdsString; private final Trace trace; - private final RInteractionEntity hitbox; + private final RInteraction hitbox; public TraceEntity(REntityServer server, Location location, boolean isExplosion, List records, Trace trace) { super(server, location); @@ -76,7 +77,14 @@ public class TraceEntity extends RBlockDisplay { this.records = records; this.trace = trace; uniqueTntIdsString = records.stream().map(TNTPoint::getTntId).distinct().map(Object::toString).collect(Collectors.joining(" ")); - hitbox = new RInteractionEntity(server, location, TNT_VISUAL_SCALE, TNT_VISUAL_SCALE, this); + hitbox = new RInteraction(server, location); + hitbox.setInteractionHeight(TNT_VISUAL_SCALE); + hitbox.setInteractionWidth(TNT_VISUAL_SCALE); + hitbox.setCallback((player, action) -> { + if (action == REntityAction.INTERACT) { + printIntoChat(player); + } + }); setTransform(TNT_VISUAL_TRANSFORM); setBlock(material.createBlockData()); diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/RInteractionEntity.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/RInteractionEntity.java deleted file mode 100644 index ee97ac26..00000000 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/RInteractionEntity.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2025 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package de.steamwar.entity; - -import net.minecraft.network.syncher.EntityDataAccessor; -import net.minecraft.network.syncher.EntityDataSerializers; -import org.bukkit.Location; -import org.bukkit.entity.EntityType; - -import java.util.function.Consumer; - -public class RInteractionEntity extends REntity { - - private static final EntityDataAccessor widthWatcher = new EntityDataAccessor<>(8, EntityDataSerializers.FLOAT); - private static final EntityDataAccessor heightWatcher = new EntityDataAccessor<>(9, EntityDataSerializers.FLOAT); - - private float width; - private float height; - private final REntity owner; - - public RInteractionEntity(REntityServer server, Location location, float width, float height, REntity owner) { - super(server, EntityType.INTERACTION, location, 0); - this.width = width; - this.height = height; - this.owner = owner; - server.addEntity(this); - } - - @Override - protected void postSpawn(Consumer packetSink) { - super.postSpawn(packetSink); - packetSink.accept(getDataWatcherPacket(widthWatcher, width, heightWatcher, height)); - } - - public REntity getOwner() { - return owner; - } -}