From 4b288381945fd4315187cc5076312a52215cc7c8 Mon Sep 17 00:00:00 2001 From: SBDeveloper Date: Sun, 25 May 2025 23:03:22 +0200 Subject: [PATCH 1/2] Added actionfoto message --- .../socket/messages/ActionFotoMessage.java | 32 +++++++++++++++++++ .../socket/messages/MessageTask.java | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/main/java/tech/sbdevelopment/themeparkaudio/socket/messages/ActionFotoMessage.java diff --git a/src/main/java/tech/sbdevelopment/themeparkaudio/socket/messages/ActionFotoMessage.java b/src/main/java/tech/sbdevelopment/themeparkaudio/socket/messages/ActionFotoMessage.java new file mode 100644 index 0000000..1ca1de8 --- /dev/null +++ b/src/main/java/tech/sbdevelopment/themeparkaudio/socket/messages/ActionFotoMessage.java @@ -0,0 +1,32 @@ +package tech.sbdevelopment.themeparkaudio.socket.messages; + +import lombok.Getter; +import org.json.simple.JSONObject; + +import java.time.ZonedDateTime; + +@Getter +public class ActionFotoMessage extends AbstractMessage { + private final String attractionId; + private final String image; + private final ZonedDateTime timestamp = ZonedDateTime.now(); + + protected ActionFotoMessage(String attractionId, String image) { + super(MessageTask.ACTIONFOTO); + this.attractionId = attractionId; + this.image = image; + } + + public static ActionFotoMessage of(String attractionId, String image) { + return new ActionFotoMessage(attractionId, image); + } + + @Override + protected JSONObject extendJson() { + JSONObject data = new JSONObject(); + data.put("attractionId", attractionId); + data.put("image", image); + data.put("timestamp", timestamp.toString()); + return data; + } +} diff --git a/src/main/java/tech/sbdevelopment/themeparkaudio/socket/messages/MessageTask.java b/src/main/java/tech/sbdevelopment/themeparkaudio/socket/messages/MessageTask.java index 04987e8..627225b 100644 --- a/src/main/java/tech/sbdevelopment/themeparkaudio/socket/messages/MessageTask.java +++ b/src/main/java/tech/sbdevelopment/themeparkaudio/socket/messages/MessageTask.java @@ -1,5 +1,5 @@ package tech.sbdevelopment.themeparkaudio.socket.messages; public enum MessageTask { - AUTHENTICATION, LOGOUT, LIGHT, MUSIC, SFX, RADIO, PING, STOP + AUTHENTICATION, LOGOUT, LIGHT, MUSIC, SFX, RADIO, PING, STOP, ACTIONFOTO } From dda73e3cccff2a2027e505c0f3c277c5a5a1e961 Mon Sep 17 00:00:00 2001 From: SBDeveloper Date: Fri, 30 May 2025 15:54:22 +0200 Subject: [PATCH 2/2] Added new message type --- .../themeparkaudio/commands/TPAudioCMD.java | 40 +++++++++++++++++++ .../socket/messages/ActionFotoMessage.java | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/main/java/tech/sbdevelopment/themeparkaudio/commands/TPAudioCMD.java b/src/main/java/tech/sbdevelopment/themeparkaudio/commands/TPAudioCMD.java index 0c96829..8a9914b 100644 --- a/src/main/java/tech/sbdevelopment/themeparkaudio/commands/TPAudioCMD.java +++ b/src/main/java/tech/sbdevelopment/themeparkaudio/commands/TPAudioCMD.java @@ -195,4 +195,44 @@ public class TPAudioCMD extends BaseCommand { sender.sendMessage(ChatColor.GRAY + "Playback stopped!"); } + + @Subcommand("stopchannel") + @Description("") + public void onStopChannel(CommandSender sender, String selector, AudioType type) { + List players = new ArrayList<>(); + Player target = Bukkit.getPlayer(selector); + if (target != null) { + if (!PinManager.hasPin(target.getUniqueId())) { + sender.sendMessage(ChatColor.GRAY + "The player is not connected to the client."); + return; + } + + players.add(target); + } else { + SpigotPlayerSelector sel = new SpigotPlayerSelector(selector); + + if (sel.getArgument("region").length() != 0) { + if (!ThemeParkAudio.isRegionSupport()) { + sender.sendMessage(ChatColor.GRAY + "Region support is not available."); + return; + } + String regionID = sel.getArgument("region"); + new PlayInRegionHandler(regionID, "", sel.getPlayers(sender).stream().map(Entity::getUniqueId).collect(Collectors.toList())); + + sender.sendMessage(ChatColor.GRAY + "Playback stopped in region " + regionID + "!"); + return; + } else { + players.addAll(sel.getPlayers(sender)); + } + } + + if (type == AudioType.RADIO && !ThemeParkAudio.getInstance().getConfig().getBoolean("radio")) { + sender.sendMessage(ChatColor.GRAY + "The radio is disabled, so it can't be played on."); + return; + } + + AudioMessage.of(type, "").broadcastSelection(players, PinManager::hasPin); + + sender.sendMessage(ChatColor.GRAY + "Playback stopped!"); + } } diff --git a/src/main/java/tech/sbdevelopment/themeparkaudio/socket/messages/ActionFotoMessage.java b/src/main/java/tech/sbdevelopment/themeparkaudio/socket/messages/ActionFotoMessage.java index 1ca1de8..d4ba6dc 100644 --- a/src/main/java/tech/sbdevelopment/themeparkaudio/socket/messages/ActionFotoMessage.java +++ b/src/main/java/tech/sbdevelopment/themeparkaudio/socket/messages/ActionFotoMessage.java @@ -26,7 +26,7 @@ public class ActionFotoMessage extends AbstractMessage { JSONObject data = new JSONObject(); data.put("attractionId", attractionId); data.put("image", image); - data.put("timestamp", timestamp.toString()); + data.put("timestamp", timestamp.toInstant().toString()); return data; } }