Skip to content

Commit

Permalink
Fix a few crash on load issues and Commands are real - SAVED DATA DOE…
Browse files Browse the repository at this point in the history
…SNT WORK WHYYYYYYYYYYYYYYYYYYY
  • Loading branch information
ReclipseTheOne committed Jan 11, 2025
1 parent 58ddfe2 commit d91324f
Show file tree
Hide file tree
Showing 9 changed files with 59 additions and 18 deletions.
24 changes: 22 additions & 2 deletions src/main/java/com/portingdeadmods/researchd/ResearchTeamUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import com.portingdeadmods.researchd.data.ResearchdSavedData;
import com.portingdeadmods.researchd.data.helper.ResearchTeam;
import com.portingdeadmods.researchd.networking.TransferOwnershipPayload;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import net.neoforged.neoforge.network.PacketDistributor;
Expand Down Expand Up @@ -114,6 +116,10 @@ public static void handleLeaveTeam(Player requester, UUID nextToLead) {

ResearchdSavedData savedData = ResearchdSavedData.get(level);

if (!ResearchTeamUtil.isInATeam(requester)) {
requester.sendSystemMessage(Component.literal("You're not in a team!").withStyle(ChatFormatting.RED));
return;
}
// Handle the case of transfering ownership
if (ResearchTeamUtil.isResearchTeamLeader(requester)) {
PacketDistributor.sendToServer(new TransferOwnershipPayload(nextToLead));
Expand All @@ -138,6 +144,8 @@ public static void handleManageMember(Player requester, UUID member, boolean rem
ResearchTeamUtil.getResearchTeam(requester).addSentInvite(member);
savedData.setDirty();
}
} else {
requester.sendSystemMessage(Component.literal("You don't have the permission to do that!").withStyle(ChatFormatting.RED));
}
}

Expand All @@ -153,6 +161,8 @@ public static void handleManageModerator(Player requester, UUID moderator, boole
ResearchTeamUtil.getResearchTeam(requester).addModerator(moderator);
savedData.setDirty();
}
} else {
requester.sendSystemMessage(Component.literal("You don't have the permission to do that!").withStyle(ChatFormatting.RED));
}
}

Expand All @@ -161,7 +171,9 @@ public static void handleSetName(Player requester, String name) {
ResearchdSavedData savedData = ResearchdSavedData.get(requester.level());

if (ResearchTeamUtil.getPermissionLevel(requester) == 2) {
String oldname = ResearchTeamUtil.getResearchTeam(requester).getName();
ResearchTeamUtil.getResearchTeam(requester).setName(name);
requester.sendSystemMessage(Component.literal("Team name changed from " + oldname + " to " + name).withStyle(ChatFormatting.GREEN));
savedData.setDirty();
}
}
Expand All @@ -184,6 +196,9 @@ public static void handleTransferOwnership(Player requester, UUID nextToLead) {
// Set the old leader as moderator
ResearchTeamUtil.getResearchTeam(requester).addModerator(requesterId);
savedData.setDirty();
requester.sendSystemMessage(Component.literal("Ownership transfered to " + nextToLead).withStyle(ChatFormatting.GREEN));
} else {
requester.sendSystemMessage(Component.literal("You can't transfer ownership to someone who's not in your team!").withStyle(ChatFormatting.RED));
}
}
}
Expand All @@ -194,8 +209,7 @@ public static void handleCreateTeam(Player requester, String name) {

if (!ResearchTeamUtil.isInATeam(requester)) {
ResearchTeam team = new ResearchTeam(requesterId, name);
team.addModerator(requesterId);
team.addMember(requesterId);
requester.sendSystemMessage(Component.literal("Team " + name + " created!").withStyle(ChatFormatting.GREEN));
savedData.getTeams().put(requesterId, team);
savedData.setDirty();
}
Expand All @@ -217,6 +231,8 @@ public static void handleSendInviteToPlayer(Player requester, UUID invited, bool
team.addSentInvite(invited);
}
ResearchdSavedData.get(requester.level()).setDirty();
} else {
requester.sendSystemMessage(Component.literal("You got to be in a team to do that! Create one with /researchd team create <name>"));
}
}

