mirror of
https://github.com/DieReicheErethons/Brewery.git
synced 2024-11-16 10:35:22 +01:00
Test storing and loading a brew from lore
This commit is contained in:
parent
26b607c17a
commit
753ef559c9
@ -6,6 +6,9 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import org.bukkit.inventory.meta.PotionMeta;
|
import org.bukkit.inventory.meta.PotionMeta;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
|
import java.io.DataInputStream;
|
||||||
|
import java.io.DataOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class BIngredients {
|
public class BIngredients {
|
||||||
@ -322,6 +325,37 @@ public class BIngredients {
|
|||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testStore(DataOutputStream out) throws IOException {
|
||||||
|
out.writeInt(cookedTime);
|
||||||
|
out.writeByte(ingredients.size());
|
||||||
|
for (ItemStack item : ingredients) {
|
||||||
|
out.writeUTF(item.getType().name());
|
||||||
|
out.writeShort(item.getDurability());
|
||||||
|
out.writeShort(item.getAmount());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testLoad(DataInputStream in) throws IOException {
|
||||||
|
if (in.readInt() != cookedTime) {
|
||||||
|
P.p.log("cookedtime wrong");
|
||||||
|
}
|
||||||
|
if (in.readUnsignedByte() != ingredients.size()) {
|
||||||
|
P.p.log("size wrong");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (ItemStack item : ingredients) {
|
||||||
|
if (!in.readUTF().equals(item.getType().name())) {
|
||||||
|
P.p.log("name wrong");
|
||||||
|
}
|
||||||
|
if (in.readShort() != item.getDurability()) {
|
||||||
|
P.p.log("dur wrong");
|
||||||
|
}
|
||||||
|
if (in.readShort() != item.getAmount()) {
|
||||||
|
P.p.log("amount wrong");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// saves data into main Ingredient section. Returns the save id
|
// saves data into main Ingredient section. Returns the save id
|
||||||
public int save(ConfigurationSection config) {
|
public int save(ConfigurationSection config) {
|
||||||
String path = "Ingredients." + id;
|
String path = "Ingredients." + id;
|
||||||
|
@ -11,6 +11,9 @@ import org.bukkit.potion.PotionEffect;
|
|||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
import org.bukkit.potion.PotionType;
|
import org.bukkit.potion.PotionType;
|
||||||
|
|
||||||
|
import java.io.DataInputStream;
|
||||||
|
import java.io.DataOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -632,6 +635,79 @@ public class Brew {
|
|||||||
return P.p.color(color);
|
return P.p.color(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testStore(DataOutputStream out) throws IOException {
|
||||||
|
out.writeByte(1); // Version
|
||||||
|
out.writeByte(86); // Parity
|
||||||
|
out.writeInt(quality);
|
||||||
|
int bools = 0;
|
||||||
|
bools += (distillRuns != 0 ? 1 : 0);
|
||||||
|
bools += (ageTime > 0 ? 2 : 0);
|
||||||
|
bools += (wood != -1 ? 4 : 0);
|
||||||
|
bools += (currentRecipe != null ? 8 : 0);
|
||||||
|
bools += (unlabeled ? 16 : 0);
|
||||||
|
bools += (persistent ? 32 : 0);
|
||||||
|
bools += (stat ? 64 : 0);
|
||||||
|
out.writeByte(bools);
|
||||||
|
if (distillRuns != 0) {
|
||||||
|
out.writeByte(distillRuns);
|
||||||
|
}
|
||||||
|
if (ageTime > 0) {
|
||||||
|
out.writeFloat(ageTime);
|
||||||
|
}
|
||||||
|
if (wood != -1) {
|
||||||
|
out.writeFloat(wood);
|
||||||
|
}
|
||||||
|
if (currentRecipe != null) {
|
||||||
|
out.writeUTF(currentRecipe.getName(5));
|
||||||
|
}
|
||||||
|
ingredients.testStore(out);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testLoad(DataInputStream in) throws IOException {
|
||||||
|
if (in.readByte() != 1) {
|
||||||
|
P.p.log("unknown version");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (in.readByte() != 86) {
|
||||||
|
P.p.log("parity check failed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (in.readInt() != quality) {
|
||||||
|
P.p.log("quality wrong");
|
||||||
|
}
|
||||||
|
int bools = in.readUnsignedByte();
|
||||||
|
if ((bools & 1) != 0) {
|
||||||
|
if (in.readByte() != distillRuns) {
|
||||||
|
P.p.log("distillruns wrong");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((bools & 2) != 0) {
|
||||||
|
if (in.readFloat() != ageTime) {
|
||||||
|
P.p.log("agetime wrong");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((bools & 4) != 0) {
|
||||||
|
if (in.readFloat() != wood) {
|
||||||
|
P.p.log("wood wrong");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((bools & 8) != 0) {
|
||||||
|
if (!in.readUTF().equals(currentRecipe.getName(5))) {
|
||||||
|
P.p.log("currecipe wrong");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((bools & 16) != 0 && !unlabeled) {
|
||||||
|
P.p.log("unlabeled wrong");
|
||||||
|
}
|
||||||
|
if ((bools & 32) != 0 && !persistent) {
|
||||||
|
P.p.log("persistent wrong");
|
||||||
|
}
|
||||||
|
if ((bools & 64) != 0 && !stat) {
|
||||||
|
P.p.log("stat wrong");
|
||||||
|
}
|
||||||
|
ingredients.testLoad(in);
|
||||||
|
}
|
||||||
|
|
||||||
// Saves all data
|
// Saves all data
|
||||||
public static void save(ConfigurationSection config) {
|
public static void save(ConfigurationSection config) {
|
||||||
for (Map.Entry<Integer, Brew> entry : potions.entrySet()) {
|
for (Map.Entry<Integer, Brew> entry : potions.entrySet()) {
|
||||||
|
@ -241,7 +241,9 @@ public class InventoryListener implements Listener {
|
|||||||
try {
|
try {
|
||||||
DataInputStream in = new DataInputStream(new Base91DecoderStream(new LoreReader(potion)));
|
DataInputStream in = new DataInputStream(new Base91DecoderStream(new LoreReader(potion)));
|
||||||
|
|
||||||
if (in.readByte() == 27 && in.skip(48) > 0) {
|
brew.testLoad(in);
|
||||||
|
|
||||||
|
/*if (in.readByte() == 27 && in.skip(48) > 0) {
|
||||||
in.mark(100);
|
in.mark(100);
|
||||||
if (in.readUTF().equals("TESTHalloª∆Ω") && in.readInt() == 34834 && in.skip(4) > 0 && in.readLong() == Long.MAX_VALUE) {
|
if (in.readUTF().equals("TESTHalloª∆Ω") && in.readInt() == 34834 && in.skip(4) > 0 && in.readLong() == Long.MAX_VALUE) {
|
||||||
in.reset();
|
in.reset();
|
||||||
@ -255,7 +257,7 @@ public class InventoryListener implements Listener {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
P.p.log("false1");
|
P.p.log("false1");
|
||||||
}
|
}*/
|
||||||
|
|
||||||
in.close();
|
in.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
@ -263,9 +265,12 @@ public class InventoryListener implements Listener {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
DataOutputStream out = new DataOutputStream(new Base91EncoderStream(new LoreWriter(potion, 0)));
|
DataOutputStream out = new DataOutputStream(new Base91EncoderStream(new LoreWriter(potion, 2)));
|
||||||
|
|
||||||
out.writeByte(27);
|
brew.testStore(out);
|
||||||
|
|
||||||
|
|
||||||
|
/*out.writeByte(27);
|
||||||
out.writeLong(1111); //skip
|
out.writeLong(1111); //skip
|
||||||
out.writeLong(1111); //skip
|
out.writeLong(1111); //skip
|
||||||
out.writeLong(1111); //skip
|
out.writeLong(1111); //skip
|
||||||
@ -275,7 +280,7 @@ public class InventoryListener implements Listener {
|
|||||||
out.writeUTF("TESTHalloª∆Ω");
|
out.writeUTF("TESTHalloª∆Ω");
|
||||||
out.writeInt(34834);
|
out.writeInt(34834);
|
||||||
out.writeInt(6436); //skip
|
out.writeInt(6436); //skip
|
||||||
out.writeLong(Long.MAX_VALUE);
|
out.writeLong(Long.MAX_VALUE);*/
|
||||||
|
|
||||||
out.close();
|
out.close();
|
||||||
item.setItemMeta(potion);
|
item.setItemMeta(potion);
|
||||||
|
Loading…
Reference in New Issue
Block a user