push something to WD

This commit is contained in:
Mysticpasta1 2023-03-03 03:02:52 -06:00
parent 883269c20c
commit 7d66708a5e
6 changed files with 38 additions and 14 deletions

View File

@ -37,8 +37,9 @@ dependencies {
} }
forge "net.minecraftforge:forge:${project.forge_version}" forge "net.minecraftforge:forge:${project.forge_version}"
modImplementation "com.github.Mysticpasta1:mcef-forge:3797701d8f" modImplementation "com.github.Mysticpasta1:mcef-forge:a9bf168a92"
modImplementation "curse.maven:cloth_config_forge-348521:3972423" modImplementation "curse.maven:cloth_config_forge-348521:3972423"
modImplementation "curse.maven:SU-370704:4410614"
// Uncomment the following line to enable the deprecated Fabric API modules. // Uncomment the following line to enable the deprecated Fabric API modules.
// These are included in the Fabric API production distribution and allow you to update your mod to the latest modules at a later more convenient time. // These are included in the Fabric API production distribution and allow you to update your mod to the latest modules at a later more convenient time.

View File

@ -12,6 +12,7 @@ import net.minecraft.ChatFormatting;
import net.minecraft.advancements.Advancement; import net.minecraft.advancements.Advancement;
import net.minecraft.advancements.CriteriaTriggers; import net.minecraft.advancements.CriteriaTriggers;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
@ -56,6 +57,7 @@ import net.montoyo.wd.utilities.Util;
import java.io.*; import java.io.*;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.UUID; import java.util.UUID;
@ -204,6 +206,8 @@ public class WebDisplays {
registerSound("ironic"); registerSound("ironic");
} }
ArrayList<ResourceKey<Level>> serverStartedDimensions = new ArrayList<>();
@SubscribeEvent @SubscribeEvent
public void onWorldLoad(LevelEvent.Load ev) { public void onWorldLoad(LevelEvent.Load ev) {
if (ev.getLevel() instanceof Level level) { if (ev.getLevel() instanceof Level level) {
@ -234,9 +238,13 @@ public class WebDisplays {
if (miniservPort != 0) { if (miniservPort != 0) {
Server sv = Server.getInstance(); Server sv = Server.getInstance();
sv.setPort(miniservPort);
sv.setDirectory(new File(worldDir, "wd_filehost")); if(!serverStartedDimensions.contains(level.dimension())) {
sv.start(); sv.setPort(miniservPort);
sv.setDirectory(new File(worldDir, "wd_filehost"));
sv.start();
serverStartedDimensions.add(level.dimension());
}
} }
} }
} }
@ -248,6 +256,7 @@ public class WebDisplays {
return; return;
Server sw = Server.getInstance(); Server sw = Server.getInstance();
sw.stopServer(); sw.stopServer();
serverStartedDimensions.remove(level.dimension());
} }
} }

View File

