Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add buttons to toggle allowVisits and allowRequests
- Loading branch information
Showing
5 changed files
with
146 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
64 changes: 64 additions & 0 deletions
64
src/main/java/de/melanx/skyguis/network/handler/ToggleStateButtonClick.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
package de.melanx.skyguis.network.handler; | ||
|
||
import de.melanx.skyblockbuilder.data.SkyblockSavedData; | ||
import de.melanx.skyblockbuilder.data.Team; | ||
import de.melanx.skyguis.util.ToggleButtons; | ||
import net.minecraft.network.FriendlyByteBuf; | ||
import net.minecraft.server.level.ServerPlayer; | ||
import net.minecraft.world.level.Level; | ||
import net.minecraftforge.network.NetworkEvent; | ||
import org.moddingx.libx.network.PacketHandler; | ||
import org.moddingx.libx.network.PacketSerializer; | ||
|
||
import java.util.UUID; | ||
import java.util.function.Supplier; | ||
|
||
public record ToggleStateButtonClick(UUID team, ToggleButtons.Type type) { | ||
|
||
public static class Handler implements PacketHandler<ToggleStateButtonClick> { | ||
|
||
@Override | ||
public Target target() { | ||
return Target.MAIN_THREAD; | ||
} | ||
|
||
@Override | ||
public boolean handle(ToggleStateButtonClick msg, Supplier<NetworkEvent.Context> ctx) { | ||
ServerPlayer player = ctx.get().getSender(); | ||
if (player == null) { | ||
return true; | ||
} | ||
|
||
Level level = player.level(); | ||
SkyblockSavedData data = SkyblockSavedData.get(level); | ||
Team team = data.getTeam(msg.team); | ||
if (team != null) { | ||
switch (msg.type) { | ||
case VISITS -> team.setAllowVisit(!team.allowsVisits()); | ||
case JOIN_REQUEST -> team.setAllowJoinRequest(!team.allowsJoinRequests()); | ||
} | ||
} | ||
|
||
return true; | ||
} | ||
} | ||
|
||
public static class Serializer implements PacketSerializer<ToggleStateButtonClick> { | ||
|
||
@Override | ||
public Class<ToggleStateButtonClick> messageClass() { | ||
return ToggleStateButtonClick.class; | ||
} | ||
|
||
@Override | ||
public void encode(ToggleStateButtonClick msg, FriendlyByteBuf buffer) { | ||
buffer.writeUUID(msg.team); | ||
buffer.writeEnum(msg.type); | ||
} | ||
|
||
@Override | ||
public ToggleStateButtonClick decode(FriendlyByteBuf buffer) { | ||
return new ToggleStateButtonClick(buffer.readUUID(), buffer.readEnum(ToggleButtons.Type.class)); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
package de.melanx.skyguis.util; | ||
|
||
import de.melanx.skyblockbuilder.data.Team; | ||
import de.melanx.skyguis.SkyGUIs; | ||
import net.minecraft.ChatFormatting; | ||
import net.minecraft.client.gui.components.Button; | ||
import net.minecraft.client.gui.components.Tooltip; | ||
import net.minecraft.network.chat.Component; | ||
import net.minecraft.network.chat.MutableComponent; | ||
|
||
public class ToggleButtons { | ||
|
||
private static final Component ALLOWED = ComponentBuilder.text("allowed").withStyle(ChatFormatting.GREEN); | ||
private static final Component DISALLOWED = ComponentBuilder.text("disallowed").withStyle(ChatFormatting.RED); | ||
|
||
public static void toggleState(Team team, Button button, MutableComponent base, Type type) { | ||
switch (type) { | ||
case VISITS -> team.setAllowVisit(!team.allowsVisits()); | ||
case JOIN_REQUEST -> team.setAllowJoinRequest(!team.allowsJoinRequests()); | ||
} | ||
button.setTooltip(Tooltip.create(base.copy().append(getStatus(team, type) ? ALLOWED : DISALLOWED))); | ||
SkyGUIs.getNetwork().toggleState(team, type); | ||
} | ||
|
||
public static boolean getStatus(Team team, Type type) { | ||
return switch (type) { | ||
case VISITS -> team.allowsVisits(); | ||
case JOIN_REQUEST -> team.allowsJoinRequests(); | ||
}; | ||
} | ||
|
||
public enum Type { | ||
VISITS, | ||
JOIN_REQUEST | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters