Skip to content

Commit

Permalink
Fix settings screen not saving
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexNijjar committed Aug 7, 2023
1 parent a071731 commit 22a1c9b
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 42 deletions.
23 changes: 1 addition & 22 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
}

private static ArgumentBuilder<CommandSourceStack, LiteralArgumentBuilder<CommandSourceStack>> publicParty() {
return Commands.literal(DefaultPartySettings.PUBLIC)
return Commands.literal("publicParty")
.then(Commands.argument("value", BoolArgumentType.bool())
.executes(context -> {
ServerPlayer player = context.getSource().getPlayerOrException();
Expand All @@ -52,24 +52,24 @@ private static ArgumentBuilder<CommandSourceStack, LiteralArgumentBuilder<Comman
throw MemberException.NO_PERMISSIONS;
}

party.settings().set(DefaultPartySettings.PUBLIC, publicParty);
player.displayClientMessage(setCurrentComponent("public party", publicParty), false);
party.settings().set("publicParty", publicParty);
player.displayClientMessage(setCurrentComponent("publicParty", publicParty), false);
});
return 1;
}))
.executes(context -> {
ServerPlayer player = context.getSource().getPlayerOrException();
CommandHelper.runAction(() -> {
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<CommandSourceStack, LiteralArgumentBuilder<CommandSourceStack>> friendlyFire() {
return Commands.literal(DefaultPartySettings.FRIENDLY_FIRE)
return Commands.literal("friendlyFire")
.then(Commands.argument("value", BoolArgumentType.bool())
.executes(context -> {
ServerPlayer player = context.getSource().getPlayerOrException();
Expand All @@ -81,24 +81,24 @@ private static ArgumentBuilder<CommandSourceStack, LiteralArgumentBuilder<Comman
throw MemberException.NO_PERMISSIONS;
}

party.settings().set(DefaultPartySettings.FRIENDLY_FIRE, friendlyFire);
player.displayClientMessage(setCurrentComponent("friendly fire", friendlyFire), false);
party.settings().set("friendlyFire", friendlyFire);
player.displayClientMessage(setCurrentComponent("friendlyFire", friendlyFire), false);
});
return 1;
}))
.executes(context -> {
ServerPlayer player = context.getSource().getPlayerOrException();
CommandHelper.runAction(() -> {
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<CommandSourceStack, LiteralArgumentBuilder<CommandSourceStack>> passiveTeleport() {
return Commands.literal(DefaultPartySettings.PASSIVE_TP)
return Commands.literal("passiveTeleport")
.then(Commands.argument("value", BoolArgumentType.bool())
.executes(context -> {
ServerPlayer player = context.getSource().getPlayerOrException();
Expand All @@ -110,17 +110,17 @@ private static ArgumentBuilder<CommandSourceStack, LiteralArgumentBuilder<Comman
throw MemberException.NO_PERMISSIONS;
}

party.settings().set(DefaultPartySettings.PASSIVE_TP, passiveTeleport);
player.displayClientMessage(setCurrentComponent("passive teleport", passiveTeleport), false);
party.settings().set("passiveTeleport", passiveTeleport);
player.displayClientMessage(setCurrentComponent("passiveTeleport", passiveTeleport), false);
});
return 1;
}))
.executes(context -> {
ServerPlayer player = context.getSource().getPlayerOrException();
CommandHelper.runAction(() -> {
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;
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import java.util.UUID;

public record ServerboundSetSettingPacket(String setting, boolean value,
UUID member) implements Packet<ServerboundSetSettingPacket> {
UUID member, boolean partySettings) implements Packet<ServerboundSetSettingPacket> {

public static final ResourceLocation ID = new ResourceLocation(Argonauts.MOD_ID, "set_setting");
public static final PacketHandler<ServerboundSetSettingPacket> HANDLER = new Handler();
Expand All @@ -38,14 +38,16 @@ public void encode(ServerboundSetSettingPacket message, FriendlyByteBuf buffer)
buffer.writeUtf(message.setting);
buffer.writeBoolean(message.value);
buffer.writeUUID(message.member);
buffer.writeBoolean(message.partySettings);
}

@Override
public ServerboundSetSettingPacket decode(FriendlyByteBuf buffer) {
return new ServerboundSetSettingPacket(
buffer.readUtf(),
buffer.readBoolean(),
buffer.readUUID());
buffer.readUUID(),
buffer.readBoolean());
}

@Override
Expand All @@ -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);
}
});
}
}
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 22a1c9b

Please sign in to comment.