Skip to content

Commit 2c9ecb6

Browse files
committed
upkeep & custom models
1 parent 8f2e31f commit 2c9ecb6

File tree

7 files changed

+48
-25
lines changed

7 files changed

+48
-25
lines changed

.classpath

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
</classpathentry>
99
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
1010
<attributes>
11+
<attribute name="module" value="true"/>
1112
<attribute name="maven.pomderived" value="true"/>
1213
</attributes>
1314
</classpathentry>

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<modelVersion>4.0.0</modelVersion>
33
<groupId>project</groupId>
44
<artifactId>items</artifactId>
5-
<version>1.5.0</version>
5+
<version>1.6.0</version>
66
<name>BendingItems</name>
77

88
<repositories>
@@ -23,7 +23,7 @@
2323
<dependency>
2424
<groupId>com.projectkorra</groupId>
2525
<artifactId>projectkorra</artifactId>
26-
<version>1.9.0</version>
26+
<version>1.11.2</version>
2727
<scope>provided</scope>
2828
</dependency>
2929
</dependencies>

src/me/simplicitee/project/items/BendingItem.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,8 @@
1313

1414
import com.projectkorra.projectkorra.Element;
1515
import com.projectkorra.projectkorra.ability.CoreAbility;
16-
import com.projectkorra.projectkorra.attribute.AttributePriority;
1716

1817
import me.simplicitee.project.items.gui.DisplayItem;
19-
import net.md_5.bungee.api.ChatColor;
2018

2119
public class BendingItem implements Listener {
2220

@@ -77,7 +75,7 @@ public List<String> listMods() {
7775
mods.add("Stats:");
7876
for (CoreAbility ability : this.mods.keySet()) {
7977
for (BendingModifier mod : this.mods.get(ability)) {
80-
mods.add("- " + (ability != null ? ability.getName() : "Base") + mod.attribute() + ChatColor.RESET + ": " + mod.value());
78+
mods.add("- " + (ability != null ? ability.getName() : "Base") + mod.toString());
8179
}
8280
}
8381

@@ -101,11 +99,7 @@ public void applyMods(CoreAbility abil, ItemStack stack) {
10199
}
102100

103101
for (BendingModifier mod : specific) {
104-
try {
105-
abil.addAttributeModifier(mod.attribute(), mod.num(), mod.method(), AttributePriority.LOW);
106-
} catch (Exception e) {
107-
continue;
108-
}
102+
mod.apply(abil);
109103
}
110104

111105
ItemManager.use(abil.getPlayer(), stack);
Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,44 @@
11
package me.simplicitee.project.items;
22

3+
import com.projectkorra.projectkorra.ability.CoreAbility;
34
import com.projectkorra.projectkorra.attribute.AttributeModifier;
5+
import com.projectkorra.projectkorra.attribute.AttributePriority;
46

57
public final class BendingModifier {
68

7-
private String attribute, value;
9+
private String attribute;
810
private AttributeModifier mod;
9-
private Number num;
11+
private Number scalar;
1012

11-
public BendingModifier(String attribute, String value) {
13+
public BendingModifier(String attribute, AttributeModifier mod, Number scalar) {
1214
this.attribute = attribute;
13-
this.value = value;
14-
this.mod = value.charAt(0) == 'x' ? AttributeModifier.MULTIPLICATION : AttributeModifier.ADDITION;
15-
this.num = Double.parseDouble(value.substring(1, value.length()));
15+
this.mod = mod;
16+
this.scalar = scalar;
1617
}
1718

1819
public String attribute() {
1920
return attribute;
2021
}
2122

22-
public AttributeModifier method() {
23-
return mod;
23+
public void apply(CoreAbility ability) {
24+
try {
25+
ability.addAttributeModifier(attribute, scalar, mod, AttributePriority.LOW);
26+
} catch (Exception e) {}
2427
}
2528

26-
public Number num() {
27-
return num;
29+
@Override
30+
public String toString() {
31+
return attribute + ": " + (mod == AttributeModifier.MULTIPLICATION ? "x" : "+") + scalar.toString();
2832
}
2933

30-
public String value() {
31-
return value;
34+
public static BendingModifier of(String attribute, String value) {
35+
if (!value.startsWith("x") || !value.startsWith("+")) {
36+
throw new IllegalArgumentException("Mods must start with 'x' or '+'");
37+
}
38+
39+
AttributeModifier mod = value.startsWith("x") ? AttributeModifier.MULTIPLICATION : AttributeModifier.ADDITION;
40+
Number scalar = Double.parseDouble(value.substring(1));
41+
42+
return new BendingModifier(attribute, mod, scalar);
3243
}
3344
}

src/me/simplicitee/project/items/ItemManager.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ private ItemManager() {}
5555
private static final String FLAGS_PATH = "Flags";
5656
private static final String USES_PATH = "Uses";
5757
private static final String RECIPE_PATH = "Recipe";
58+
private static final String MODEL_PATH = "Model";
5859

5960
public static void equip(Player player, BendingItem item) {
6061
EQUIPPED.put(player, item);
@@ -265,6 +266,10 @@ public static BendingItem register(File file) throws IllegalArgumentException {
265266
}
266267
}
267268

269+
if (config.contains(MODEL_PATH)) {
270+
meta.setCustomModelData(config.getInt(MODEL_PATH));
271+
}
272+
268273
int id = name.hashCode();
269274
meta.setLore(lore);
270275
meta.getPersistentDataContainer().set(ID_KEY, PersistentDataType.INTEGER, id);
@@ -370,7 +375,19 @@ private static List<BendingModifier> loadMods(ConfigurationSection section) {
370375
List<BendingModifier> mods = new ArrayList<>();
371376

372377
for (String key : section.getKeys(false)) {
373-
mods.add(new BendingModifier(key, section.getString(key)));
378+
BendingModifier mod = null;
379+
380+
try {
381+
mod = BendingModifier.of(key, section.getString(key));
382+
} catch (Exception e) {
383+
e.printStackTrace();
384+
}
385+
386+
if (mod == null) {
387+
continue;
388+
}
389+
390+
mods.add(mod);
374391
}
375392

376393
return mods;

src/me/simplicitee/project/items/ItemsPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public void onEnable() {
2626
// register listener
2727
this.getServer().getPluginManager().registerEvents(this, this);
2828

29-
// register command
29+
// register commands
3030
new ItemCommand();
3131
new AttributesCommand();
3232
}

src/plugin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: BendingItems
22
author: Simplicitee
33
api-version: 1.16
4-
version: 1.5.0
4+
version: 1.6.0
55
main: me.simplicitee.project.items.ItemsPlugin
66
depend: [ProjectKorra]
77
permissions:

0 commit comments

Comments
 (0)