Expand All @@ -232,7 +248,11 @@ public static void handleRequestToJoin(Player requester, UUID teamMember, boolea
team.addSentInvite(requester.getUUID());
}
ResearchdSavedData.get(requester.level()).setDirty();
} else {
requester.sendSystemMessage(Component.literal("The player you're trying to join is not in a team!").withStyle(ChatFormatting.RED));
}
} else {
requester.sendSystemMessage(Component.literal("The player you're trying to join does not exist!").withStyle(ChatFormatting.RED));
}
}
}
3 changes: 3 additions & 0 deletions src/main/java/com/portingdeadmods/researchd/Researchd.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.portingdeadmods.researchd.api.research.Research;
import com.portingdeadmods.researchd.api.research.ResearchPack;
import com.portingdeadmods.researchd.api.research.serializers.ResearchPredicateSerializer;
import com.portingdeadmods.researchd.commands.ResearchdCommands;
import com.portingdeadmods.researchd.data.ResearchdAttachments;
import com.portingdeadmods.researchd.registries.serializers.ResearchPackSerializers;
import com.portingdeadmods.researchd.registries.serializers.ResearchPredicateSerializers;
Expand All @@ -15,7 +16,9 @@
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
import net.neoforged.neoforge.event.RegisterCommandsEvent;
import net.neoforged.neoforge.event.level.BlockEvent;
import net.neoforged.neoforge.event.server.ServerStartingEvent;
import net.neoforged.neoforge.registries.DataPackRegistryEvent;
import net.neoforged.neoforge.registries.NewRegistryEvent;
import org.slf4j.Logger;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import net.minecraft.commands.Commands;

import java.util.List;
import java.util.stream.Collectors;

