Skip to content

Commit 42f1b3d

Browse files
committed
fix: fixed the serialization of Rewards
1 parent 3bbd4ab commit 42f1b3d

File tree

3 files changed

+42
-7
lines changed

3 files changed

+42
-7
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>de.chafficplugins</groupId>
88
<artifactId>MiningLevels</artifactId>
9-
<version>1.2.9</version>
9+
<version>1.2.10</version>
1010
<packaging>jar</packaging>
1111

1212
<name>MiningLevels</name>

src/main/java/de/chafficplugins/mininglevels/api/MiningLevel.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public class MiningLevel {
6060
/**
6161
* The items a player will be able to claim with the claim command, when he has leveled up to this MiningLevel.
6262
*/
63-
private ArrayList<ItemStack> rewards = new ArrayList<>();
63+
private ArrayList<Reward> rewards = new ArrayList<>();
6464

6565
/**
6666
* Initializes the MiningLevels.
@@ -86,23 +86,30 @@ public String getName() {
8686
* @return An Array of ItemStacks.
8787
*/
8888
public ItemStack[] getRewards() {
89-
return rewards.toArray(new ItemStack[0]);
89+
ArrayList<ItemStack> items = new ArrayList<>();
90+
for (Reward reward : rewards) {
91+
items.add(reward.getItemStack());
92+
}
93+
return items.toArray(new ItemStack[0]);
9094
}
9195

9296
/**
9397
* Adds an ItemStack as a reward.
9498
* @param item The ItemStack to add.
9599
*/
96100
public void addReward(ItemStack item) {
97-
rewards.add(item);
101+
rewards.add(new Reward(item));
98102
}
99103

100104
/**
101105
* Sets the rewards.
102106
* @param rewards The new rewards.
103107
*/
104108
public void setRewards(ArrayList<ItemStack> rewards) {
105-
this.rewards = rewards;
109+
this.rewards = new ArrayList<>();
110+
for (ItemStack item : rewards) {
111+
this.rewards.add(new Reward(item));
112+
}
106113
}
107114

108115
/**
@@ -249,7 +256,7 @@ public void levelUp(MiningPlayer miningPlayer) {
249256
if(nextLevel.rewards != null && nextLevel.rewards.size() > 0) {
250257
player.sendMessage("");
251258
sendMessage(player, REWARDS_LIST, ChatColor.WHITE);
252-
for (ItemStack reward : nextLevel.rewards) {
259+
for (Reward reward : nextLevel.rewards) {
253260
player.sendMessage(ChatColor.WHITE + " " + ChatColor.YELLOW + getName(reward) + ChatColor.WHITE + ": " + ChatColor.GREEN + reward.getAmount());
254261
}
255262
miningPlayer.addRewards(nextLevel.getRewards());
@@ -328,7 +335,8 @@ public static MiningLevel get(int ordinal) {
328335
/**
329336
* Returns the material name or the displayName of an item.
330337
*/
331-
public static String getName(ItemStack itemStack) {
338+
public static String getName(Reward reward) {
339+
ItemStack itemStack = reward.getItemStack();
332340
if(itemStack.getType().name().equals("AIR")) {
333341
return "AIR";
334342
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package de.chafficplugins.mininglevels.api;
2+
3+
import org.bukkit.Material;
4+
import org.bukkit.inventory.ItemStack;
5+
import org.bukkit.inventory.meta.ItemMeta;
6+
7+
public class Reward {
8+
private final String type;
9+
private final int amount;
10+
ItemMeta meta;
11+
12+
public Reward(ItemStack itemStack) {
13+
this.type = itemStack.getType().name();
14+
this.amount = itemStack.getAmount();
15+
this.meta = itemStack.getItemMeta();
16+
}
17+
18+
public ItemStack getItemStack() {
19+
ItemStack itemStack = new ItemStack(Material.valueOf(type), amount);
20+
itemStack.setItemMeta(meta);
21+
return itemStack;
22+
}
23+
24+
public int getAmount() {
25+
return amount;
26+
}
27+
}

0 commit comments

Comments
 (0)