From 22a1c9ba8cda614ed172a3df6afcdeea4b637e83 Mon Sep 17 00:00:00 2001 From: Alex Nijjar Date: Sun, 6 Aug 2023 20:41:39 -0500 Subject: [PATCH] Fix settings screen not saving --- changelog.md | 23 +------------- .../client/screens/base/BaseScreen.java | 4 +++ .../base/members/entries/BooleanEntry.java | 4 ++- .../commands/party/PartySettingsCommands.java | 30 +++++++++---------- .../messages/ServerboundSetSettingPacket.java | 12 ++++++-- gradle.properties | 2 +- 6 files changed, 33 insertions(+), 42 deletions(-) diff --git a/changelog.md b/changelog.md index 37043a1..06cac96 100644 --- a/changelog.md +++ b/changelog.md @@ -1,22 +1 @@ -# -----{ 0.1.3 }----- -- Fix party member Passive TP Setting not being applied - -# -----{ 0.1.2 }----- -- Fix permission menu not saving. - -# -----{ 0.1.1 }----- -- Made Argonauts optional on client. -- Add Party Settings Command Interface. -- Add REI Favorite Entries for Party chat and management. -- Fix JEI/REI/EMI menus appearing in Argonauts' menus. -- Add [PlaceholderAPI](https://modrinth.com/mod/placeholder-api) support. - - Use `%argonauts:guild%` for the guild name and `%argonauts:party%` for the party name. - - Message of the Day messages now support Placeholder formatting. - -# -----{ 0.1.0 }----- -- Add Guild and Party API. -- Add Guild events. -- Changed Component Arguments to Greedy Strings which also fixes a security vulnerability. - -# -----{ 0.0.0 }----- -- Initial Release. +- Fix settings screen not saving \ No newline at end of file diff --git a/common/src/main/java/earth/terrarium/argonauts/client/screens/base/BaseScreen.java b/common/src/main/java/earth/terrarium/argonauts/client/screens/base/BaseScreen.java index 5d0be7b..574ed96 100644 --- a/common/src/main/java/earth/terrarium/argonauts/client/screens/base/BaseScreen.java +++ b/common/src/main/java/earth/terrarium/argonauts/client/screens/base/BaseScreen.java @@ -47,4 +47,8 @@ public void render(@NotNull GuiGraphics graphics, int mouseX, int mouseY, float protected abstract void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY); protected abstract void renderBg(GuiGraphics guiGraphics, float partialTick, int mouseX, int mouseY); + + public T menuContent() { + return this.menuContent; + } } diff --git a/common/src/main/java/earth/terrarium/argonauts/client/screens/base/members/entries/BooleanEntry.java b/common/src/main/java/earth/terrarium/argonauts/client/screens/base/members/entries/BooleanEntry.java index d9e967c..7d03dcd 100644 --- a/common/src/main/java/earth/terrarium/argonauts/client/screens/base/members/entries/BooleanEntry.java +++ b/common/src/main/java/earth/terrarium/argonauts/client/screens/base/members/entries/BooleanEntry.java @@ -6,6 +6,7 @@ import com.teamresourceful.resourcefullib.client.screens.CursorScreen; import com.teamresourceful.resourcefullib.client.utils.CursorUtils; import earth.terrarium.argonauts.Argonauts; +import earth.terrarium.argonauts.client.screens.party.settings.PartySettingsScreen; import earth.terrarium.argonauts.common.handlers.GroupType; import earth.terrarium.argonauts.common.network.NetworkHandler; import earth.terrarium.argonauts.common.network.messages.ServerboundSetPermissionPacket; @@ -79,7 +80,8 @@ public boolean mouseClicked(double x, double y, int button) { NetworkHandler.CHANNEL.sendToServer(new ServerboundSetSettingPacket( id, value, - getMember.get())); + getMember.get(), + Minecraft.getInstance().screen instanceof PartySettingsScreen s && s.menuContent().partySettings())); } else if (prefix.equals("permission")) { NetworkHandler.CHANNEL.sendToServer(new ServerboundSetPermissionPacket( id, diff --git a/common/src/main/java/earth/terrarium/argonauts/common/commands/party/PartySettingsCommands.java b/common/src/main/java/earth/terrarium/argonauts/common/commands/party/PartySettingsCommands.java index 3d9b0ea..ec4c0ac 100644 --- a/common/src/main/java/earth/terrarium/argonauts/common/commands/party/PartySettingsCommands.java +++ b/common/src/main/java/earth/terrarium/argonauts/common/commands/party/PartySettingsCommands.java @@ -40,7 +40,7 @@ public static void register(CommandDispatcher dispatcher) { } private static ArgumentBuilder> publicParty() { - return Commands.literal(DefaultPartySettings.PUBLIC) + return Commands.literal("publicParty") .then(Commands.argument("value", BoolArgumentType.bool()) .executes(context -> { ServerPlayer player = context.getSource().getPlayerOrException(); @@ -52,8 +52,8 @@ private static ArgumentBuilder { Party party = PartyCommandHelper.getPartyOrThrow(player, false); - boolean publicParty = party.settings().settings().contains(DefaultPartySettings.PUBLIC); - player.displayClientMessage(getCurrentComponent("public party", publicParty), false); + boolean publicParty = party.settings().settings().contains("publicParty"); + player.displayClientMessage(getCurrentComponent("publicParty", publicParty), false); }); return 1; }); } private static ArgumentBuilder> friendlyFire() { - return Commands.literal(DefaultPartySettings.FRIENDLY_FIRE) + return Commands.literal("friendlyFire") .then(Commands.argument("value", BoolArgumentType.bool()) .executes(context -> { ServerPlayer player = context.getSource().getPlayerOrException(); @@ -81,8 +81,8 @@ private static ArgumentBuilder { Party party = PartyCommandHelper.getPartyOrThrow(player, false); - boolean friendlyFire = party.settings().settings().contains(DefaultPartySettings.FRIENDLY_FIRE); - player.displayClientMessage(getCurrentComponent("friendly fire", friendlyFire), false); + boolean friendlyFire = party.settings().settings().contains("friendlyFire"); + player.displayClientMessage(getCurrentComponent("friendlyFire", friendlyFire), false); }); return 1; }); } private static ArgumentBuilder> passiveTeleport() { - return Commands.literal(DefaultPartySettings.PASSIVE_TP) + return Commands.literal("passiveTeleport") .then(Commands.argument("value", BoolArgumentType.bool()) .executes(context -> { ServerPlayer player = context.getSource().getPlayerOrException(); @@ -110,8 +110,8 @@ private static ArgumentBuilder { Party party = PartyCommandHelper.getPartyOrThrow(player, false); - boolean passiveTeleport = party.settings().settings().contains(DefaultPartySettings.PASSIVE_TP); - player.displayClientMessage(getCurrentComponent("passive teleport", passiveTeleport), false); + boolean passiveTeleport = party.settings().settings().contains("passiveTeleport"); + player.displayClientMessage(getCurrentComponent("passiveTeleport", passiveTeleport), false); }); return 1; }); diff --git a/common/src/main/java/earth/terrarium/argonauts/common/network/messages/ServerboundSetSettingPacket.java b/common/src/main/java/earth/terrarium/argonauts/common/network/messages/ServerboundSetSettingPacket.java index 3545a04..2a6a957 100644 --- a/common/src/main/java/earth/terrarium/argonauts/common/network/messages/ServerboundSetSettingPacket.java +++ b/common/src/main/java/earth/terrarium/argonauts/common/network/messages/ServerboundSetSettingPacket.java @@ -16,7 +16,7 @@ import java.util.UUID; public record ServerboundSetSettingPacket(String setting, boolean value, - UUID member) implements Packet { + UUID member, boolean partySettings) implements Packet { public static final ResourceLocation ID = new ResourceLocation(Argonauts.MOD_ID, "set_setting"); public static final PacketHandler HANDLER = new Handler(); @@ -38,6 +38,7 @@ public void encode(ServerboundSetSettingPacket message, FriendlyByteBuf buffer) buffer.writeUtf(message.setting); buffer.writeBoolean(message.value); buffer.writeUUID(message.member); + buffer.writeBoolean(message.partySettings); } @Override @@ -45,7 +46,8 @@ public ServerboundSetSettingPacket decode(FriendlyByteBuf buffer) { return new ServerboundSetSettingPacket( buffer.readUtf(), buffer.readBoolean(), - buffer.readUUID()); + buffer.readUUID(), + buffer.readBoolean()); } @Override @@ -59,7 +61,11 @@ public PacketContext handle(ServerboundSetSettingPacket message) { if (!member.hasPermission(MemberPermissions.MANAGE_SETTINGS)) { throw MemberException.NO_PERMISSIONS; } - member.settings().set(message.setting, message.value); + if (message.partySettings()) { + party.settings().set(message.setting, message.value); + } else { + member.settings().set(message.setting, message.value); + } }); } } diff --git a/gradle.properties b/gradle.properties index 982cb18..f7ce774 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx2G enabledPlatforms=fabric,forge -version=1.0.0 +version=1.0.2 group=earth.terrarium.argonauts minecraftVersion=1.20.1