* Moved CMessage* to wd.net.client and SMessage* to wd.net.server

This commit is contained in:
Nicolas BARBOTIN 2018-02-08 00:44:45 +01:00
parent 4b8acc8801
commit edab9d80bd
29 changed files with 82 additions and 39 deletions

View File

@ -5,6 +5,7 @@ This is the unfinished port of the WebDisplays mod for Minecraft 1.12.2. The tex
* Peripheral: OpenComputers interface
* Server blocks (to store some of the player's web pages)
* Read config (see "Config elements" below)
* Miniserv timeout
### TODO
* French translations

View File

@ -34,9 +34,8 @@ import net.montoyo.wd.block.BlockScreen;
import net.montoyo.wd.core.*;
import net.montoyo.wd.entity.TileEntityScreen;
import net.montoyo.wd.item.*;
import net.montoyo.wd.miniserv.client.Client;
import net.montoyo.wd.miniserv.server.Server;
import net.montoyo.wd.net.CMessageServerInfo;
import net.montoyo.wd.net.client.CMessageServerInfo;
import net.montoyo.wd.net.Messages;
import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.Util;

View File

@ -53,8 +53,8 @@ import net.montoyo.wd.data.GuiData;
import net.montoyo.wd.entity.TileEntityScreen;
import net.montoyo.wd.item.ItemMulti;
import net.montoyo.wd.miniserv.client.Client;
import net.montoyo.wd.net.SMessagePadCtrl;
import net.montoyo.wd.net.SMessageScreenCtrl;
import net.montoyo.wd.net.server.SMessagePadCtrl;
import net.montoyo.wd.net.server.SMessageScreenCtrl;
import net.montoyo.wd.utilities.*;
import javax.annotation.Nonnull;

View File

@ -18,7 +18,7 @@ import net.montoyo.wd.core.IScreenQueryHandler;
import net.montoyo.wd.core.IUpgrade;
import net.montoyo.wd.core.JSServerRequest;
import net.montoyo.wd.entity.TileEntityScreen;
import net.montoyo.wd.net.SMessageScreenCtrl;
import net.montoyo.wd.net.server.SMessageScreenCtrl;
import net.montoyo.wd.utilities.*;
import java.util.ArrayDeque;

View File

@ -15,11 +15,14 @@ import net.montoyo.wd.miniserv.client.ClientTaskGetFile;
import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.Util;
import java.io.UnsupportedEncodingException;
import java.util.UUID;
public class WDScheme implements IScheme {
private static final String ERROR_PAGE = "<!DOCTYPE html><html><head></head><body><h1>%d %s</h1><hr /><i>Miniserv powered by WebDisplays</i></body></html>";
private ClientTaskGetFile task;
private boolean isErrorPage;
@Override
public SchemePreResponse processRequest(String url) {
@ -65,13 +68,30 @@ public class WDScheme implements IScheme {
resp.setStatus(200);
resp.setStatusText("OK");
resp.setResponseLength(-1);
} else if(status == Constants.GETF_STATUS_NOT_FOUND) {
resp.setStatus(404);
resp.setStatusText("Not Found");
resp.setResponseLength(0);
return;
}
int errCode;
String errStr;
if(status == Constants.GETF_STATUS_NOT_FOUND) {
errCode = 404;
errStr = "Not Found";
} else {
resp.setStatus(500);
resp.setStatusText("Internal Server Error");
errCode = 500;
errStr = "Internal Server Error";
}
resp.setStatus(errCode);
resp.setStatusText(errStr);
try {
dataToWrite = String.format(ERROR_PAGE, errCode, errStr).getBytes("UTF-8");
dataOffset = 0;
amountToWrite = dataToWrite.length;
isErrorPage = true;
resp.setResponseLength(amountToWrite);
} catch(UnsupportedEncodingException ex) {
resp.setResponseLength(0);
}
}
@ -83,6 +103,11 @@ public class WDScheme implements IScheme {
@Override
public boolean readResponse(ISchemeResponseData data) {
if(dataToWrite == null) {
if(isErrorPage) {
data.setAmountRead(0);
return false;
}
dataToWrite = task.waitForData();
dataOffset = 3; //packet ID + size
amountToWrite = task.getDataLength();
@ -105,7 +130,9 @@ public class WDScheme implements IScheme {
amountToWrite -= toWrite;
if(amountToWrite <= 0) {
task.nextData();
if(!isErrorPage)
task.nextData();
dataToWrite = null;
}

View File

@ -14,7 +14,7 @@ import net.montoyo.wd.client.gui.controls.Control;
import net.montoyo.wd.client.gui.controls.Label;
import net.montoyo.wd.client.gui.loading.FillControl;
import net.montoyo.wd.entity.TileEntityScreen;
import net.montoyo.wd.net.SMessageScreenCtrl;
import net.montoyo.wd.net.server.SMessageScreenCtrl;
import net.montoyo.wd.utilities.BlockSide;
import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.Util;

View File

@ -9,7 +9,7 @@ import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.client.gui.controls.Button;
import net.montoyo.wd.client.gui.controls.TextField;
import net.montoyo.wd.client.gui.loading.FillControl;
import net.montoyo.wd.net.SMessageRedstoneCtrl;
import net.montoyo.wd.net.server.SMessageRedstoneCtrl;
import net.montoyo.wd.utilities.Util;
import net.montoyo.wd.utilities.Vector3i;

View File

@ -12,7 +12,7 @@ import net.montoyo.wd.client.gui.controls.*;
import net.montoyo.wd.client.gui.loading.FillControl;
import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.entity.TileEntityScreen;
import net.montoyo.wd.net.SMessageScreenCtrl;
import net.montoyo.wd.net.server.SMessageScreenCtrl;
import net.montoyo.wd.utilities.*;
import java.util.ArrayList;

View File

@ -10,8 +10,8 @@ import net.montoyo.wd.client.gui.controls.Button;
import net.montoyo.wd.client.gui.controls.TextField;
import net.montoyo.wd.client.gui.loading.FillControl;
import net.montoyo.wd.entity.TileEntityScreen;
import net.montoyo.wd.net.SMessagePadCtrl;
import net.montoyo.wd.net.SMessageScreenCtrl;
import net.montoyo.wd.net.server.SMessagePadCtrl;
import net.montoyo.wd.net.server.SMessageScreenCtrl;
import net.montoyo.wd.utilities.BlockSide;
import net.montoyo.wd.utilities.Util;
import net.montoyo.wd.utilities.Vector3i;

View File

@ -18,7 +18,7 @@ import net.montoyo.wd.client.gui.controls.Event;
import net.montoyo.wd.client.gui.loading.FillControl;
import net.montoyo.wd.client.gui.loading.GuiLoader;
import net.montoyo.wd.client.gui.loading.JsonOWrapper;
import net.montoyo.wd.net.SMessageACQuery;
import net.montoyo.wd.net.server.SMessageACQuery;
import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.NameUUIDPair;
import org.lwjgl.input.Keyboard;

View File

@ -10,7 +10,7 @@ import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.net.CMessageOpenGui;
import net.montoyo.wd.net.client.CMessageOpenGui;
import java.util.HashMap;

View File

@ -13,7 +13,7 @@ import net.minecraftforge.fml.relauncher.SideOnly;
import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.client.gui.GuiScreenConfig;
import net.montoyo.wd.entity.TileEntityScreen;
import net.montoyo.wd.net.CMessageOpenGui;
import net.montoyo.wd.net.client.CMessageOpenGui;
import net.montoyo.wd.utilities.BlockSide;
import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.NameUUIDPair;

View File

@ -25,10 +25,10 @@ import net.montoyo.wd.core.IUpgrade;
import net.montoyo.wd.core.JSServerRequest;
import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.data.ScreenConfigData;
import net.montoyo.wd.net.CMessageAddScreen;
import net.montoyo.wd.net.CMessageJSResponse;
import net.montoyo.wd.net.CMessageScreenUpdate;
import net.montoyo.wd.net.SMessageRequestTEData;
import net.montoyo.wd.net.client.CMessageAddScreen;
import net.montoyo.wd.net.client.CMessageJSResponse;
import net.montoyo.wd.net.client.CMessageScreenUpdate;
import net.montoyo.wd.net.server.SMessageRequestTEData;
import net.montoyo.wd.utilities.*;
import net.montoyo.wd.utilities.Rotation;

View File

@ -6,7 +6,7 @@ package net.montoyo.wd.miniserv.client;
import net.minecraft.client.Minecraft;
import net.montoyo.wd.miniserv.*;
import net.montoyo.wd.net.SMessageMiniservConnect;
import net.montoyo.wd.net.server.SMessageMiniservConnect;
import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.Util;

View File

@ -121,7 +121,7 @@ public class ClientTaskGetFile extends ClientTask {
while(data == null) {
if(System.currentTimeMillis() - t > 10000) {
data = new byte[1];
data = new byte[0];
dataLen = -1;
dataLock.unlock();
return data;

View File

@ -7,6 +7,8 @@ package net.montoyo.wd.net;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import net.montoyo.wd.net.client.*;
import net.montoyo.wd.net.server.*;
import java.lang.reflect.Modifier;
import java.util.ArrayList;

View File

@ -2,13 +2,14 @@
* Copyright (C) 2018 BARBOTIN Nicolas
*/
package net.montoyo.wd.net;
package net.montoyo.wd.net.client;
import com.mojang.authlib.GameProfile;
import io.netty.buffer.ByteBuf;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.relauncher.Side;
import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.net.Message;
import net.montoyo.wd.utilities.NameUUIDPair;
@Message(messageId = 6, side = Side.CLIENT)

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas
*/
package net.montoyo.wd.net;
package net.montoyo.wd.net.client;
import io.netty.buffer.ByteBuf;
import net.minecraft.item.ItemStack;
@ -13,6 +13,7 @@ import net.minecraftforge.fml.relauncher.Side;
import net.montoyo.wd.SharedProxy;
import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.entity.TileEntityScreen;
import net.montoyo.wd.net.Message;
import net.montoyo.wd.utilities.*;
import java.util.ArrayList;

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas
*/
package net.montoyo.wd.net;
package net.montoyo.wd.net.client;
import io.netty.buffer.ByteBuf;
import net.minecraftforge.fml.common.network.ByteBufUtils;
@ -10,6 +10,7 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.relauncher.Side;
import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.core.JSServerRequest;
import net.montoyo.wd.net.Message;
import net.montoyo.wd.utilities.Log;
@Message(messageId = 9, side = Side.CLIENT)

View File

@ -2,13 +2,14 @@
* Copyright (C) 2018 BARBOTIN Nicolas
*/
package net.montoyo.wd.net;
package net.montoyo.wd.net.client;
import io.netty.buffer.ByteBuf;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.relauncher.Side;
import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.miniserv.client.Client;
import net.montoyo.wd.net.Message;
import net.montoyo.wd.utilities.Log;
@Message(messageId = 11, side = Side.CLIENT)

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas
*/
package net.montoyo.wd.net;
package net.montoyo.wd.net.client;
import io.netty.buffer.ByteBuf;
import net.minecraftforge.fml.common.network.ByteBufUtils;

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas
*/
package net.montoyo.wd.net;
package net.montoyo.wd.net.client;
import io.netty.buffer.ByteBuf;
import net.minecraft.item.ItemStack;
@ -13,6 +13,7 @@ import net.minecraftforge.fml.relauncher.Side;
import net.montoyo.wd.SharedProxy;
import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.entity.TileEntityScreen;
import net.montoyo.wd.net.Message;
import net.montoyo.wd.utilities.*;
import javax.annotation.Nullable;

View File

@ -2,13 +2,14 @@
* Copyright (C) 2018 BARBOTIN Nicolas
*/
package net.montoyo.wd.net;
package net.montoyo.wd.net.client;
import io.netty.buffer.ByteBuf;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.relauncher.Side;
import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.miniserv.client.Client;
import net.montoyo.wd.net.Message;
@Message(messageId = 12, side = Side.CLIENT)
public class CMessageServerInfo implements IMessage, Runnable {

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas
*/
package net.montoyo.wd.net;
package net.montoyo.wd.net.server;
import com.mojang.authlib.GameProfile;
import io.netty.buffer.ByteBuf;
@ -14,6 +14,8 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import net.minecraftforge.fml.relauncher.Side;
import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.net.Message;
import net.montoyo.wd.net.client.CMessageACResult;
import net.montoyo.wd.utilities.NameUUIDPair;
import java.util.ArrayList;

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas
*/
package net.montoyo.wd.net;
package net.montoyo.wd.net.server;
import io.netty.buffer.ByteBuf;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
@ -11,6 +11,8 @@ import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import net.minecraftforge.fml.relauncher.Side;
import net.montoyo.wd.miniserv.server.ClientManager;
import net.montoyo.wd.miniserv.server.Server;
import net.montoyo.wd.net.Message;
import net.montoyo.wd.net.client.CMessageMiniservKey;
@Message(messageId = 10, side = Side.SERVER)
public class SMessageMiniservConnect implements IMessage {

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas
*/
package net.montoyo.wd.net;
package net.montoyo.wd.net.server;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer;
@ -17,6 +17,7 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import net.minecraftforge.fml.relauncher.Side;
import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.net.Message;
@Message(messageId = 7, side = Side.SERVER)
public class SMessagePadCtrl implements IMessage, Runnable {

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas
*/
package net.montoyo.wd.net;
package net.montoyo.wd.net.server;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer;
@ -18,6 +18,7 @@ import net.minecraftforge.fml.relauncher.Side;
import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.entity.TileEntityRedCtrl;
import net.montoyo.wd.entity.TileEntityScreen;
import net.montoyo.wd.net.Message;
import net.montoyo.wd.utilities.Util;
import net.montoyo.wd.utilities.Vector3i;

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas
*/
package net.montoyo.wd.net;
package net.montoyo.wd.net.server;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP;
@ -15,6 +15,7 @@ import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import net.minecraftforge.fml.relauncher.Side;
import net.montoyo.mcef.utilities.Log;
import net.montoyo.wd.entity.TileEntityScreen;
import net.montoyo.wd.net.Message;
import net.montoyo.wd.utilities.Vector3i;
@Message(messageId = 1, side = Side.SERVER)

View File

@ -2,7 +2,7 @@
* Copyright (C) 2018 BARBOTIN Nicolas
*/
package net.montoyo.wd.net;
package net.montoyo.wd.net.server;
import io.netty.buffer.ByteBuf;
import net.minecraft.block.state.IBlockState;
@ -25,6 +25,7 @@ import net.montoyo.wd.core.JSServerRequest;
import net.montoyo.wd.core.MissingPermissionException;
import net.montoyo.wd.core.ScreenRights;
import net.montoyo.wd.entity.TileEntityScreen;
import net.montoyo.wd.net.Message;
import net.montoyo.wd.utilities.*;
@Message(messageId = 2, side = Side.SERVER)