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}"
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:SU-370704:4410614"
// 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.

View File

@ -12,6 +12,7 @@ import net.minecraft.ChatFormatting;
import net.minecraft.advancements.Advancement;
import net.minecraft.advancements.CriteriaTriggers;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.level.ServerPlayer;
@ -56,6 +57,7 @@ import net.montoyo.wd.utilities.Util;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
@ -204,6 +206,8 @@ public class WebDisplays {
registerSound("ironic");
}
ArrayList<ResourceKey<Level>> serverStartedDimensions = new ArrayList<>();
@SubscribeEvent
public void onWorldLoad(LevelEvent.Load ev) {
if (ev.getLevel() instanceof Level level) {
@ -234,9 +238,13 @@ public class WebDisplays {
if (miniservPort != 0) {
Server sv = Server.getInstance();
sv.setPort(miniservPort);
sv.setDirectory(new File(worldDir, "wd_filehost"));
sv.start();
if(!serverStartedDimensions.contains(level.dimension())) {
sv.setPort(miniservPort);
sv.setDirectory(new File(worldDir, "wd_filehost"));
sv.start();
serverStartedDimensions.add(level.dimension());
}
}
}
}
@ -248,6 +256,7 @@ public class WebDisplays {
return;
Server sw = Server.getInstance();
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.BlockEntityRendererProvider;
import net.minecraft.world.phys.AABB;
import net.montoyo.wd.SharedProxy;
import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.client.ClientProxy;
import net.montoyo.wd.entity.TileEntityScreen;
@ -48,15 +49,17 @@ public class ScreenRenderer implements BlockEntityRenderer<TileEntityScreen> {
for(int i = 0; i < te.screenCount(); i++) {
TileEntityScreen.Screen scr = te.getScreen(i);
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)
scr.browser.resize(scr.resolution.y, scr.resolution.x);
else
scr.browser.resize(scr.resolution.x, scr.resolution.y);
if (scr.rotation.isVertical)
scr.browser.resize(scr.resolution.y, scr.resolution.x);
else
scr.browser.resize(scr.resolution.x, scr.resolution.y);
scr.doTurnOnAnim = true;
scr.turnOnTime = System.currentTimeMillis();
scr.doTurnOnAnim = true;
scr.turnOnTime = System.currentTimeMillis();
}
}
tmpi.set(scr.side.right);

View File

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

View File

@ -6,8 +6,10 @@ package net.montoyo.wd.net.client;
import io.netty.buffer.ByteBuf;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.network.NetworkEvent;
import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.client.ClientProxy;
import net.montoyo.wd.miniserv.client.Client;
import net.montoyo.wd.utilities.Log;
@ -36,7 +38,9 @@ public class CMessageMiniservKey {
contextSupplier.get().enqueueWork(() -> {
if (Client.getInstance().decryptKey(encryptedKey)) {
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);

View File

@ -4,13 +4,19 @@
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.protocol.PacketFlow;
import net.minecraftforge.network.NetworkDirection;
import net.minecraftforge.network.NetworkEvent;
import net.montoyo.wd.miniserv.server.ClientManager;
import net.montoyo.wd.miniserv.server.Server;
import net.montoyo.wd.net.Messages;
import net.montoyo.wd.net.client.CMessageMiniservKey;
import java.util.Objects;
import java.util.function.Supplier;
public class SMessageMiniservConnect {
@ -47,10 +53,10 @@ public class SMessageMiniservConnect {
public void handle(Supplier<NetworkEvent.Context> contextSupplier) {
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) {
Messages.INSTANCE.sendToServer(new CMessageMiniservKey(encKey));
Messages.INSTANCE.sendTo(new CMessageMiniservKey(encKey), new Connection(PacketFlow.SERVERBOUND), NetworkDirection.LOGIN_TO_SERVER);
}
contextSupplier.get().setPacketHandled(true);