public class ResearchdCommands {
private static List<String> aliases = List.of("researchd", "rd", "research", "res");
Expand All @@ -17,10 +16,7 @@ public static void register(CommandDispatcher<CommandSourceStack> dispatcher) {
).toList();

List<LiteralCommandNode<CommandSourceStack>> subCommands = List.of(
OpenCommand().build(),
ReloadCommand().build(),
DebugCommand().build(),
PrintNBTCommand().build()
TeamCommands.build()
);

rootCommands.forEach( root -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@
import net.minecraft.commands.SharedSuggestionProvider;
import net.minecraft.server.level.ServerPlayer;

public class TeamCommand implements CommandBase {

@Override
public LiteralCommandNode<CommandSourceStack> build() {
public class TeamCommands {
public static LiteralCommandNode<CommandSourceStack> build() {
return Commands.literal("team")
.then(Commands.literal("create")
.then(Commands.argument("name", StringArgumentType.string())
Expand Down Expand Up @@ -45,7 +43,7 @@ public LiteralCommandNode<CommandSourceStack> build() {
ServerPlayer player = source.getPlayer();

if (player != null) {
// TO CONTINUE ResearchTeamUtil.handleSendInviteToPlayer(player, context.getSource().getLevel().getPlayerByUUID().getString(context, "player"), false);
ResearchTeamUtil.handleSendInviteToPlayer(player, context.getSource().getLevel().getServer().getPlayerList().getPlayerByName(StringArgumentType.getString(context, "player")).getUUID(), false);
}

return 1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.world.level.Level;

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

Expand Down Expand Up @@ -41,11 +42,11 @@ public ResearchTeam(String name, List<UUID> members, List<UUID> moderators, List
}

public ResearchTeam(UUID uuid) {
this("New Research Team", List.of(uuid), List.of(), List.of(), List.of(), uuid, false);
this("New Research Team", new ArrayList<UUID>(List.of(uuid)), new ArrayList<UUID>(), new ArrayList<UUID>(), new ArrayList<UUID>(), uuid, false);
}

public ResearchTeam(UUID uuid, String name) {
this(name, List.of(uuid), List.of(), List.of(), List.of(), uuid, false);
this(name, new ArrayList<UUID>(List.of(uuid)), new ArrayList<UUID>(), new ArrayList<UUID>(), new ArrayList<UUID>(), uuid, false);
}

public String getName() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.portingdeadmods.researchd.Researchd;
import com.portingdeadmods.researchd.client.ResearchdKeybinds;
import com.portingdeadmods.researchd.client.screens.ResearchScreen;
import com.portingdeadmods.researchd.commands.ResearchdCommands;
import com.portingdeadmods.researchd.data.ResearchdAttachments;
import net.minecraft.client.Minecraft;
import net.minecraft.server.level.ServerLevel;
Expand All @@ -14,6 +15,7 @@
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.client.event.ClientTickEvent;
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
import net.neoforged.neoforge.event.RegisterCommandsEvent;
import net.neoforged.neoforge.event.level.BlockEvent;

import java.util.UUID;
Expand Down Expand Up @@ -41,5 +43,15 @@ private static void entityPlaceEvent(BlockEvent.EntityPlaceEvent event) {
serverLevel.getBlockEntity(event.getPos()).setData(ResearchdAttachments.PLACED_BY_UUID, uuid);
}
}

@SubscribeEvent
private static void onCommandRegister(RegisterCommandsEvent event) {
ResearchdCommands.register(event.getDispatcher());
}
}

@EventBusSubscriber(modid = Researchd.MODID, value = Dist.DEDICATED_SERVER)
public static final class Server {

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import java.util.UUID;

public record InvitePlayerPayload(UUID invited, boolean remove) implements CustomPacketPayload {
public static final Type<InvitePlayerPayload> TYPE = new Type<>(Researchd.rl("set_name_payload"));
public static final Type<InvitePlayerPayload> TYPE = new Type<>(Researchd.rl("invite_player_payload"));
public static final StreamCodec<RegistryFriendlyByteBuf, InvitePlayerPayload> STREAM_CODEC = StreamCodec.composite(
UUIDUtil.STREAM_CODEC,
InvitePlayerPayload::invited,
Expand All @@ -28,7 +28,7 @@ public record InvitePlayerPayload(UUID invited, boolean remove) implements Custo
return TYPE;
}

public static void setNameAction(InvitePlayerPayload payload, IPayloadContext context) {
public static void invitePlayerAction(InvitePlayerPayload payload, IPayloadContext context) {
context.enqueueWork(() -> {
ResearchTeamUtil.handleSendInviteToPlayer(context.player(), payload.invited, payload.remove);
}).exceptionally(e -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,16 @@ public static void registerPayloads(final RegisterPayloadHandlersEvent event) {
SetNamePayload.STREAM_CODEC,
SetNamePayload::setNameAction
);

registrar.playToServer(
InvitePlayerPayload.TYPE,
InvitePlayerPayload.STREAM_CODEC,
InvitePlayerPayload::invitePlayerAction
);
registrar.playToServer(
RequestToJoinPayload.TYPE,
RequestToJoinPayload.STREAM_CODEC,
RequestToJoinPayload::requestToJoinAction
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import java.util.UUID;

public record RequestToJoinPayload(UUID toJoin, boolean remove) implements CustomPacketPayload {
public static final Type<RequestToJoinPayload> TYPE = new Type<>(Researchd.rl("set_name_payload"));
public static final Type<RequestToJoinPayload> TYPE = new Type<>(Researchd.rl("request_to_join_payload"));
public static final StreamCodec<RegistryFriendlyByteBuf, RequestToJoinPayload> STREAM_CODEC = StreamCodec.composite(
UUIDUtil.STREAM_CODEC,
RequestToJoinPayload::toJoin,
Expand All @@ -28,7 +28,7 @@ public record RequestToJoinPayload(UUID toJoin, boolean remove) implements Custo
return TYPE;
}

public static void setNameAction(RequestToJoinPayload payload, IPayloadContext context) {
public static void requestToJoinAction(RequestToJoinPayload payload, IPayloadContext context) {
context.enqueueWork(() -> {
ResearchTeamUtil.handleRequestToJoin(context.player(), payload.toJoin, payload.remove);
}).exceptionally(e -> {
Expand Down

0 comments on commit d91324f

Please sign in to comment.