Skip to content

Commit b67ce08

Browse files
committed
Merge with actual jar
1 parent 8c564fb commit b67ce08

13 files changed

Lines changed: 808 additions & 61 deletions

File tree

pom.xml

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

77
<groupId>mc.promcteam</groupId>
88
<artifactId>ProRPGItems</artifactId>
9-
<version>1.0-ALPHA</version>
9+
<version>1.0.1-ALPHA</version>
1010

1111
<properties>
1212
<maven.compiler.source>8</maven.compiler.source>

src/main/java/su/nightexpress/quantumrpg/api/event/QuantumPlayerItemUseEvent.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import org.bukkit.event.HandlerList;
77
import org.bukkit.inventory.ItemStack;
88
import org.jetbrains.annotations.NotNull;
9-
import su.nightexpress.quantumrpg.modules.UsableItem;
9+
import su.nightexpress.quantumrpg.modules.LimitedItem;
1010
import su.nightexpress.quantumrpg.types.QClickType;
1111

1212
public class QuantumPlayerItemUseEvent extends Event implements Cancellable {
@@ -16,13 +16,13 @@ public class QuantumPlayerItemUseEvent extends Event implements Cancellable {
1616

1717
private ItemStack item;
1818

19-
private UsableItem ci;
19+
private LimitedItem ci;
2020

2121
private Player p;
2222

2323
private QClickType click;
2424

25-
public QuantumPlayerItemUseEvent(@NotNull ItemStack item, @NotNull Player p, @NotNull UsableItem ci, @NotNull QClickType click) {
25+
public QuantumPlayerItemUseEvent(@NotNull ItemStack item, @NotNull Player p, @NotNull LimitedItem ci, @NotNull QClickType click) {
2626
this.item = item;
2727
this.ci = ci;
2828
this.p = p;
@@ -47,7 +47,7 @@ public void setCancelled(boolean cancelled) {
4747
}
4848

4949
@NotNull
50-
public UsableItem getItem() {
50+
public LimitedItem getItem() {
5151
return this.ci;
5252
}
5353

src/main/java/su/nightexpress/quantumrpg/api/event/RPGDamageEvent.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,7 @@ public void computeDamage(@NotNull DamageAttribute damage, @NotNull DoubleUnaryO
122122
}
123123

124124
public void computeDamage(@NotNull Collection<DamageAttribute> damages, @NotNull DoubleUnaryOperator operator) {
125-
damages.forEach(dmgApp -> {
126-
this.damageMap.compute(dmgApp, (dmgApp2, dmg) -> {
127-
return operator.applyAsDouble(this.damageMap.computeIfAbsent(dmgApp, dmg2 -> 0D));
128-
});
129-
});
125+
damages.forEach(dmgApp -> this.damageMap.compute(dmgApp, (dmgApp2, dmg) -> operator.applyAsDouble(this.damageMap.computeIfAbsent(dmgApp, dmg2 -> 0D))));
130126
this.damageMap.values().removeIf(dmg -> dmg == 0D);
131127
}
132128

@@ -144,11 +140,7 @@ public void computeDefensee(@NotNull DefenseAttribute defense, @NotNull DoubleUn
144140
}
145141

146142
public void computeDefense(@NotNull Collection<DefenseAttribute> defenses, @NotNull DoubleUnaryOperator operator) {
147-
defenses.forEach(defApp -> {
148-
this.defenseMap.compute(defApp, (defKey, defVal) -> {
149-
return operator.applyAsDouble(this.defenseMap.computeIfAbsent(defApp, defVal2 -> 0D));
150-
});
151-
});
143+
defenses.forEach(defApp -> this.defenseMap.compute(defApp, (defKey, defVal) -> operator.applyAsDouble(this.defenseMap.computeIfAbsent(defApp, defVal2 -> 0D))));
152144
this.defenseMap.values().removeIf(dmg -> dmg == 0D);
153145
}
154146

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package su.nightexpress.quantumrpg.data.api.serialize;
2+
3+
import com.google.gson.JsonArray;
4+
import com.google.gson.JsonDeserializationContext;
5+
import com.google.gson.JsonDeserializer;
6+
import com.google.gson.JsonElement;
7+
import com.google.gson.JsonObject;
8+
import com.google.gson.JsonParseException;
9+
import java.lang.reflect.Type;
10+
import su.nightexpress.quantumrpg.modules.list.classes.ComboManager;
11+
import su.nightexpress.quantumrpg.modules.list.classes.api.UserSkillData;
12+
13+
public class SkillDataDeserializer implements JsonDeserializer<UserSkillData> {
14+
public UserSkillData deserialize(JsonElement json, Type type, JsonDeserializationContext contex) throws JsonParseException {
15+
JsonObject o = json.getAsJsonObject();
16+
String id = o.get("id").getAsString();
17+
int lvl = o.get("lvl").getAsInt();
18+
ComboManager.ComboKey[] combo = new ComboManager.ComboKey[(ComboManager.ComboKey.values()).length];
19+
JsonElement eCombo = o.get("combo");
20+
if (eCombo != null) {
21+
JsonArray jCombo = eCombo.getAsJsonArray();
22+
combo = new ComboManager.ComboKey[jCombo.size()];
23+
int i = 0;
24+
for (JsonElement e : jCombo)
25+
combo[i++] = (ComboManager.ComboKey)contex.deserialize(e, ComboManager.ComboKey.class);
26+
}
27+
return new UserSkillData(id, lvl, combo);
28+
}
29+
}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
package su.nightexpress.quantumrpg.data.api.serialize;
2+
3+
import com.google.gson.*;
4+
import org.bukkit.inventory.ItemStack;
5+
import su.nexmedia.engine.utils.CollectionsUT;
6+
import su.nexmedia.engine.utils.ItemUT;
7+
import su.nightexpress.quantumrpg.QuantumRPG;
8+
import su.nightexpress.quantumrpg.api.QuantumAPI;
9+
import su.nightexpress.quantumrpg.data.api.UserEntityNamesMode;
10+
import su.nightexpress.quantumrpg.data.api.UserProfile;
11+
import su.nightexpress.quantumrpg.manager.effects.buffs.SavedBuff;
12+
import su.nightexpress.quantumrpg.modules.list.classes.api.RPGClass;
13+
import su.nightexpress.quantumrpg.modules.list.classes.api.UserClassData;
14+
15+
import java.lang.reflect.Type;
16+
import java.util.HashSet;
17+
import java.util.Set;
18+
19+
public class UserProfileDeserializer implements JsonDeserializer<UserProfile> {
20+
public UserProfile deserialize(JsonElement json, Type type, JsonDeserializationContext context) throws JsonParseException {
21+
JsonObject j = json.getAsJsonObject();
22+
String id = j.get("name").getAsString();
23+
boolean isDefault = j.get("isDefault").getAsBoolean();
24+
Set<SavedBuff> buffDamage = new HashSet<>();
25+
JsonElement jBuffsElem = j.get("buffDamage");
26+
JsonArray jBuffs = null;
27+
if (jBuffsElem != null) {
28+
jBuffs = jBuffsElem.getAsJsonArray();
29+
for (JsonElement e : jBuffs)
30+
buffDamage.add(context.deserialize(e, SavedBuff.class));
31+
}
32+
Set<SavedBuff> buffDefense = new HashSet<>();
33+
jBuffsElem = j.get("buffDefense");
34+
jBuffs = null;
35+
if (jBuffsElem != null) {
36+
jBuffs = jBuffsElem.getAsJsonArray();
37+
for (JsonElement e : jBuffs)
38+
buffDefense.add(context.deserialize(e, SavedBuff.class));
39+
}
40+
Set<SavedBuff> buffStats = new HashSet<>();
41+
jBuffsElem = j.get("buffStats");
42+
jBuffs = null;
43+
if (jBuffsElem != null) {
44+
jBuffs = jBuffsElem.getAsJsonArray();
45+
for (JsonElement e : jBuffs)
46+
buffStats.add(context.deserialize(e, SavedBuff.class));
47+
}
48+
JsonElement eInventory = j.get("inventory");
49+
ItemStack[] inventory = new ItemStack[41];
50+
if (eInventory != null) {
51+
int count = 0;
52+
for (JsonElement item : eInventory.getAsJsonArray())
53+
inventory[count++] = ItemUT.fromBase64(item.getAsString());
54+
}
55+
JsonElement eNames = j.get("namesMode");
56+
String namesModeRaw = (eNames != null) ? eNames.getAsString() : null;
57+
UserEntityNamesMode namesMode = (namesModeRaw != null) ? CollectionsUT.getEnum(namesModeRaw, UserEntityNamesMode.class) : UserEntityNamesMode.DEFAULT;
58+
JsonElement eHideHelmet = j.get("hideHelmet");
59+
boolean hideHelmet = eHideHelmet != null && eHideHelmet.getAsBoolean();
60+
UserClassData cData = null;
61+
JsonElement jData = j.get("cData");
62+
if (jData != null && QuantumRPG.getInstance().cfg().isModuleEnabled("classes")) {
63+
JsonObject jClass = jData.getAsJsonObject();
64+
cData = context.deserialize(jClass, UserClassData.class);
65+
String clazzId = cData.getClassId();
66+
RPGClass clazz = QuantumAPI.getModuleManager().getClassManager().getClassById(clazzId);
67+
if (clazz == null) {
68+
System.out.println("[QuantumRPG] Player class '" + clazzId + "' no more exists.");
69+
cData = null;
70+
} else {
71+
cData.setPlayerClass(clazz);
72+
}
73+
}
74+
JsonElement jCooldown = j.get("cCooldown");
75+
long cCooldown = 0L;
76+
if (jCooldown != null)
77+
cCooldown = jCooldown.getAsLong();
78+
return new UserProfile(
79+
id,
80+
isDefault,
81+
82+
buffDamage,
83+
buffDefense,
84+
buffStats,
85+
86+
inventory,
87+
(namesMode == null) ? UserEntityNamesMode.DEFAULT : namesMode,
88+
hideHelmet,
89+
90+
cData,
91+
cCooldown);
92+
}
93+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package su.nightexpress.quantumrpg.hooks.external;
2+
3+
import net.citizensnpcs.api.CitizensAPI;
4+
import net.citizensnpcs.api.trait.TraitInfo;
5+
import org.jetbrains.annotations.NotNull;
6+
import su.nexmedia.engine.hooks.HookState;
7+
import su.nexmedia.engine.hooks.NHook;
8+
import su.nightexpress.quantumrpg.QuantumRPG;
9+
10+
import java.util.HashSet;
11+
import java.util.Set;
12+
13+
public class CitizensHook extends NHook<QuantumRPG> {
14+
private Set<TraitInfo> traits;
15+
16+
public CitizensHook(@NotNull QuantumRPG plugin) {
17+
super(plugin);
18+
}
19+
20+
@NotNull
21+
public HookState setup() {
22+
this.traits = new HashSet<>();
23+
return HookState.SUCCESS;
24+
}
25+
26+
public void shutdown() {
27+
unregisterTraits();
28+
}
29+
30+
public void registerTrait(@NotNull TraitInfo trait) {
31+
unregisterTrait(trait);
32+
if (this.traits.add(trait)) {
33+
this.plugin.info("[Citizens Hook] Registered trait: " + trait.getTraitName());
34+
CitizensAPI.getTraitFactory().registerTrait(trait);
35+
}
36+
}
37+
38+
public void unregisterTrait(@NotNull TraitInfo trait) {
39+
if (this.traits.remove(trait))
40+
this.plugin.info("[Citizens Hook] Unregistered trait: " + trait.getTraitName());
41+
CitizensAPI.getTraitFactory().deregisterTrait(trait);
42+
}
43+
44+
private void unregisterTraits() {
45+
for (TraitInfo ti : this.traits)
46+
unregisterTrait(ti);
47+
this.traits = null;
48+
}
49+
}

0 commit comments

Comments
 (0)