Improved offline playerdata manipulation

- Ability to change player experience and score
- Handle upgrade of player data (from older Mc version)
This commit is contained in:
2023-02-19 16:11:04 +01:00
parent bf59617e19
commit 73d96d0bb7
8 changed files with 164 additions and 18 deletions

View File

@@ -91,20 +91,6 @@ public class PlayerDataWrapper {
private int getHeldItemSlot() {
if (!data.contains("SelectedItemSlot"))
return 0;
return data.getInt("SelectedItemSlot");
}
private void setHeldItemSlot(int slot) {
data.putInt("SelectedItemSlot", slot);
}
private Inventory getBukkitInventory(String nbtKey, InventoryType bukkitType, IntUnaryOperator nbtToBukkitSlotConverter) {
Map<Integer, ItemStack> stacks = getRawInvontoryContent(nbtKey);
Inventory inv = Bukkit.createInventory(null, bukkitType);
@@ -169,6 +155,56 @@ public class PlayerDataWrapper {
private int getHeldItemSlot() {
if (!data.contains("SelectedItemSlot"))
return 0;
return data.getInt("SelectedItemSlot");
}
private void setHeldItemSlot(int slot) {
data.putInt("SelectedItemSlot", slot);
}
public int getScore() {
if (!data.contains("Score"))
return 0;
return data.getInt("Score");
}
public void setScore(int score) {
data.putInt("Score", score);
}
public int getTotalExperience() {
if (!data.contains("XpTotal"))
return 0;
return data.getInt("XpTotal");
}
public void setTotalExperience(int xp) {
data.putInt("XpTotal", xp);
double levelAndExp = ExperienceUtil.getLevelFromExp(xp);
int level = (int) levelAndExp;
double expProgress = levelAndExp - level;
data.putInt("XPLevel", level);
data.putFloat("XpP", (float) expProgress);
}
private static class DummyPlayerInventory extends InventoryWrapper implements PlayerInventory {
private int heldItemSlot;