added SerializerDebug.java
This commit is contained in:
parent
8bc9cbb7c2
commit
9184da925b
3 changed files with 90 additions and 10 deletions
|
@ -62,8 +62,8 @@ public class Serializer {
|
||||||
|
|
||||||
public static void setInventoryFromSerialized (IInventory invInventory, String invString){
|
public static void setInventoryFromSerialized (IInventory invInventory, String invString){
|
||||||
invInventory.l();
|
invInventory.l();
|
||||||
if (invString != null && invString.contains(";"))
|
if (invString != null)
|
||||||
Arrays.asList(invString.split("(;)"))
|
Arrays.asList(invString.split(";"))
|
||||||
.stream()
|
.stream()
|
||||||
.forEach(s -> {
|
.forEach(s -> {
|
||||||
String[] e = s.split("#");
|
String[] e = s.split("#");
|
||||||
|
|
80
src/iie/SerializerDebug.java
Normal file
80
src/iie/SerializerDebug.java
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
package iie;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.IntStream;
|
||||||
|
|
||||||
|
import org.apache.commons.codec.binary.Base64;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import net.minecraft.server.v1_10_R1.IInventory;
|
||||||
|
import net.minecraft.server.v1_10_R1.ItemStack;
|
||||||
|
import net.minecraft.server.v1_10_R1.JsonList;
|
||||||
|
import net.minecraft.server.v1_10_R1.NBTCompressedStreamTools;
|
||||||
|
import net.minecraft.server.v1_10_R1.NBTTagCompound;
|
||||||
|
|
||||||
|
public class SerializerDebug {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static String serializeItemStack(ItemStack itemStack, Player player){
|
||||||
|
player.sendMessage("serializeItemStack: called");
|
||||||
|
if (itemStack == null){ player.sendMessage("serializeItemStack: NULL itemStack"); return "null";}
|
||||||
|
|
||||||
|
player.sendMessage("serializeItemStack: nbt tag = " + itemStack.getTag().toString());
|
||||||
|
|
||||||
|
return itemStack.getTag().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static ItemStack deserializeItemStack(String itemStackString, Player player){
|
||||||
|
|
||||||
|
if (itemStackString.equals("null")){
|
||||||
|
player.sendMessage("deserializeItemStack: NULL itemStackString");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
NBTTagCompound nbtTagCompound = (NBTTagCompound) JsonList.func_150315_a(itemStackString);;
|
||||||
|
|
||||||
|
|
||||||
|
player.sendMessage(nbtTagCompound.toString());
|
||||||
|
|
||||||
|
return ItemStack.createStack(nbtTagCompound);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static String serializeInventory (IInventory invInventory, Player player){
|
||||||
|
player.sendMessage("serializeInventory: invInventory.getSize() = " + invInventory.getSize());
|
||||||
|
return IntStream.range(0, invInventory.getSize() - 1)
|
||||||
|
.mapToObj(s -> {
|
||||||
|
ItemStack i = invInventory.getItem(s);
|
||||||
|
player.sendMessage(Objects.isNull(i) ? "serializeInventory: NULL item" + s : "serializeInventory: item " + s + " found");
|
||||||
|
return Objects.isNull(i) ? null : s + "#" + serializeItemStack(i, player);
|
||||||
|
})
|
||||||
|
.filter(s -> s != null)
|
||||||
|
.collect(Collectors.joining(";"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static void setInventoryFromSerialized (IInventory invInventory, String invString, Player player){
|
||||||
|
if (invInventory == null){ player.sendMessage("setInventoryFromSerialized: invInventory NULL"); return;}
|
||||||
|
invInventory.l();
|
||||||
|
if (invString == null){ player.sendMessage("setInventoryFromSerialized: NULL invString"); return;}
|
||||||
|
if (invString.isEmpty()){ player.sendMessage("setInventoryFromSerialized: EMPTY invString"); return;}
|
||||||
|
if (!invString.contains(";")){ player.sendMessage("setInventoryFromSerialized: DOESN'T CONTAIN ';' "); return;}
|
||||||
|
Arrays.asList(invString.split(";"))
|
||||||
|
.stream()
|
||||||
|
.forEach(s -> {
|
||||||
|
String[] e = s.split("#");
|
||||||
|
invInventory.setItem(Integer.parseInt(e[0]), deserializeItemStack(e[1], player));
|
||||||
|
player.sendMessage("set item " + e[0] + " to inventory");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -42,22 +42,22 @@ public class WorldChangeListener implements Listener {
|
||||||
|
|
||||||
//----------------------------------------------------------------------instantiations
|
//----------------------------------------------------------------------instantiations
|
||||||
|
|
||||||
//Serializer serializer = new Serializer(player);
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------INVENTORY
|
//----------------------------------------------------------------------INVENTORY
|
||||||
|
|
||||||
|
|
||||||
final IInventory inventory = ((CraftInventory)player.getInventory()).getInventory();
|
final IInventory inventory = ((CraftInventory)player.getInventory()).getInventory();
|
||||||
|
|
||||||
config.set(pathFrom + "inventory", Serializer.serializeInventory(inventory));
|
config.set(pathFrom + "inventory", SerializerDebug.serializeInventory(inventory, player));
|
||||||
|
|
||||||
plugin.saveConfig();
|
plugin.saveConfig();
|
||||||
|
|
||||||
Serializer.setInventoryFromSerialized(inventory, (String) config.get(pathTo + "inventory"));
|
SerializerDebug.setInventoryFromSerialized(inventory, (String) config.get(pathTo + "inventory"), player);
|
||||||
|
|
||||||
//player.getInventory().clear();
|
//player.getInventory().clear();
|
||||||
//player.getInventory().setContents(
|
//player.getInventory().setContents(
|
||||||
// Serializer.InventoryFromString(invString, invInventory.getType())
|
// SerializerDebug.InventoryFromString(invString, invInventory.getType())
|
||||||
// .getContents()
|
// .getContents()
|
||||||
// );
|
// );
|
||||||
|
|
||||||
|
@ -66,15 +66,15 @@ public class WorldChangeListener implements Listener {
|
||||||
|
|
||||||
final IInventory enderchest = ((CraftInventory)player.getEnderChest()).getInventory();
|
final IInventory enderchest = ((CraftInventory)player.getEnderChest()).getInventory();
|
||||||
|
|
||||||
config.set(pathFrom + "enderchest", Serializer.serializeInventory(enderchest));
|
config.set(pathFrom + "enderchest", SerializerDebug.serializeInventory(enderchest, player));
|
||||||
|
|
||||||
plugin.saveConfig();
|
plugin.saveConfig();
|
||||||
|
|
||||||
Serializer.setInventoryFromSerialized(enderchest, (String) config.get(pathTo + "enderchest"));
|
SerializerDebug.setInventoryFromSerialized(enderchest, (String) config.get(pathTo + "enderchest"), player);
|
||||||
|
|
||||||
//player.getEnderChest().clear();
|
//player.getEnderChest().clear();
|
||||||
//player.getEnderChest().setContents(
|
//player.getEnderChest().setContents(
|
||||||
// Serializer.InventoryFromString(invString, invInventory.getType())
|
// SerializerDebug.InventoryFromString(invString, invInventory.getType())
|
||||||
// .getContents()
|
// .getContents()
|
||||||
// );
|
// );
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue