Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add vulgo to player storage to send server packet events #94

Merged
merged 2 commits into from
Apr 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
package com.mitsuaky.stanleyparable;

import com.mitsuaky.stanleyparable.client.ClientConfig;
import com.mitsuaky.stanleyparable.common.network.Messages;
import com.mitsuaky.stanleyparable.client.screen.ConfigScreen;
import com.mitsuaky.stanleyparable.server.ServerConfig;
import com.mitsuaky.stanleyparable.common.network.PacketHandler;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.client.ConfigScreenHandler;
import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.config.ModConfig;

import java.util.HashMap;
import java.util.Map;

@Mod(StanleyParableMod.MOD_ID)
public class StanleyParableMod {

public static final String MOD_ID = "stanleyparable";

public static final Map<String, String> playerVulgo = new HashMap<>();

public StanleyParableMod() {
Messages.register();
try {
initClient();
} catch (NoSuchMethodError e) {
// Running on server, do nothing.
}
initServer();
PacketHandler.register();
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> StanleyParableMod::initClient);
}

@OnlyIn(Dist.CLIENT)
Expand All @@ -32,8 +32,4 @@ public static void initClient() {
() -> new ConfigScreenHandler.ConfigScreenFactory((minecraft, parent) -> new ConfigScreen(parent)));
ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, ClientConfig.SPEC, "minecraftnarrator-client.toml");
}

public static void initServer() {
ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, ServerConfig.SPEC, "minecraftnarrator-server.toml");
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
package com.mitsuaky.stanleyparable.client;

import com.google.gson.JsonObject;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.ForgeConfigSpec;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

