2015-09-27 15:31:43 +02:00
|
|
|
/*
|
2016-05-16 22:52:27 +02:00
|
|
|
* This file ("PersistentServerData.java") is part of the Actually Additions mod for Minecraft.
|
2015-09-27 15:31:43 +02:00
|
|
|
* It is created and owned by Ellpeck and distributed
|
|
|
|
* under the Actually Additions License to be found at
|
2016-05-16 22:52:27 +02:00
|
|
|
* http://ellpeck.de/actaddlicense
|
2015-09-27 15:31:43 +02:00
|
|
|
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
|
|
|
*
|
2016-05-16 22:54:42 +02:00
|
|
|
* © 2015-2016 Ellpeck
|
2015-09-27 15:31:43 +02:00
|
|
|
*/
|
|
|
|
|
2016-06-04 13:51:06 +02:00
|
|
|
package de.ellpeck.actuallyadditions.mod.data;
|
2015-09-27 15:31:43 +02:00
|
|
|
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
|
|
|
2015-10-22 22:18:33 +02:00
|
|
|
import java.util.ArrayList;
|
2015-09-27 15:31:43 +02:00
|
|
|
|
2016-07-12 22:13:50 +02:00
|
|
|
//Yes, this is name based instead of UUID-based.
|
|
|
|
//It just works better this way because of vanilla quirks. Don't judge me.
|
2016-06-17 23:50:38 +02:00
|
|
|
public final class PlayerData{
|
2015-09-27 15:31:43 +02:00
|
|
|
|
2016-07-12 22:13:50 +02:00
|
|
|
public static PlayerSave getDataFromPlayer(String name){
|
2016-06-04 13:52:27 +02:00
|
|
|
ArrayList<PlayerSave> data = WorldData.PLAYER_SAVE_DATA;
|
2015-10-22 22:18:33 +02:00
|
|
|
//Get Data from existing data
|
2016-06-04 13:51:06 +02:00
|
|
|
for(PlayerSave save : data){
|
2016-07-12 22:13:50 +02:00
|
|
|
if(save.theName != null && save.theName.equals(name)){
|
2016-06-15 17:15:26 +02:00
|
|
|
return save;
|
2015-10-22 22:18:33 +02:00
|
|
|
}
|
2015-10-03 10:16:18 +02:00
|
|
|
}
|
2015-10-22 22:18:33 +02:00
|
|
|
|
|
|
|
//Add Data if none is existant
|
2016-07-12 22:13:50 +02:00
|
|
|
PlayerSave aSave = new PlayerSave(name, new NBTTagCompound());
|
2016-06-04 13:51:06 +02:00
|
|
|
data.add(aSave);
|
2016-06-15 17:15:26 +02:00
|
|
|
return aSave;
|
2015-10-03 10:16:18 +02:00
|
|
|
}
|
|
|
|
|
2016-07-12 22:13:50 +02:00
|
|
|
public static PlayerSave getDataFromPlayer(EntityPlayer player){
|
|
|
|
return getDataFromPlayer(player.getName());
|
|
|
|
}
|
|
|
|
|
2015-10-22 22:18:33 +02:00
|
|
|
public static class PlayerSave{
|
2015-09-27 15:31:43 +02:00
|
|
|
|
2016-07-12 22:13:50 +02:00
|
|
|
public final String theName;
|
2016-06-15 17:15:26 +02:00
|
|
|
public NBTTagCompound theCompound;
|
2015-09-27 15:31:43 +02:00
|
|
|
|
2016-07-12 22:13:50 +02:00
|
|
|
public PlayerSave(String name, NBTTagCompound theCompound){
|
|
|
|
this.theName = name;
|
2015-10-22 22:18:33 +02:00
|
|
|
this.theCompound = theCompound;
|
|
|
|
}
|
2015-09-27 15:31:43 +02:00
|
|
|
|
2015-10-29 19:51:00 +01:00
|
|
|
public static PlayerSave fromNBT(NBTTagCompound compound){
|
2016-07-12 22:13:50 +02:00
|
|
|
String name = compound.getString("Name");
|
2015-10-29 19:51:00 +01:00
|
|
|
NBTTagCompound theCompound = compound.getCompoundTag("Tag");
|
2016-07-12 22:13:50 +02:00
|
|
|
return new PlayerSave(name, theCompound);
|
2015-10-23 16:54:33 +02:00
|
|
|
}
|
|
|
|
|
2015-10-29 19:51:00 +01:00
|
|
|
public NBTTagCompound toNBT(){
|
|
|
|
NBTTagCompound compound = new NBTTagCompound();
|
2016-07-12 22:13:50 +02:00
|
|
|
compound.setString("Name", this.theName);
|
2015-10-29 19:51:00 +01:00
|
|
|
compound.setTag("Tag", this.theCompound);
|
|
|
|
return compound;
|
2015-09-27 15:31:43 +02:00
|
|
|
}
|
|
|
|
}
|
2015-10-22 22:18:33 +02:00
|
|
|
|
2015-09-27 15:31:43 +02:00
|
|
|
}
|