@ -12,6 +12,7 @@ import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.AABB;
import net.montoyo.wd.SharedProxy;
import net.montoyo.wd.WebDisplays; import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.client.ClientProxy; import net.montoyo.wd.client.ClientProxy;
import net.montoyo.wd.entity.TileEntityScreen; import net.montoyo.wd.entity.TileEntityScreen;
@ -48,15 +49,17 @@ public class ScreenRenderer implements BlockEntityRenderer<TileEntityScreen> {
for(int i = 0; i < te.screenCount(); i++) { for(int i = 0; i < te.screenCount(); i++) {
TileEntityScreen.Screen scr = te.getScreen(i); TileEntityScreen.Screen scr = te.getScreen(i);
if(scr.browser == null) { if(scr.browser == null) {
scr.browser = ((ClientProxy) WebDisplays.PROXY).getMCEF().createBrowser(WebDisplays.applyBlacklist(scr.url)); if(WebDisplays.PROXY instanceof ClientProxy clientProxy) {
scr.browser = clientProxy.getMCEF().createBrowser(WebDisplays.applyBlacklist(scr.url));
if(scr.rotation.isVertical) if (scr.rotation.isVertical)
scr.browser.resize(scr.resolution.y, scr.resolution.x); scr.browser.resize(scr.resolution.y, scr.resolution.x);
else else
scr.browser.resize(scr.resolution.x, scr.resolution.y); scr.browser.resize(scr.resolution.x, scr.resolution.y);
scr.doTurnOnAnim = true; scr.doTurnOnAnim = true;
scr.turnOnTime = System.currentTimeMillis(); scr.turnOnTime = System.currentTimeMillis();
}
} }
tmpi.set(scr.side.right); tmpi.set(scr.side.right);

View File

@ -41,6 +41,7 @@ public class Server implements Runnable {
private volatile boolean running; private volatile boolean running;
private volatile Thread thread; private volatile Thread thread;
public int getPort() {return port;}
public void setPort(int p) { public void setPort(int p) {
port = p; port = p;
} }

View File

@ -6,8 +6,10 @@ package net.montoyo.wd.net.client;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.network.NetworkEvent; import net.minecraftforge.network.NetworkEvent;
import net.montoyo.wd.WebDisplays; import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.client.ClientProxy;
import net.montoyo.wd.miniserv.client.Client; import net.montoyo.wd.miniserv.client.Client;
import net.montoyo.wd.utilities.Log; import net.montoyo.wd.utilities.Log;
@ -36,7 +38,9 @@ public class CMessageMiniservKey {
contextSupplier.get().enqueueWork(() -> { contextSupplier.get().enqueueWork(() -> {
if (Client.getInstance().decryptKey(encryptedKey)) { if (Client.getInstance().decryptKey(encryptedKey)) {
Log.info("Successfully received and decrypted key, starting miniserv client..."); Log.info("Successfully received and decrypted key, starting miniserv client...");
WebDisplays.PROXY.startMiniservClient(); if(WebDisplays.PROXY instanceof ClientProxy proxy) {
proxy.startMiniservClient();
}
} }
}); });
contextSupplier.get().setPacketHandled(true); contextSupplier.get().setPacketHandled(true);

View File

@ -4,13 +4,19 @@
package net.montoyo.wd.net.server; package net.montoyo.wd.net.server;
import net.minecraft.client.Minecraft;
import net.minecraft.core.Direction;
import net.minecraft.network.Connection;
import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.protocol.PacketFlow;
import net.minecraftforge.network.NetworkDirection;
import net.minecraftforge.network.NetworkEvent; import net.minecraftforge.network.NetworkEvent;
import net.montoyo.wd.miniserv.server.ClientManager; import net.montoyo.wd.miniserv.server.ClientManager;
import net.montoyo.wd.miniserv.server.Server; import net.montoyo.wd.miniserv.server.Server;
import net.montoyo.wd.net.Messages; import net.montoyo.wd.net.Messages;
import net.montoyo.wd.net.client.CMessageMiniservKey; import net.montoyo.wd.net.client.CMessageMiniservKey;
import java.util.Objects;
import java.util.function.Supplier; import java.util.function.Supplier;
public class SMessageMiniservConnect { public class SMessageMiniservConnect {
@ -47,10 +53,10 @@ public class SMessageMiniservConnect {
public void handle(Supplier<NetworkEvent.Context> contextSupplier) { public void handle(Supplier<NetworkEvent.Context> contextSupplier) {
ClientManager cliMgr = Server.getInstance().getClientManager(); ClientManager cliMgr = Server.getInstance().getClientManager();
byte[] encKey = cliMgr.encryptClientKey(contextSupplier.get().getSender().getGameProfile().getId(), modulus, exponent); byte[] encKey = cliMgr.encryptClientKey(Objects.requireNonNull(contextSupplier.get().getSender()).getGameProfile().getId(), modulus, exponent);
if (encKey != null) { if (encKey != null) {
Messages.INSTANCE.sendToServer(new CMessageMiniservKey(encKey)); Messages.INSTANCE.sendTo(new CMessageMiniservKey(encKey), new Connection(PacketFlow.SERVERBOUND), NetworkDirection.LOGIN_TO_SERVER);
} }
contextSupplier.get().setPacketHandled(true); contextSupplier.get().setPacketHandled(true);