@OnlyIn(Dist.CLIENT)
public class ClientConfig {
private static final Logger LOGGER = LogManager.getLogger(ClientConfig.class);
public static final ForgeConfigSpec.Builder BUILDER = new ForgeConfigSpec.Builder();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package com.mitsuaky.stanleyparable.client;

import com.mitsuaky.stanleyparable.common.events.Event;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

@OnlyIn(Dist.CLIENT)
public class ClientEventHandler {
private static final Logger LOGGER = LogManager.getLogger(ClientEventHandler.class);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
import com.mitsuaky.stanleyparable.*;
import com.mitsuaky.stanleyparable.client.screen.ConfigScreen;
import com.mitsuaky.stanleyparable.common.events.Event;
import com.mitsuaky.stanleyparable.common.network.PacketHandler;
import com.mitsuaky.stanleyparable.common.network.PacketSyncPlayerData;
import com.mitsuaky.stanleyparable.server.ServerEvents;
import com.mojang.brigadier.CommandDispatcher;
import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft;
Expand Down Expand Up @@ -67,12 +70,8 @@ public static String getAsName(Entity entity) {
return entity.getName().getString();
}

public static String getPlayerName(Entity entity) {
if (ClientConfig.AKA.get().isEmpty()) {
return entity.getName().getString();
} else {
return ClientConfig.AKA.get();
}
public static String getPlayerName(Player player) {
return ServerEvents.getPlayerName(player);
}

@SubscribeEvent
Expand Down Expand Up @@ -217,7 +216,7 @@ public static void onPlayerAte(LivingEntityUseItemEvent.Finish event) {
}

String item_name = getAsName(event.getItem());
String player = getPlayerName(event.getEntity());
String player = getPlayerName((Player) event.getEntity());
wsClient.sendEvent(Event.PLAYER_ATE.getValue(), String.format("Jogador \"%s\" comeu/bebeu \"%s\"", player, item_name));
}

Expand Down Expand Up @@ -278,6 +277,8 @@ public static void onPlayerJoin(EntityJoinLevelEvent event) {
String playerName = getPlayerName(player);
wsClient.sendEvent(Event.JOIN_WORLD.getValue(), String.format("Jogador \"%s\" entrou no mundo \"%s\"", playerName, worldName));
}
StanleyParableMod.playerVulgo.put(player.getUUID().toString(), ClientConfig.AKA.get());
PacketHandler.sendToServer(new PacketSyncPlayerData(ClientConfig.AKA.get()));
}

private enum TimeState {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@

import com.mojang.blaze3d.platform.InputConstants;
import net.minecraft.client.KeyMapping;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.client.settings.KeyConflictContext;
import org.lwjgl.glfw.GLFW;

@OnlyIn(Dist.CLIENT)
public class KeyBinding {
public static final String KEY_CATEGORY = "key.category.narrator";
public static final String KEY_VOICE_ID = "key.voice_activate";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

Expand All @@ -15,6 +17,7 @@
import java.util.concurrent.*;
import java.util.function.Function;

@OnlyIn(Dist.CLIENT)
public class WebSocketClient {
private static WebSocketClient instance;
private static final Logger LOGGER = LogManager.getLogger(WebSocketClient.class);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
package com.mitsuaky.stanleyparable.client.screen;

import com.mitsuaky.stanleyparable.StanleyParableMod;
import com.mitsuaky.stanleyparable.client.ClientConfig;
import com.mitsuaky.stanleyparable.client.WebSocketClient;
import com.mitsuaky.stanleyparable.client.screen.widget.PingWidget;
import com.mitsuaky.stanleyparable.common.network.PacketHandler;
import com.mitsuaky.stanleyparable.common.network.PacketSyncPlayerData;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.AbstractSliderButton;
import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.Checkbox;
import net.minecraft.client.gui.components.EditBox;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.Component;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.jetbrains.annotations.NotNull;

import java.awt.*;

@OnlyIn(Dist.CLIENT)
public class ConfigScreen extends Screen {
private final Screen parent;
private final int commonWidth = 250;
Expand Down Expand Up @@ -175,6 +181,9 @@ public void onPress() {
ClientConfig.NARRATOR_VOLUME.set(narratorVolume);
ClientConfig.AKA.set(akaWidget.getValue());
assert this.minecraft != null;
assert this.minecraft.player != null;
StanleyParableMod.playerVulgo.put(this.minecraft.player.getUUID().toString(), akaWidget.getValue());
PacketHandler.sendToServer(new PacketSyncPlayerData(akaWidget.getValue()));
this.minecraft.setScreen(new TokenScreen(this));
}).pos(commonX, commonY).size(commonWidth, commonHeight).build());

Expand All @@ -189,10 +198,12 @@ public void onPress() {
ClientConfig.COOLDOWN_INDIVIDUAL.set(coolDownIndividual);
ClientConfig.COOLDOWN_GLOBAL.set(coolDownGlobal);
ClientConfig.NARRATOR_VOLUME.set(narratorVolume);
ClientConfig.AKA.set(akaWidget.getValue());
ClientConfig.applyServerConfig();
WebSocketClient.getInstance().setOnPong(null);
assert this.minecraft != null;
assert this.minecraft.player != null;
StanleyParableMod.playerVulgo.put(this.minecraft.player.getUUID().toString(), akaWidget.getValue());
PacketHandler.sendToServer(new PacketSyncPlayerData(akaWidget.getValue()));
this.minecraft.setScreen(this.parent);
}).pos(commonX, this.height - 30).size(commonWidth, commonHeight).build());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,15 @@
import net.minecraft.client.gui.components.EditBox;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.Component;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.jetbrains.annotations.NotNull;

import java.awt.*;

@OnlyIn(Dist.CLIENT)
public class TokenScreen extends Screen {
private static final Logger LOGGER = LogManager.getLogger(ConfigScreen.class);
private final Screen parent;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.mitsuaky.stanleyparable.common.network;

import com.mitsuaky.stanleyparable.client.ClientEventHandler;
import com.mitsuaky.stanleyparable.client.ClientEvents;
import com.mitsuaky.stanleyparable.common.events.Event;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.event.network.CustomPayloadEvent;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.mitsuaky.stanleyparable.common.network;

import com.mitsuaky.stanleyparable.StanleyParableMod;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.network.*;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class PacketHandler {
private static final Logger LOGGER = LogManager.getLogger(PacketHandler.class);


private static SimpleChannel INSTANCE;

private static int packetId = 0;

private static int id() {
return packetId++;
}

public static void register() {
SimpleChannel net = ChannelBuilder.named(new ResourceLocation(StanleyParableMod.MOD_ID, "messages")).networkProtocolVersion(1).clientAcceptedVersions((p1, p2) -> true).serverAcceptedVersions((p1, p2) -> true).simpleChannel();

INSTANCE = net;

net.messageBuilder(PacketEventToClient.class, id(), NetworkDirection.PLAY_TO_CLIENT).decoder(PacketEventToClient::new).encoder(PacketEventToClient::toBytes).consumerMainThread(PacketEventToClient::handle).add();

net.messageBuilder(PacketSyncPlayerData.class, id(), NetworkDirection.PLAY_TO_SERVER).decoder(PacketSyncPlayerData::new).encoder(PacketSyncPlayerData::toBytes).consumerMainThread(PacketSyncPlayerData::handle).add();
}

public static <Packet> void sendToServer(Packet message) {
PacketDistributor.PacketTarget target = PacketDistributor.SERVER.noArg();
INSTANCE.send(message, target);
}

public static <Packet> void sendToPlayer(Packet message, ServerPlayer player) {
LOGGER.debug("Sending {} to {}", message, player);
PacketDistributor.PacketTarget target = PacketDistributor.PLAYER.with(player);
INSTANCE.send(message, target);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.mitsuaky.stanleyparable.common.network;

import com.mitsuaky.stanleyparable.server.ServerSyncHandler;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.event.network.CustomPayloadEvent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class PacketSyncPlayerData {
private static final Logger LOGGER = LogManager.getLogger(PacketEventToClient.class);
private final String vulgo;

public PacketSyncPlayerData(String vulgo) {
this.vulgo = vulgo;
}

public PacketSyncPlayerData(FriendlyByteBuf buf) {
vulgo = buf.readUtf();
}

public void toBytes(FriendlyByteBuf buf) {
buf.writeUtf(vulgo);
}

public void handle(CustomPayloadEvent.Context ctx) {
ctx.enqueueWork(() -> {
LOGGER.debug("Config received");
ServerPlayer player = ctx.getSender();
if (player != null) {
ServerSyncHandler.handle(player, vulgo);
}
});
}
}

This file was deleted.

Loading
Loading