diff options
3 files changed, 53 insertions, 12 deletions
diff --git a/src/main/java/com/github/technus/tectech/Util.java b/src/main/java/com/github/technus/tectech/Util.java index c98fefcd86..3b1fdf0961 100644 --- a/src/main/java/com/github/technus/tectech/Util.java +++ b/src/main/java/com/github/technus/tectech/Util.java @@ -65,6 +65,39 @@ public final class Util { return sortedEntries; } + public static int bitStringToInt(String bits){ + if(bits==null){ + return 0; + } + bits=bits.replaceAll("[^-01]",""); + if(bits.length() > 32){ + return 0; + } + return Integer.parseInt(bits,2); + } + + public static int hexStringToInt(String hex){ + if(hex==null){ + return 0; + } + hex=hex.toLowerCase().replaceAll("[^-0-9a-f]",""); + if(hex.length()>8){ + return 0; + } + return Integer.parseInt(hex,16); + } + + public static double stringToDouble(String str){ + if(str==null){ + return 0; + } + str=str.toLowerCase().replaceAll("[^-0-9.,e]",""); + if(str.length()>8){ + return 0; + } + return Integer.parseInt(str,16); + } + public static String intBitsToString(int number) { StringBuilder result = new StringBuilder(16); @@ -1392,6 +1425,17 @@ public final class Util { } } + public static StringBuilder receiveString(StringBuilder previousValue, int startIndex, int index, int value){ + int sizeReq=index-startIndex; + if(value==0){ + previousValue.setLength(Math.min(previousValue.length(),sizeReq)); + }else { + previousValue.setLength(Math.max(previousValue.length(),sizeReq)); + previousValue.setCharAt(sizeReq,(char)value); + } + return previousValue; + } + public static double receiveDouble(double previousValue, int startIndex, int index, int value){ return Double.longBitsToDouble(receiveLong(Double.doubleToLongBits(previousValue),startIndex,index,value)); } @@ -1419,6 +1463,13 @@ public final class Util { return previousValue; } + public static void sendString(StringBuilder string,Container container, ICrafting crafter,int startIndex){ + for (int i = 0; i < string.length(); i++) { + crafter.sendProgressBarUpdate(container,startIndex++,string.charAt(i)); + } + crafter.sendProgressBarUpdate(container,startIndex,0); + } + public static void sendDouble(double value,Container container, ICrafting crafter,int startIndex){ sendLong(Double.doubleToLongBits(value),container,crafter,startIndex); } diff --git a/src/main/java/com/github/technus/tectech/mechanics/data/ChunkDataMessage.java b/src/main/java/com/github/technus/tectech/mechanics/data/ChunkDataMessage.java index a8ed9de2c8..0a086384bc 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/data/ChunkDataMessage.java +++ b/src/main/java/com/github/technus/tectech/mechanics/data/ChunkDataMessage.java @@ -2,7 +2,6 @@ package com.github.technus.tectech.mechanics.data; import com.github.technus.tectech.TecTech; import com.github.technus.tectech.Util; -import com.github.technus.tectech.loader.NetworkDispatcher; import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.MessageContext; @@ -10,7 +9,6 @@ import eu.usrv.yamcore.network.client.AbstractClientMessageHandler; import eu.usrv.yamcore.network.server.AbstractServerMessageHandler; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.ChunkCoordIntPair; import net.minecraftforge.event.world.ChunkEvent; @@ -92,10 +90,7 @@ public class ChunkDataMessage implements IMessage { public static class ServerHandler extends AbstractServerMessageHandler<ChunkDataQuery> { @Override public IMessage handleServerMessage(EntityPlayer pPlayer, ChunkDataQuery pMessage, MessageContext pCtx) { - if(pPlayer instanceof EntityPlayerMP){ - NetworkDispatcher.INSTANCE.sendTo(new ChunkDataData(pMessage),(EntityPlayerMP) pPlayer); - } - return null; + return new ChunkDataData(pMessage); } } } diff --git a/src/main/java/com/github/technus/tectech/mechanics/data/PlayerDataMessage.java b/src/main/java/com/github/technus/tectech/mechanics/data/PlayerDataMessage.java index ca62fb0876..58abc2fa20 100644 --- a/src/main/java/com/github/technus/tectech/mechanics/data/PlayerDataMessage.java +++ b/src/main/java/com/github/technus/tectech/mechanics/data/PlayerDataMessage.java @@ -1,7 +1,6 @@ package com.github.technus.tectech.mechanics.data; import com.github.technus.tectech.TecTech; -import com.github.technus.tectech.loader.NetworkDispatcher; import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.MessageContext; @@ -9,7 +8,6 @@ import eu.usrv.yamcore.network.client.AbstractClientMessageHandler; import eu.usrv.yamcore.network.server.AbstractServerMessageHandler; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; import java.util.UUID; @@ -81,10 +79,7 @@ public class PlayerDataMessage implements IMessage { public static class ServerHandler extends AbstractServerMessageHandler<PlayerDataQuery> { @Override public IMessage handleServerMessage(EntityPlayer pPlayer, PlayerDataQuery pMessage, MessageContext pCtx) { - if(pPlayer instanceof EntityPlayerMP){ - NetworkDispatcher.INSTANCE.sendTo(new PlayerDataData(pMessage),(EntityPlayerMP) pPlayer); - } - return null; + return new PlayerDataData(pMessage); } } } |