Compare commits

..
Author SHA1 Message Date
Hut512 9e0314472b Disable FML2 handler 2026-09-08 12:36:04 +02:00
YoyoNow 6209b86149 Fix TeamCommand.info 2026-09-07 14:03:06 +02:00
YoyoNow 6f1403df9c Cleanup SWPlayer 2026-09-05 14:52:59 +02:00
YoyoNow 0113788da2 Fix SteamEditWand 2026-09-05 09:50:47 +02:00
YoyoNow 8a7f65e000 Merge pull request 'Fix CRIU subserver stop' (#485) from Hut512/SteamWar:main into main
Reviewed-on: SteamWar/SteamWar#485
Reviewed-by: YoyoNow <4+yoyonow@noreply.localhost>
2026-09-03 21:39:15 +02:00
7 changed files with 23 additions and 16 deletions
@@ -46,7 +46,7 @@ public class ObserverTracerListener implements Listener {
public ObserverTracerListener() {
Bukkit.getScheduler().runTaskTimer(BauSystem.getInstance(), () -> {
SWPlayer.allWithSingleComponent(ObserverTracer.class).forEach(pair -> {
if (pair.getPlayer().getGameMode() != GameMode.SPECTATOR) return;
if (pair.getSwPlayer().getPlayer().getGameMode() != GameMode.SPECTATOR) return;
pair.getComponent().show();
});
}, 15L, 15L);
@@ -53,7 +53,7 @@ public class NoClipCommand extends SWCommand implements Listener {
@Override
public void onUnmount(SWPlayer player) {
player.setGameMode(GameMode.CREATIVE);
player.getPlayer().setGameMode(GameMode.CREATIVE);
}
}
@@ -307,12 +307,12 @@ class SteamwarUser(id: EntityID<Int>) : IntEntity(id) {
punishments[punishment] = Punishment.createPunishment(this@SteamwarUser.id.value, from, punishment, reason, time, perma)
}
fun setLocale(locale: Locale?, manualLocale: Boolean) {
fun setLocale(locale: Locale?, manualeLocale: Boolean) {
if (locale == null || (this.manualLocale && !manualLocale)) return
useDb {
this@SteamwarUser.locale = locale
this@SteamwarUser.manualLocale = manualLocale
this@SteamwarUser.manualLocale = manualeLocale
}
}
@@ -21,8 +21,8 @@ package de.steamwar.core;
import de.steamwar.message.Message;
import lombok.Data;
import lombok.Getter;
import lombok.NonNull;
import lombok.experimental.Delegate;
import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.ClickEvent;
import org.bukkit.Bukkit;
@@ -99,11 +99,11 @@ public class SWPlayer {
@Data
public static final class SWPlayerWithComponent<T extends Component> {
private final SWPlayer player;
private final SWPlayer swPlayer;
private final T component;
}
@Delegate
@Getter
private final Player player;
private final Map<Class<? extends Component>, Component> components = new HashMap<>();
@@ -20,6 +20,7 @@
package de.steamwar.core.worldedit;
import com.comphenix.tinyprotocol.TinyProtocol;
import com.sk89q.worldedit.IncompleteRegionException;
import com.sk89q.worldedit.LocalSession;
import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
@@ -121,13 +122,7 @@ public class SteamEditWand implements Listener {
}
public void setLocation(Location location) {
float distance = (float) player.getLocation().distanceSquared(location);
wireframe.setPos1And2(location, location);
float width = distance / 1600;
width = ((int) (width * 16)) / 16F;
width = Math.max(width, 1 / 16F);
width = Math.min(width, 1 / 2F);
wireframe.setWidth(width);
wireframe.setBlock(WorldEditRendererCUIEditor.Type.CURSOR.getMaterial(player).createBlockData());
}
}
@@ -338,7 +333,11 @@ public class SteamEditWand implements Listener {
}
private void selectPos1(RegionSelector regionSelector, Player player, LocalSession session, BlockVector3 pos1) {
if (!pos1.equals(regionSelector.getPrimaryPosition())) {
try {
if (!pos1.equals(regionSelector.getPrimaryPosition())) {
SWPlayer.of(player).setComponent(new Pos1Message(regionSelector, player, session, pos1));
}
} catch (IncompleteRegionException e) {
SWPlayer.of(player).setComponent(new Pos1Message(regionSelector, player, session, pos1));
}
regionSelector.selectPrimary(pos1, PermissiveSelectorLimits.getInstance());
@@ -362,7 +361,11 @@ public class SteamEditWand implements Listener {
}
private void selectPos2(RegionSelector regionSelector, Player player, LocalSession session, BlockVector3 pos2) {
if (regionSelector.getVertices().size() == 2 && !pos2.equals(regionSelector.getVertices().get(1))) {
try {
if (regionSelector.getVertices().size() == 2 && !pos2.equals(regionSelector.getVertices().get(1))) {
SWPlayer.of(player).setComponent(new Pos2Message(regionSelector, player, session, pos2));
}
} catch (IncompleteRegionException e) {
SWPlayer.of(player).setComponent(new Pos2Message(regionSelector, player, session, pos2));
}
regionSelector.selectSecondary(pos2, PermissiveSelectorLimits.getInstance());
@@ -287,6 +287,10 @@ public class TeamCommand extends SWCommand {
@Register(value = "info", description = "TEAM_INFO_USAGE")
public void info(Chatter sender, @ErrorMessage("UNKNOWN_TEAM") Team team) {
if (team.getMembers().isEmpty()) {
sender.system("UNKNOWN_TEAM");
return;
}
List<SteamwarUser> users = team.getMembers().stream().map(SteamwarUser::byId).toList();
sender.system("TEAM_INFO_TEAM", team.getTeamName(), team.getTeamColor(), team.getTeamKuerzel());
@@ -38,7 +38,7 @@ import net.kyori.adventure.text.Component;
import java.util.*;
import java.util.logging.Level;
@Linked
//@Linked
public class FML2 extends BasicListener {
// FML2: https://wiki.vg/Minecraft_Forge_Handshake#FML2_protocol_.281.13_-_Current.29
// FML3: https://github.com/adde0109/Ambassador/tree/non-api/src/main/java/org/adde0109/ambassador/forge