From 0014e10edd614b25cf7c55110339c16e80b9bdee Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Fri, 15 Mar 2024 22:21:09 +0100
Subject: [PATCH 01/28] fix: new skill ID system
---
.../java/io/github/alathra/alathraskills/api/SkillsManager.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
index 35c1011..cde3499 100644
--- a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
+++ b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
@@ -58,7 +58,7 @@ public void loadSkills() {
}
public void loadWoodcuttingSkills() {
- woodcuttingSkills.put(1, new SaveTheTreesSkill(1));
+ woodcuttingSkills.put(301, new SaveTheTreesSkill(301));
}
}
From 34c049800ca14e39ff8fca91146dcb4dac72be44 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Tue, 19 Mar 2024 01:40:13 +0100
Subject: [PATCH 02/28] refactor: moved save the trees skill logic
---
.../listeners/ListenerHandler.java | 4 +-
.../skills/WoodcuttingSkillsListener.java | 25 +++++++++++
.../woodcutting/SaveTheTreesListener.java | 42 -------------------
.../skills/woodcutting/SaveTheTreesSkill.java | 24 +++++++++++
4 files changed, 51 insertions(+), 44 deletions(-)
create mode 100644 src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
delete mode 100644 src/main/java/io/github/alathra/alathraskills/listeners/skills/woodcutting/SaveTheTreesListener.java
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/ListenerHandler.java b/src/main/java/io/github/alathra/alathraskills/listeners/ListenerHandler.java
index 3d62e55..dede86b 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/ListenerHandler.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/ListenerHandler.java
@@ -3,7 +3,7 @@
import io.github.alathra.alathraskills.AlathraSkills;
import io.github.alathra.alathraskills.Reloadable;
import io.github.alathra.alathraskills.listeners.exp.WoodcuttingExpListener;
-import io.github.alathra.alathraskills.listeners.skills.woodcutting.SaveTheTreesListener;
+import io.github.alathra.alathraskills.listeners.skills.WoodcuttingSkillsListener;
/**
* A class to handle registration of event listeners.
@@ -32,6 +32,6 @@ public void onDisable() {
}
public void registerWoodcuttingSkillsListeners() {
- plugin.getServer().getPluginManager().registerEvents(new SaveTheTreesListener(), plugin);
+ plugin.getServer().getPluginManager().registerEvents(new WoodcuttingSkillsListener(), plugin);
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
new file mode 100644
index 0000000..9385cc2
--- /dev/null
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -0,0 +1,25 @@
+package io.github.alathra.alathraskills.listeners.skills;
+
+import io.github.alathra.alathraskills.skills.woodcutting.SaveTheTreesSkill;
+import org.bukkit.Tag;
+import org.bukkit.block.Block;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.block.BlockBreakEvent;
+
+public class WoodcuttingSkillsListener implements Listener {
+
+ @EventHandler
+ public void BlockBreakListener(BlockBreakEvent event) {
+ Block block = event.getBlock();
+
+ if (!Tag.LOGS.isTagged(block.getType()))
+ return;
+
+ // TODO Check if block was placed by player
+
+ // TODO check if player has skills before calling function
+ SaveTheTreesSkill.saveTheTreeSkillRun(block);
+ }
+
+}
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/woodcutting/SaveTheTreesListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/woodcutting/SaveTheTreesListener.java
deleted file mode 100644
index 766a161..0000000
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/woodcutting/SaveTheTreesListener.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package io.github.alathra.alathraskills.listeners.skills.woodcutting;
-
-import org.bukkit.Material;
-import org.bukkit.Tag;
-import org.bukkit.block.Block;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.block.BlockBreakEvent;
-
-public class SaveTheTreesListener implements Listener {
-
- @EventHandler
- public void BlockBreakListener(BlockBreakEvent event) {
- Block block = event.getBlock();
-
- if (!Tag.LOGS.isTagged(block.getType()))
- return;
-
- // TODO Check if block was placed by player
-
- Material blockUnder = block.getRelative(0, -1, 0).getType();
- if (!Tag.DIRT.isTagged(blockUnder))
- return;
-
- String blockString = block.getType().toString();
-
- // Removes "STRIPPED_".
- if (blockString.contains("STRIPPED"))
- blockString = blockString.substring(9);
-
- String[] materialArray = blockString.split("_");
-
- // Handles dark oak.
- if (materialArray.length > 2 && materialArray[2] != null)
- materialArray[0] = materialArray[0].concat("_").concat(materialArray[1]);
-
- String sapling = materialArray[0].concat("_SAPLING");
-
- block.setType(Material.getMaterial(sapling));
- }
-
-}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/SaveTheTreesSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/SaveTheTreesSkill.java
index 31137fb..65cf7de 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/SaveTheTreesSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/SaveTheTreesSkill.java
@@ -5,6 +5,8 @@
import io.github.alathra.alathraskills.api.SkillsManager;
import io.github.alathra.alathraskills.skills.Skill;
import org.bukkit.Material;
+import org.bukkit.Tag;
+import org.bukkit.block.Block;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
@@ -26,4 +28,26 @@ public SaveTheTreesSkill(int id) {
skillsManager = AlathraSkills.getSkillsManager();
super.setCategory(skillsManager.skillCategories.get(3));
}
+
+ public static void saveTheTreeSkillRun(Block eventBlock) {
+ Material blockUnder = eventBlock.getRelative(0, -1, 0).getType();
+ if (!Tag.DIRT.isTagged(blockUnder))
+ return;
+
+ String blockString = eventBlock.getType().toString();
+
+ // Removes "STRIPPED_".
+ if (blockString.contains("STRIPPED"))
+ blockString = blockString.substring(9);
+
+ String[] materialArray = blockString.split("_");
+
+ // Handles dark oak.
+ if (materialArray.length > 2 && materialArray[2] != null)
+ materialArray[0] = materialArray[0].concat("_").concat(materialArray[1]);
+
+ String sapling = materialArray[0].concat("_SAPLING");
+
+ eventBlock.setType(Material.getMaterial(sapling));
+ }
}
From e469c7af102711cf3d0c962b1924e0c6528dd54c Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Tue, 19 Mar 2024 01:56:37 +0100
Subject: [PATCH 03/28] feat: added precise chop level one
---
.../alathraskills/api/SkillsManager.java | 2 +
.../skills/WoodcuttingSkillsListener.java | 2 +
.../woodcutting/PreciseChopOneSkill.java | 47 +++++++++++++++++++
3 files changed, 51 insertions(+)
create mode 100644 src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
diff --git a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
index cde3499..ad4de14 100644
--- a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
+++ b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
@@ -9,6 +9,7 @@
import io.github.alathra.alathraskills.skills.categories.FarmingSkillCategory;
import io.github.alathra.alathraskills.skills.categories.MiningSkillCategory;
import io.github.alathra.alathraskills.skills.categories.WoodcuttingSkillCategory;
+import io.github.alathra.alathraskills.skills.woodcutting.PreciseChopOneSkill;
import io.github.alathra.alathraskills.skills.woodcutting.SaveTheTreesSkill;
public class SkillsManager implements Reloadable {
@@ -59,6 +60,7 @@ public void loadSkills() {
public void loadWoodcuttingSkills() {
woodcuttingSkills.put(301, new SaveTheTreesSkill(301));
+ woodcuttingSkills.put(302, new PreciseChopOneSkill(302));
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 9385cc2..4a226f9 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -1,5 +1,6 @@
package io.github.alathra.alathraskills.listeners.skills;
+import io.github.alathra.alathraskills.skills.woodcutting.PreciseChopOneSkill;
import io.github.alathra.alathraskills.skills.woodcutting.SaveTheTreesSkill;
import org.bukkit.Tag;
import org.bukkit.block.Block;
@@ -20,6 +21,7 @@ public void BlockBreakListener(BlockBreakEvent event) {
// TODO check if player has skills before calling function
SaveTheTreesSkill.saveTheTreeSkillRun(block);
+ PreciseChopOneSkill.preciseChopOneSkill(block);
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
new file mode 100644
index 0000000..294d2a6
--- /dev/null
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
@@ -0,0 +1,47 @@
+package io.github.alathra.alathraskills.skills.woodcutting;
+
+import com.github.milkdrinkers.colorparser.ColorParser;
+import io.github.alathra.alathraskills.AlathraSkills;
+import io.github.alathra.alathraskills.api.SkillsManager;
+import io.github.alathra.alathraskills.skills.Skill;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.World;
+import org.bukkit.block.Block;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+
+import java.util.Collections;
+import java.util.Random;
+
+public class PreciseChopOneSkill extends Skill {
+
+ private SkillsManager skillsManager;
+
+ public PreciseChopOneSkill(int id) {
+ super(id, "Precise Chop 1", "Get a chance at some extra logs!");
+
+ ItemStack icon = new ItemStack(Material.OAK_LOG);
+ ItemMeta meta = icon.getItemMeta();
+ meta.displayName(ColorParser.of("" + super.getName() + "").build());
+ meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ icon.setItemMeta(meta);
+ super.setIcon(icon);
+
+ skillsManager = AlathraSkills.getSkillsManager();
+ super.setCategory(skillsManager.skillCategories.get(3));
+ }
+
+ public static void preciseChopOneSkill(Block eventBlock) {
+ int random = new Random().nextInt(20);
+ if (random != 0)
+ return;
+
+ Material material = eventBlock.getType();
+ Location location = eventBlock.getLocation();
+ World world = location.getWorld();
+
+ world.dropItemNaturally(location, new ItemStack(material));
+ }
+
+}
From c599007ab2fc649b91bf6b5b3c1c1a0eb4bd6c1d Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Tue, 19 Mar 2024 01:59:44 +0100
Subject: [PATCH 04/28] feat: added precise chop level two
---
.../alathraskills/api/SkillsManager.java | 2 +
.../skills/WoodcuttingSkillsListener.java | 2 +
.../woodcutting/PreciseChopTwoSkill.java | 46 +++++++++++++++++++
3 files changed, 50 insertions(+)
create mode 100644 src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
diff --git a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
index ad4de14..734a984 100644
--- a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
+++ b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
@@ -10,6 +10,7 @@
import io.github.alathra.alathraskills.skills.categories.MiningSkillCategory;
import io.github.alathra.alathraskills.skills.categories.WoodcuttingSkillCategory;
import io.github.alathra.alathraskills.skills.woodcutting.PreciseChopOneSkill;
+import io.github.alathra.alathraskills.skills.woodcutting.PreciseChopTwoSkill;
import io.github.alathra.alathraskills.skills.woodcutting.SaveTheTreesSkill;
public class SkillsManager implements Reloadable {
@@ -61,6 +62,7 @@ public void loadSkills() {
public void loadWoodcuttingSkills() {
woodcuttingSkills.put(301, new SaveTheTreesSkill(301));
woodcuttingSkills.put(302, new PreciseChopOneSkill(302));
+ woodcuttingSkills.put(303, new PreciseChopTwoSkill(302));
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 4a226f9..cf25345 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -1,6 +1,7 @@
package io.github.alathra.alathraskills.listeners.skills;
import io.github.alathra.alathraskills.skills.woodcutting.PreciseChopOneSkill;
+import io.github.alathra.alathraskills.skills.woodcutting.PreciseChopTwoSkill;
import io.github.alathra.alathraskills.skills.woodcutting.SaveTheTreesSkill;
import org.bukkit.Tag;
import org.bukkit.block.Block;
@@ -22,6 +23,7 @@ public void BlockBreakListener(BlockBreakEvent event) {
// TODO check if player has skills before calling function
SaveTheTreesSkill.saveTheTreeSkillRun(block);
PreciseChopOneSkill.preciseChopOneSkill(block);
+ PreciseChopTwoSkill.preciseChopTwoSkill(block);
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
new file mode 100644
index 0000000..4f4a648
--- /dev/null
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
@@ -0,0 +1,46 @@
+package io.github.alathra.alathraskills.skills.woodcutting;
+
+import com.github.milkdrinkers.colorparser.ColorParser;
+import io.github.alathra.alathraskills.AlathraSkills;
+import io.github.alathra.alathraskills.api.SkillsManager;
+import io.github.alathra.alathraskills.skills.Skill;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.World;
+import org.bukkit.block.Block;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+
+import java.util.Collections;
+import java.util.Random;
+
+public class PreciseChopTwoSkill extends Skill {
+
+ private SkillsManager skillsManager;
+
+ public PreciseChopTwoSkill(int id) {
+ super(id, "Precise Chop 2", "Get a greater chance at some extra logs!");
+
+ ItemStack icon = new ItemStack(Material.OAK_LOG);
+ ItemMeta meta = icon.getItemMeta();
+ meta.displayName(ColorParser.of("" + super.getName() + "").build());
+ meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ icon.setItemMeta(meta);
+ super.setIcon(icon);
+
+ skillsManager = AlathraSkills.getSkillsManager();
+ super.setCategory(skillsManager.skillCategories.get(3));
+ }
+
+ public static void preciseChopTwoSkill(Block eventBlock) {
+ int random = new Random().nextInt(20);
+ if (random > 1)
+ return;
+
+ Material material = eventBlock.getType();
+ Location location = eventBlock.getLocation();
+ World world = location.getWorld();
+
+ world.dropItemNaturally(location, new ItemStack(material));
+ }
+}
From 30d2aad07dcaf69261b715decfabadab4703f0b0 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Tue, 19 Mar 2024 02:30:01 +0100
Subject: [PATCH 05/28] feat: added trimmer level one
---
.../alathraskills/api/SkillsManager.java | 2 +
.../skills/WoodcuttingSkillsListener.java | 33 +++++++++++---
.../skills/woodcutting/TrimmerOneSkill.java | 45 +++++++++++++++++++
3 files changed, 73 insertions(+), 7 deletions(-)
create mode 100644 src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java
diff --git a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
index 734a984..1b6fd2e 100644
--- a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
+++ b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
@@ -12,6 +12,7 @@
import io.github.alathra.alathraskills.skills.woodcutting.PreciseChopOneSkill;
import io.github.alathra.alathraskills.skills.woodcutting.PreciseChopTwoSkill;
import io.github.alathra.alathraskills.skills.woodcutting.SaveTheTreesSkill;
+import io.github.alathra.alathraskills.skills.woodcutting.TrimmerOneSkill;
public class SkillsManager implements Reloadable {
@@ -63,6 +64,7 @@ public void loadWoodcuttingSkills() {
woodcuttingSkills.put(301, new SaveTheTreesSkill(301));
woodcuttingSkills.put(302, new PreciseChopOneSkill(302));
woodcuttingSkills.put(303, new PreciseChopTwoSkill(302));
+ woodcuttingSkills.put(304, new TrimmerOneSkill(304));
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index cf25345..33b0dcc 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -3,27 +3,46 @@
import io.github.alathra.alathraskills.skills.woodcutting.PreciseChopOneSkill;
import io.github.alathra.alathraskills.skills.woodcutting.PreciseChopTwoSkill;
import io.github.alathra.alathraskills.skills.woodcutting.SaveTheTreesSkill;
+import io.github.alathra.alathraskills.skills.woodcutting.TrimmerOneSkill;
+import org.bukkit.Material;
import org.bukkit.Tag;
import org.bukkit.block.Block;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
+import org.bukkit.event.block.BlockDamageEvent;
public class WoodcuttingSkillsListener implements Listener {
@EventHandler
public void BlockBreakListener(BlockBreakEvent event) {
Block block = event.getBlock();
-
- if (!Tag.LOGS.isTagged(block.getType()))
- return;
+ Material material = block.getType();
// TODO Check if block was placed by player
- // TODO check if player has skills before calling function
- SaveTheTreesSkill.saveTheTreeSkillRun(block);
- PreciseChopOneSkill.preciseChopOneSkill(block);
- PreciseChopTwoSkill.preciseChopTwoSkill(block);
+ if (Tag.LOGS.isTagged(material)) {
+ // TODO check if player has skills before calling function
+ SaveTheTreesSkill.saveTheTreeSkillRun(block);
+ PreciseChopOneSkill.preciseChopOneSkill(block);
+ PreciseChopTwoSkill.preciseChopTwoSkill(block);
+ }
+
+ if (Tag.LEAVES.isTagged(material)) {
+ TrimmerOneSkill.trimmerOneSkillRun(block);
+ }
}
+
+ // TODO check if player has trimmer skill
+ @EventHandler
+ public void BlockDamageListener(BlockDamageEvent event) {
+ if (!Tag.LEAVES.isTagged(event.getBlock().getType()))
+ return;
+
+ if (!Tag.ITEMS_AXES.isTagged(event.getItemInHand().getType()))
+ return;
+
+ event.setInstaBreak(true);
+ }
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java
new file mode 100644
index 0000000..c0a9f2b
--- /dev/null
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java
@@ -0,0 +1,45 @@
+package io.github.alathra.alathraskills.skills.woodcutting;
+
+import com.github.milkdrinkers.colorparser.ColorParser;
+import io.github.alathra.alathraskills.AlathraSkills;
+import io.github.alathra.alathraskills.api.SkillsManager;
+import io.github.alathra.alathraskills.skills.Skill;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.World;
+import org.bukkit.block.Block;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+
+import java.util.Collections;
+import java.util.Random;
+
+public class TrimmerOneSkill extends Skill {
+
+ private SkillsManager skillsManager;
+
+ public TrimmerOneSkill(int id) {
+ super(id, "Trimmer 1", "Clear those leaves, now with an extra chance at apples!");
+
+ ItemStack icon = new ItemStack(Material.OAK_LEAVES);
+ ItemMeta meta = icon.getItemMeta();
+ meta.displayName(ColorParser.of("" + super.getName() + "").build());
+ meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ icon.setItemMeta(meta);
+ super.setIcon(icon);
+
+ skillsManager = AlathraSkills.getSkillsManager();
+ super.setCategory(skillsManager.skillCategories.get(3));
+ }
+
+ public static void trimmerOneSkillRun(Block eventBlock) {
+ int random = new Random().nextInt(50);
+ if (random != 0)
+ return;
+
+ Location location = eventBlock.getLocation();
+ World world = eventBlock.getWorld();
+
+ world.dropItemNaturally(location, new ItemStack(Material.APPLE));
+ }
+}
From d295e2d27110badbf8a7d68edbe380375590cdf2 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Tue, 19 Mar 2024 02:48:04 +0100
Subject: [PATCH 06/28] refactor: standardized function names
---
.../listeners/skills/WoodcuttingSkillsListener.java | 4 ++--
.../alathraskills/skills/woodcutting/PreciseChopOneSkill.java | 2 +-
.../alathraskills/skills/woodcutting/PreciseChopTwoSkill.java | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 33b0dcc..88ded18 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -24,8 +24,8 @@ public void BlockBreakListener(BlockBreakEvent event) {
if (Tag.LOGS.isTagged(material)) {
// TODO check if player has skills before calling function
SaveTheTreesSkill.saveTheTreeSkillRun(block);
- PreciseChopOneSkill.preciseChopOneSkill(block);
- PreciseChopTwoSkill.preciseChopTwoSkill(block);
+ PreciseChopOneSkill.preciseChopOneSkillRun(block);
+ PreciseChopTwoSkill.preciseChopTwoSkillRun(block);
}
if (Tag.LEAVES.isTagged(material)) {
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
index 294d2a6..f09ebd4 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
@@ -32,7 +32,7 @@ public PreciseChopOneSkill(int id) {
super.setCategory(skillsManager.skillCategories.get(3));
}
- public static void preciseChopOneSkill(Block eventBlock) {
+ public static void preciseChopOneSkillRun(Block eventBlock) {
int random = new Random().nextInt(20);
if (random != 0)
return;
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
index 4f4a648..4d5823b 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
@@ -32,7 +32,7 @@ public PreciseChopTwoSkill(int id) {
super.setCategory(skillsManager.skillCategories.get(3));
}
- public static void preciseChopTwoSkill(Block eventBlock) {
+ public static void preciseChopTwoSkillRun(Block eventBlock) {
int random = new Random().nextInt(20);
if (random > 1)
return;
From fa41ea11d499b1a54d1b18b2ebfcf0abf50c78ab Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Tue, 19 Mar 2024 04:04:10 +0100
Subject: [PATCH 07/28] feat: added one swing level one
---
.../alathraskills/api/SkillsManager.java | 66 +++++++++++++++++--
.../skills/WoodcuttingSkillsListener.java | 43 ++++++++++--
.../skills/woodcutting/OneSwingOneSkill.java | 66 +++++++++++++++++++
.../skills/woodcutting/util/OneSwing.java | 21 ++++++
4 files changed, 187 insertions(+), 9 deletions(-)
create mode 100644 src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
create mode 100644 src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
diff --git a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
index 1b6fd2e..fa9ff71 100644
--- a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
+++ b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
@@ -1,6 +1,9 @@
package io.github.alathra.alathraskills.api;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
+import java.util.UUID;
import io.github.alathra.alathraskills.AlathraSkills;
import io.github.alathra.alathraskills.Reloadable;
@@ -9,10 +12,8 @@
import io.github.alathra.alathraskills.skills.categories.FarmingSkillCategory;
import io.github.alathra.alathraskills.skills.categories.MiningSkillCategory;
import io.github.alathra.alathraskills.skills.categories.WoodcuttingSkillCategory;
-import io.github.alathra.alathraskills.skills.woodcutting.PreciseChopOneSkill;
-import io.github.alathra.alathraskills.skills.woodcutting.PreciseChopTwoSkill;
-import io.github.alathra.alathraskills.skills.woodcutting.SaveTheTreesSkill;
-import io.github.alathra.alathraskills.skills.woodcutting.TrimmerOneSkill;
+import io.github.alathra.alathraskills.skills.woodcutting.*;
+import org.bukkit.entity.Player;
public class SkillsManager implements Reloadable {
@@ -27,6 +28,12 @@ public class SkillsManager implements Reloadable {
// Id, Skill
public HashMap woodcuttingSkills = new HashMap<>();
+
+ // List of UUIDs that have One Swing ready
+ private List activeOneSwing = new ArrayList<>();
+
+ // List of UUIDs that have One Swing running
+ private List runningOneSwing = new ArrayList<>();
public SkillsManager(AlathraSkills plugin) {
this.plugin = plugin;
@@ -65,6 +72,55 @@ public void loadWoodcuttingSkills() {
woodcuttingSkills.put(302, new PreciseChopOneSkill(302));
woodcuttingSkills.put(303, new PreciseChopTwoSkill(302));
woodcuttingSkills.put(304, new TrimmerOneSkill(304));
+ woodcuttingSkills.put(305, new OneSwingOneSkill(305));
}
-
+
+ public void setOneSwingActive(UUID uuid) {
+ activeOneSwing.add(uuid);
+ }
+
+ public void setOneSwingActive(Player player) {
+ setOneSwingActive(player.getUniqueId());
+ }
+
+ public boolean oneSwingActive(UUID uuid) {
+ return activeOneSwing.contains(uuid);
+ }
+
+ public boolean oneSwingActive(Player player) {
+ return oneSwingActive(player.getUniqueId());
+ }
+
+ public void setOneSwingNotActive(UUID uuid) {
+ activeOneSwing.remove(uuid);
+ }
+
+ public void setOneSwingNotActive(Player player) {
+ setOneSwingNotActive(player.getUniqueId());
+ }
+
+ public void setOneSwingRunning(UUID uuid) {
+ runningOneSwing.add(uuid);
+ }
+
+ public void setOneSwingRunning(Player player) {
+ setOneSwingRunning(player.getUniqueId());
+ }
+
+ public boolean oneSwingRunning(UUID uuid) {
+ return runningOneSwing.contains(uuid);
+ }
+
+ public boolean oneSwingRunning(Player player) {
+ return oneSwingRunning(player.getUniqueId());
+ }
+
+ public void setOneSwingNotRunning(UUID uuid) {
+ runningOneSwing.remove(uuid);
+ }
+
+ public void setOneSwingNotRunning(Player player) {
+ setOneSwingNotRunning(player.getUniqueId());
+ }
+
}
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 88ded18..1b81b52 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -1,23 +1,29 @@
package io.github.alathra.alathraskills.listeners.skills;
-import io.github.alathra.alathraskills.skills.woodcutting.PreciseChopOneSkill;
-import io.github.alathra.alathraskills.skills.woodcutting.PreciseChopTwoSkill;
-import io.github.alathra.alathraskills.skills.woodcutting.SaveTheTreesSkill;
-import io.github.alathra.alathraskills.skills.woodcutting.TrimmerOneSkill;
+import io.github.alathra.alathraskills.AlathraSkills;
+import io.github.alathra.alathraskills.api.SkillsManager;
+import io.github.alathra.alathraskills.skills.woodcutting.*;
+import io.github.alathra.alathraskills.skills.woodcutting.util.OneSwing;
import org.bukkit.Material;
import org.bukkit.Tag;
import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockDamageEvent;
+import org.bukkit.event.player.PlayerInteractEvent;
+import org.bukkit.inventory.EquipmentSlot;
public class WoodcuttingSkillsListener implements Listener {
+ private SkillsManager skillsManager = AlathraSkills.getSkillsManager();
+
@EventHandler
public void BlockBreakListener(BlockBreakEvent event) {
Block block = event.getBlock();
Material material = block.getType();
+ Player player = event.getPlayer();
// TODO Check if block was placed by player
@@ -26,6 +32,14 @@ public void BlockBreakListener(BlockBreakEvent event) {
SaveTheTreesSkill.saveTheTreeSkillRun(block);
PreciseChopOneSkill.preciseChopOneSkillRun(block);
PreciseChopTwoSkill.preciseChopTwoSkillRun(block);
+
+ if (skillsManager.oneSwingActive(player)) {
+ OneSwingOneSkill.runOneSwingSkill(player, block);
+ }
+
+ if (skillsManager.oneSwingRunning(player)) {
+ OneSwing.fellTree(block);
+ }
}
if (Tag.LEAVES.isTagged(material)) {
@@ -45,4 +59,25 @@ public void BlockDamageListener(BlockDamageEvent event) {
event.setInstaBreak(true);
}
+
+ @EventHandler
+ public void RightClickListener(PlayerInteractEvent event) {
+ if (event.getHand() == EquipmentSlot.OFF_HAND)
+ return;
+
+ if (!event.hasItem())
+ return;
+
+ if (!Tag.ITEMS_AXES.isTagged(event.getMaterial()))
+ return;
+
+ // Return if right click logs
+ if (Tag.LOGS.isTagged(event.getClickedBlock().getType()))
+ return;
+
+ Player player = event.getPlayer();
+
+ // TODO check if player has skill
+ OneSwingOneSkill.readyOneSwingOneSkill(player);
+ }
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
new file mode 100644
index 0000000..9c36648
--- /dev/null
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
@@ -0,0 +1,66 @@
+package io.github.alathra.alathraskills.skills.woodcutting;
+
+import com.github.milkdrinkers.colorparser.ColorParser;
+import io.github.alathra.alathraskills.AlathraSkills;
+import io.github.alathra.alathraskills.api.SkillsManager;
+import io.github.alathra.alathraskills.skills.Skill;
+import io.github.alathra.alathraskills.skills.woodcutting.util.OneSwing;
+import org.bukkit.Bukkit;
+import org.bukkit.Material;
+import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+import org.bukkit.plugin.Plugin;
+import org.bukkit.scheduler.BukkitTask;
+
+import java.util.Collections;
+
+public class OneSwingOneSkill extends Skill {
+
+ private static SkillsManager skillsManager;
+ private static Plugin instance;
+ private static BukkitTask deactivateSkillTask;
+
+ public OneSwingOneSkill(int id) {
+ super(id, "One Swing 1", "Chop the whole tree down, in one fell swoop!");
+
+ ItemStack icon = new ItemStack(Material.NETHERITE_AXE);
+ ItemMeta meta = icon.getItemMeta();
+ meta.displayName(ColorParser.of("" + super.getName() + "").build());
+ meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ icon.setItemMeta(meta);
+ super.setIcon(icon);
+
+ skillsManager = AlathraSkills.getSkillsManager();
+ instance = AlathraSkills.getInstance();
+ super.setCategory(skillsManager.skillCategories.get(3));
+ }
+
+ public static void readyOneSwingOneSkill(Player player) {
+ if(skillsManager.oneSwingActive(player)) {
+ skillsManager.setOneSwingActive(player);
+
+ player.sendActionBar(ColorParser.of("One Swing is ready.").build());
+
+ deactivateSkillTask = Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(instance, () -> {
+ skillsManager.setOneSwingNotActive(player);
+ player.sendActionBar(ColorParser.of("One Swing is not ready.").build());
+ }, 100L);
+ } else {
+ skillsManager.setOneSwingNotActive(player);
+ Bukkit.getServer().getScheduler().cancelTask(deactivateSkillTask.getTaskId());
+
+ player.sendActionBar(ColorParser.of("One Swing is not ready.").build());
+ }
+ }
+
+ public static void runOneSwingSkill(Player player, Block block) {
+ skillsManager.setOneSwingRunning(player);
+ skillsManager.setOneSwingNotActive(player);
+ Bukkit.getServer().getScheduler().cancelTask(deactivateSkillTask.getTaskId());
+
+ Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(instance, () -> skillsManager.setOneSwingNotRunning(player), 60L);
+ OneSwing.fellTree(block);
+ }
+}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
new file mode 100644
index 0000000..044ac2f
--- /dev/null
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
@@ -0,0 +1,21 @@
+package io.github.alathra.alathraskills.skills.woodcutting.util;
+
+import org.bukkit.Material;
+import org.bukkit.Tag;
+import org.bukkit.block.Block;
+import org.bukkit.block.BlockFace;
+
+public class OneSwing {
+
+ public static void fellTree(Block block) {
+ Material material = block.getType();
+
+ if (!Tag.LOGS.isTagged(material) && !Tag.LEAVES.isTagged(material))
+ return;
+
+ block.breakNaturally();
+ for (BlockFace face : BlockFace.values())
+ fellTree(block.getRelative(face));
+ }
+
+}
From 00e349d2b4cb742c995e9dd369a7458bb1dff1e0 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Thu, 21 Mar 2024 22:07:09 +0100
Subject: [PATCH 08/28] feat: check for skills before running skill functions
---
.../api/SkillsPlayerManager.java | 4 +++
.../skills/WoodcuttingSkillsListener.java | 36 ++++++++++++++-----
2 files changed, 32 insertions(+), 8 deletions(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/api/SkillsPlayerManager.java b/src/main/java/io/github/alathra/alathraskills/api/SkillsPlayerManager.java
index 9826a96..a01038b 100644
--- a/src/main/java/io/github/alathra/alathraskills/api/SkillsPlayerManager.java
+++ b/src/main/java/io/github/alathra/alathraskills/api/SkillsPlayerManager.java
@@ -121,6 +121,10 @@ private void savePlayerValues(SkillsPlayer sp) {
));
}
+ public final HashMap getSkillPlayers() {
+ return skillPlayers;
+ }
+
//TODO
// https://github.com/Rumsfield/konquest/blob/main/api/src/main/java/com/github/rumsfield/konquest/api/manager/KonquestPlayerManager.java
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 1b81b52..004e047 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -2,6 +2,8 @@
import io.github.alathra.alathraskills.AlathraSkills;
import io.github.alathra.alathraskills.api.SkillsManager;
+import io.github.alathra.alathraskills.api.SkillsPlayer;
+import io.github.alathra.alathraskills.api.SkillsPlayerManager;
import io.github.alathra.alathraskills.skills.woodcutting.*;
import io.github.alathra.alathraskills.skills.woodcutting.util.OneSwing;
import org.bukkit.Material;
@@ -18,6 +20,7 @@
public class WoodcuttingSkillsListener implements Listener {
private SkillsManager skillsManager = AlathraSkills.getSkillsManager();
+ private SkillsPlayerManager skillsPlayerManager = AlathraSkills.getSkillsPlayerManager();
@EventHandler
public void BlockBreakListener(BlockBreakEvent event) {
@@ -25,25 +28,37 @@ public void BlockBreakListener(BlockBreakEvent event) {
Material material = block.getType();
Player player = event.getPlayer();
+ SkillsPlayer skillsPlayer = skillsPlayerManager.getSkillPlayers().get(player.getUniqueId());
+
// TODO Check if block was placed by player
if (Tag.LOGS.isTagged(material)) {
// TODO check if player has skills before calling function
- SaveTheTreesSkill.saveTheTreeSkillRun(block);
- PreciseChopOneSkill.preciseChopOneSkillRun(block);
- PreciseChopTwoSkill.preciseChopTwoSkillRun(block);
- if (skillsManager.oneSwingActive(player)) {
- OneSwingOneSkill.runOneSwingSkill(player, block);
+ if (skillsPlayer.getPlayerSkills().get(301))
+ SaveTheTreesSkill.saveTheTreeSkillRun(block);
+
+ if (skillsPlayer.getPlayerSkills().get(302)) {
+ if (skillsPlayer.getPlayerSkills().get(303)) {
+ PreciseChopTwoSkill.preciseChopTwoSkillRun(block);
+ }
+ PreciseChopOneSkill.preciseChopOneSkillRun(block);
}
- if (skillsManager.oneSwingRunning(player)) {
- OneSwing.fellTree(block);
+ if (skillsPlayer.getPlayerSkills().get(305)) {
+ if (skillsManager.oneSwingActive(player)) {
+ OneSwingOneSkill.runOneSwingSkill(player, block);
+ }
+
+ if (skillsManager.oneSwingRunning(player)) {
+ OneSwing.fellTree(block);
+ }
}
}
if (Tag.LEAVES.isTagged(material)) {
- TrimmerOneSkill.trimmerOneSkillRun(block);
+ if (skillsPlayer.getPlayerSkills().get(304))
+ TrimmerOneSkill.trimmerOneSkillRun(block);
}
}
@@ -51,12 +66,17 @@ public void BlockBreakListener(BlockBreakEvent event) {
// TODO check if player has trimmer skill
@EventHandler
public void BlockDamageListener(BlockDamageEvent event) {
+ SkillsPlayer skillsPlayer = skillsPlayerManager.getSkillPlayers().get(event.getPlayer().getUniqueId());
+
if (!Tag.LEAVES.isTagged(event.getBlock().getType()))
return;
if (!Tag.ITEMS_AXES.isTagged(event.getItemInHand().getType()))
return;
+ if (!skillsPlayer.getPlayerSkills().get(304))
+ return;
+
event.setInstaBreak(true);
}
From e977c6cba39a287d964994f2f5e6a9fd9ea57a37 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Thu, 21 Mar 2024 22:11:07 +0100
Subject: [PATCH 09/28] fix: finished implementing skill checks
---
.../listeners/skills/WoodcuttingSkillsListener.java | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 004e047..8637fe3 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -33,8 +33,6 @@ public void BlockBreakListener(BlockBreakEvent event) {
// TODO Check if block was placed by player
if (Tag.LOGS.isTagged(material)) {
- // TODO check if player has skills before calling function
-
if (skillsPlayer.getPlayerSkills().get(301))
SaveTheTreesSkill.saveTheTreeSkillRun(block);
@@ -63,7 +61,6 @@ public void BlockBreakListener(BlockBreakEvent event) {
}
- // TODO check if player has trimmer skill
@EventHandler
public void BlockDamageListener(BlockDamageEvent event) {
SkillsPlayer skillsPlayer = skillsPlayerManager.getSkillPlayers().get(event.getPlayer().getUniqueId());
@@ -82,6 +79,8 @@ public void BlockDamageListener(BlockDamageEvent event) {
@EventHandler
public void RightClickListener(PlayerInteractEvent event) {
+ SkillsPlayer skillsPlayer = skillsPlayerManager.getSkillPlayers().get(event.getPlayer().getUniqueId());
+
if (event.getHand() == EquipmentSlot.OFF_HAND)
return;
@@ -97,7 +96,7 @@ public void RightClickListener(PlayerInteractEvent event) {
Player player = event.getPlayer();
- // TODO check if player has skill
- OneSwingOneSkill.readyOneSwingOneSkill(player);
+ if (skillsPlayer.getPlayerSkills().get(305))
+ OneSwingOneSkill.readyOneSwingOneSkill(player);
}
}
From 5218717d9a7a921073fa40cf412107d6dae1de15 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Fri, 22 Mar 2024 22:52:28 +0100
Subject: [PATCH 10/28] feat: added carpenter level one
---
.../alathraskills/api/SkillsManager.java | 1 +
.../skills/WoodcuttingSkillsListener.java | 19 ++++++++++++
.../skills/woodcutting/CarpenterOneSkill.java | 30 +++++++++++++++++++
3 files changed, 50 insertions(+)
create mode 100644 src/main/java/io/github/alathra/alathraskills/skills/woodcutting/CarpenterOneSkill.java
diff --git a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
index fa9ff71..85abb23 100644
--- a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
+++ b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
@@ -73,6 +73,7 @@ public void loadWoodcuttingSkills() {
woodcuttingSkills.put(303, new PreciseChopTwoSkill(302));
woodcuttingSkills.put(304, new TrimmerOneSkill(304));
woodcuttingSkills.put(305, new OneSwingOneSkill(305));
+ woodcuttingSkills.put(306, new CarpenterOneSkill(306));
}
public void setOneSwingActive(UUID uuid) {
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 8637fe3..877eb69 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -14,8 +14,11 @@
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockDamageEvent;
+import org.bukkit.event.inventory.CraftItemEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.EquipmentSlot;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.Recipe;
public class WoodcuttingSkillsListener implements Listener {
@@ -99,4 +102,20 @@ public void RightClickListener(PlayerInteractEvent event) {
if (skillsPlayer.getPlayerSkills().get(305))
OneSwingOneSkill.readyOneSwingOneSkill(player);
}
+
+ @EventHandler
+ public void CraftingListener(CraftItemEvent event) {
+ Player player = (Player) event.getViewers().get(0);
+ SkillsPlayer skillsPlayer = skillsPlayerManager.getSkillPlayers().get(player.getUniqueId());
+
+ Recipe recipe = event.getRecipe();
+ Material material = recipe.getResult().getType();
+
+ if(!Tag.PLANKS.isTagged(material))
+ return;
+
+ if (skillsPlayer.getPlayerSkills().get(306)) {
+ player.getInventory().addItem(new ItemStack(material, 2));
+ }
+ }
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/CarpenterOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/CarpenterOneSkill.java
new file mode 100644
index 0000000..2bda2ad
--- /dev/null
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/CarpenterOneSkill.java
@@ -0,0 +1,30 @@
+package io.github.alathra.alathraskills.skills.woodcutting;
+
+import com.github.milkdrinkers.colorparser.ColorParser;
+import io.github.alathra.alathraskills.AlathraSkills;
+import io.github.alathra.alathraskills.api.SkillsManager;
+import io.github.alathra.alathraskills.skills.Skill;
+import org.bukkit.Material;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+
+import java.util.Collections;
+
+public class CarpenterOneSkill extends Skill {
+
+ private static SkillsManager skillsManager;
+
+ public CarpenterOneSkill(int id) {
+ super(id, "Carpenter 1", "Get more out of your logs!");
+
+ ItemStack icon = new ItemStack(Material.NETHERITE_AXE);
+ ItemMeta meta = icon.getItemMeta();
+ meta.displayName(ColorParser.of("" + super.getName() + "").build());
+ meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ icon.setItemMeta(meta);
+ super.setIcon(icon);
+
+ skillsManager = AlathraSkills.getSkillsManager();
+ super.setCategory(skillsManager.skillCategories.get(3));
+ }
+}
From e82e88f90ad40d879b5f15ef9382774d4d8804e7 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Fri, 22 Mar 2024 22:54:19 +0100
Subject: [PATCH 11/28] fix: corrected skill check
---
.../listeners/skills/WoodcuttingSkillsListener.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 877eb69..83a6544 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -42,8 +42,9 @@ public void BlockBreakListener(BlockBreakEvent event) {
if (skillsPlayer.getPlayerSkills().get(302)) {
if (skillsPlayer.getPlayerSkills().get(303)) {
PreciseChopTwoSkill.preciseChopTwoSkillRun(block);
+ } else {
+ PreciseChopOneSkill.preciseChopOneSkillRun(block);
}
- PreciseChopOneSkill.preciseChopOneSkillRun(block);
}
if (skillsPlayer.getPlayerSkills().get(305)) {
From 70bd3539da7b9ece757f665e23bb18fde7f274c9 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Fri, 22 Mar 2024 23:19:47 +0100
Subject: [PATCH 12/28] feat: added trimmer level two
---
.../alathraskills/api/SkillsManager.java | 1 +
.../skills/WoodcuttingSkillsListener.java | 9 +++-
.../skills/woodcutting/TrimmerTwoSkill.java | 45 +++++++++++++++++++
3 files changed, 53 insertions(+), 2 deletions(-)
create mode 100644 src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java
diff --git a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
index 85abb23..c59e4d2 100644
--- a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
+++ b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
@@ -74,6 +74,7 @@ public void loadWoodcuttingSkills() {
woodcuttingSkills.put(304, new TrimmerOneSkill(304));
woodcuttingSkills.put(305, new OneSwingOneSkill(305));
woodcuttingSkills.put(306, new CarpenterOneSkill(306));
+ woodcuttingSkills.put(307, new TrimmerTwoSkill(307));
}
public void setOneSwingActive(UUID uuid) {
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 83a6544..86473d6 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -59,8 +59,13 @@ public void BlockBreakListener(BlockBreakEvent event) {
}
if (Tag.LEAVES.isTagged(material)) {
- if (skillsPlayer.getPlayerSkills().get(304))
- TrimmerOneSkill.trimmerOneSkillRun(block);
+ if (skillsPlayer.getPlayerSkills().get(304)) {
+ if (skillsPlayer.getPlayerSkills().get(307)) {
+ TrimmerTwoSkill.trimmerTwoSkillRun(block);
+ } else {
+ TrimmerOneSkill.trimmerOneSkillRun(block);
+ }
+ }
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java
new file mode 100644
index 0000000..cd8cec8
--- /dev/null
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java
@@ -0,0 +1,45 @@
+package io.github.alathra.alathraskills.skills.woodcutting;
+
+import com.github.milkdrinkers.colorparser.ColorParser;
+import io.github.alathra.alathraskills.AlathraSkills;
+import io.github.alathra.alathraskills.api.SkillsManager;
+import io.github.alathra.alathraskills.skills.Skill;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.World;
+import org.bukkit.block.Block;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+
+import java.util.Collections;
+import java.util.Random;
+
+public class TrimmerTwoSkill extends Skill {
+
+ private SkillsManager skillsManager;
+
+ public TrimmerTwoSkill(int id) {
+ super(id, "Trimmer 2", "Get an even better chance at apples!");
+
+ ItemStack icon = new ItemStack(Material.OAK_LEAVES);
+ ItemMeta meta = icon.getItemMeta();
+ meta.displayName(ColorParser.of("" + super.getName() + "").build());
+ meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ icon.setItemMeta(meta);
+ super.setIcon(icon);
+
+ skillsManager = AlathraSkills.getSkillsManager();
+ super.setCategory(skillsManager.skillCategories.get(3));
+ }
+
+ public static void trimmerTwoSkillRun(Block eventBlock) {
+ int random = new Random().nextInt(25);
+ if (random != 0)
+ return;
+
+ Location location = eventBlock.getLocation();
+ World world = eventBlock.getWorld();
+
+ world.dropItemNaturally(location, new ItemStack(Material.APPLE));
+ }
+}
From 640522a482f05dbf377e6d060bc45775e2c1222a Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Fri, 22 Mar 2024 23:45:38 +0100
Subject: [PATCH 13/28] refactor: common naming scheme for functions
---
.../listeners/skills/WoodcuttingSkillsListener.java | 12 ++++++------
.../skills/woodcutting/OneSwingOneSkill.java | 2 +-
.../skills/woodcutting/PreciseChopOneSkill.java | 2 +-
.../skills/woodcutting/PreciseChopTwoSkill.java | 2 +-
.../skills/woodcutting/SaveTheTreesSkill.java | 2 +-
.../skills/woodcutting/TrimmerOneSkill.java | 2 +-
.../skills/woodcutting/TrimmerTwoSkill.java | 2 +-
7 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 86473d6..a1e4eae 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -37,19 +37,19 @@ public void BlockBreakListener(BlockBreakEvent event) {
if (Tag.LOGS.isTagged(material)) {
if (skillsPlayer.getPlayerSkills().get(301))
- SaveTheTreesSkill.saveTheTreeSkillRun(block);
+ SaveTheTreesSkill.runSaveTheTreesSkill(block);
if (skillsPlayer.getPlayerSkills().get(302)) {
if (skillsPlayer.getPlayerSkills().get(303)) {
- PreciseChopTwoSkill.preciseChopTwoSkillRun(block);
+ PreciseChopTwoSkill.runPreciseChopTwoSkill(block);
} else {
- PreciseChopOneSkill.preciseChopOneSkillRun(block);
+ PreciseChopOneSkill.runPreciseChopOneSkill(block);
}
}
if (skillsPlayer.getPlayerSkills().get(305)) {
if (skillsManager.oneSwingActive(player)) {
- OneSwingOneSkill.runOneSwingSkill(player, block);
+ OneSwingOneSkill.runOneSwingOneSkill(player, block);
}
if (skillsManager.oneSwingRunning(player)) {
@@ -61,9 +61,9 @@ public void BlockBreakListener(BlockBreakEvent event) {
if (Tag.LEAVES.isTagged(material)) {
if (skillsPlayer.getPlayerSkills().get(304)) {
if (skillsPlayer.getPlayerSkills().get(307)) {
- TrimmerTwoSkill.trimmerTwoSkillRun(block);
+ TrimmerTwoSkill.runTrimmerTwoSkill(block);
} else {
- TrimmerOneSkill.trimmerOneSkillRun(block);
+ TrimmerOneSkill.runTrimmerOneSkill(block);
}
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
index 9c36648..c066c0e 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
@@ -55,7 +55,7 @@ public static void readyOneSwingOneSkill(Player player) {
}
}
- public static void runOneSwingSkill(Player player, Block block) {
+ public static void runOneSwingOneSkill(Player player, Block block) {
skillsManager.setOneSwingRunning(player);
skillsManager.setOneSwingNotActive(player);
Bukkit.getServer().getScheduler().cancelTask(deactivateSkillTask.getTaskId());
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
index f09ebd4..ce9756c 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
@@ -32,7 +32,7 @@ public PreciseChopOneSkill(int id) {
super.setCategory(skillsManager.skillCategories.get(3));
}
- public static void preciseChopOneSkillRun(Block eventBlock) {
+ public static void runPreciseChopOneSkill(Block eventBlock) {
int random = new Random().nextInt(20);
if (random != 0)
return;
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
index 4d5823b..13d102d 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
@@ -32,7 +32,7 @@ public PreciseChopTwoSkill(int id) {
super.setCategory(skillsManager.skillCategories.get(3));
}
- public static void preciseChopTwoSkillRun(Block eventBlock) {
+ public static void runPreciseChopTwoSkill(Block eventBlock) {
int random = new Random().nextInt(20);
if (random > 1)
return;
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/SaveTheTreesSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/SaveTheTreesSkill.java
index 65cf7de..28aa169 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/SaveTheTreesSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/SaveTheTreesSkill.java
@@ -29,7 +29,7 @@ public SaveTheTreesSkill(int id) {
super.setCategory(skillsManager.skillCategories.get(3));
}
- public static void saveTheTreeSkillRun(Block eventBlock) {
+ public static void runSaveTheTreesSkill(Block eventBlock) {
Material blockUnder = eventBlock.getRelative(0, -1, 0).getType();
if (!Tag.DIRT.isTagged(blockUnder))
return;
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java
index c0a9f2b..d21e292 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java
@@ -32,7 +32,7 @@ public TrimmerOneSkill(int id) {
super.setCategory(skillsManager.skillCategories.get(3));
}
- public static void trimmerOneSkillRun(Block eventBlock) {
+ public static void runTrimmerOneSkill(Block eventBlock) {
int random = new Random().nextInt(50);
if (random != 0)
return;
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java
index cd8cec8..6527462 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java
@@ -32,7 +32,7 @@ public TrimmerTwoSkill(int id) {
super.setCategory(skillsManager.skillCategories.get(3));
}
- public static void trimmerTwoSkillRun(Block eventBlock) {
+ public static void runTrimmerTwoSkill(Block eventBlock) {
int random = new Random().nextInt(25);
if (random != 0)
return;
From 6dcad76aad86b6e1d05cb7f441a322de16b8093b Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Sat, 23 Mar 2024 00:11:59 +0100
Subject: [PATCH 14/28] feat: added one swing cooldown
---
.../skills/WoodcuttingSkillsListener.java | 9 +++-
.../skills/woodcutting/OneSwingOneSkill.java | 1 +
.../skills/woodcutting/util/OneSwing.java | 46 +++++++++++++++++++
3 files changed, 55 insertions(+), 1 deletion(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index a1e4eae..4a7aec0 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -1,5 +1,6 @@
package io.github.alathra.alathraskills.listeners.skills;
+import com.github.milkdrinkers.colorparser.ColorParser;
import io.github.alathra.alathraskills.AlathraSkills;
import io.github.alathra.alathraskills.api.SkillsManager;
import io.github.alathra.alathraskills.api.SkillsPlayer;
@@ -105,8 +106,14 @@ public void RightClickListener(PlayerInteractEvent event) {
Player player = event.getPlayer();
- if (skillsPlayer.getPlayerSkills().get(305))
+ if (skillsPlayer.getPlayerSkills().get(305)) {
+ if (OneSwing.hasOneSwingCooldown(player)) {
+ player.sendActionBar(ColorParser.of("One Swing isn't ready yet. Cooldown remaining: " + OneSwing.getRemainingCooldown(player) + " seconds.").build());
+ return;
+ }
OneSwingOneSkill.readyOneSwingOneSkill(player);
+ }
+
}
@EventHandler
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
index c066c0e..21bc12c 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
@@ -59,6 +59,7 @@ public static void runOneSwingOneSkill(Player player, Block block) {
skillsManager.setOneSwingRunning(player);
skillsManager.setOneSwingNotActive(player);
Bukkit.getServer().getScheduler().cancelTask(deactivateSkillTask.getTaskId());
+ OneSwing.setOneSwingCooldown(player, 1);
Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(instance, () -> skillsManager.setOneSwingNotRunning(player), 60L);
OneSwing.fellTree(block);
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
index 044ac2f..191269b 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
@@ -4,9 +4,16 @@
import org.bukkit.Tag;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
+import org.bukkit.entity.Player;
+
+import java.time.Instant;
+import java.util.HashMap;
+import java.util.UUID;
public class OneSwing {
+ private static HashMap cooldowns = new HashMap<>();
+
public static void fellTree(Block block) {
Material material = block.getType();
@@ -18,4 +25,43 @@ public static void fellTree(Block block) {
fellTree(block.getRelative(face));
}
+ public static void setOneSwingCooldown(UUID uuid, int oneSwingLevel) {
+ switch (oneSwingLevel) {
+ case 1 -> cooldowns.put(uuid, Instant.now().plusSeconds(600));
+ case 2 -> cooldowns.put(uuid, Instant.now().plusSeconds(570));
+ case 3 -> cooldowns.put(uuid, Instant.now().plusSeconds(540));
+ case 4 -> cooldowns.put(uuid, Instant.now().plusSeconds(510));
+ case 5 -> cooldowns.put(uuid, Instant.now().plusSeconds(480));
+ case 6 -> cooldowns.put(uuid, Instant.now().plusSeconds(420));
+ case 7 -> cooldowns.put(uuid, Instant.now().plusSeconds(240));
+ }
+ }
+
+ public static void setOneSwingCooldown(Player player, int oneSwingLevel) {
+ setOneSwingCooldown(player.getUniqueId(), oneSwingLevel);
+ }
+
+ public static void clearOneSwingCooldown(UUID uuid) {
+ cooldowns.remove(uuid);
+ }
+
+ public static void clearOneSwingCooldown(Player player) {
+ clearOneSwingCooldown(player.getUniqueId());
+ }
+
+ public static boolean hasOneSwingCooldown(UUID uuid) {
+ return cooldowns.get(uuid).isAfter(Instant.now());
+ }
+
+ public static boolean hasOneSwingCooldown(Player player) {
+ return hasOneSwingCooldown(player.getUniqueId());
+ }
+
+ public static int getRemainingCooldown(UUID uuid) {
+ return cooldowns.get(uuid).compareTo(Instant.now());
+ }
+
+ public static int getRemainingCooldown(Player player) {
+ return getRemainingCooldown(player.getUniqueId());
+ }
}
From d9f888d5d21815ff6dcf5699554bed844801c528 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Sat, 23 Mar 2024 00:14:26 +0100
Subject: [PATCH 15/28] refactor: moved one swing active and running lists
---
.../alathraskills/api/SkillsManager.java | 54 ------------------
.../skills/woodcutting/OneSwingOneSkill.java | 14 ++---
.../skills/woodcutting/util/OneSwing.java | 55 +++++++++++++++++++
3 files changed, 62 insertions(+), 61 deletions(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
index c59e4d2..28ed24b 100644
--- a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
+++ b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
@@ -28,12 +28,6 @@ public class SkillsManager implements Reloadable {
// Id, Skill
public HashMap woodcuttingSkills = new HashMap<>();
-
- // List of UUIDs that have One Swing ready
- private List activeOneSwing = new ArrayList<>();
-
- // List of UUIDs that have One Swing running
- private List runningOneSwing = new ArrayList<>();
public SkillsManager(AlathraSkills plugin) {
this.plugin = plugin;
@@ -77,52 +71,4 @@ public void loadWoodcuttingSkills() {
woodcuttingSkills.put(307, new TrimmerTwoSkill(307));
}
- public void setOneSwingActive(UUID uuid) {
- activeOneSwing.add(uuid);
- }
-
- public void setOneSwingActive(Player player) {
- setOneSwingActive(player.getUniqueId());
- }
-
- public boolean oneSwingActive(UUID uuid) {
- return activeOneSwing.contains(uuid);
- }
-
- public boolean oneSwingActive(Player player) {
- return oneSwingActive(player.getUniqueId());
- }
-
- public void setOneSwingNotActive(UUID uuid) {
- activeOneSwing.remove(uuid);
- }
-
- public void setOneSwingNotActive(Player player) {
- setOneSwingNotActive(player.getUniqueId());
- }
-
- public void setOneSwingRunning(UUID uuid) {
- runningOneSwing.add(uuid);
- }
-
- public void setOneSwingRunning(Player player) {
- setOneSwingRunning(player.getUniqueId());
- }
-
- public boolean oneSwingRunning(UUID uuid) {
- return runningOneSwing.contains(uuid);
- }
-
- public boolean oneSwingRunning(Player player) {
- return oneSwingRunning(player.getUniqueId());
- }
-
- public void setOneSwingNotRunning(UUID uuid) {
- runningOneSwing.remove(uuid);
- }
-
- public void setOneSwingNotRunning(Player player) {
- setOneSwingNotRunning(player.getUniqueId());
- }
-
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
index 21bc12c..12ff201 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
@@ -38,17 +38,17 @@ public OneSwingOneSkill(int id) {
}
public static void readyOneSwingOneSkill(Player player) {
- if(skillsManager.oneSwingActive(player)) {
- skillsManager.setOneSwingActive(player);
+ if(OneSwing.oneSwingActive(player)) {
+ OneSwing.setOneSwingActive(player);
player.sendActionBar(ColorParser.of("One Swing is ready.").build());
deactivateSkillTask = Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(instance, () -> {
- skillsManager.setOneSwingNotActive(player);
+ OneSwing.setOneSwingNotActive(player);
player.sendActionBar(ColorParser.of("One Swing is not ready.").build());
}, 100L);
} else {
- skillsManager.setOneSwingNotActive(player);
+ OneSwing.setOneSwingNotActive(player);
Bukkit.getServer().getScheduler().cancelTask(deactivateSkillTask.getTaskId());
player.sendActionBar(ColorParser.of("One Swing is not ready.").build());
@@ -56,12 +56,12 @@ public static void readyOneSwingOneSkill(Player player) {
}
public static void runOneSwingOneSkill(Player player, Block block) {
- skillsManager.setOneSwingRunning(player);
- skillsManager.setOneSwingNotActive(player);
+ OneSwing.setOneSwingRunning(player);
+ OneSwing.setOneSwingNotActive(player);
Bukkit.getServer().getScheduler().cancelTask(deactivateSkillTask.getTaskId());
OneSwing.setOneSwingCooldown(player, 1);
- Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(instance, () -> skillsManager.setOneSwingNotRunning(player), 60L);
+ Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(instance, () -> OneSwing.setOneSwingNotRunning(player), 60L);
OneSwing.fellTree(block);
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
index 191269b..2488f44 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
@@ -7,13 +7,19 @@
import org.bukkit.entity.Player;
import java.time.Instant;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.UUID;
public class OneSwing {
private static HashMap cooldowns = new HashMap<>();
+ private List activeOneSwing = new ArrayList<>();
+
+ private List runningOneSwing = new ArrayList<>();
+
public static void fellTree(Block block) {
Material material = block.getType();
@@ -64,4 +70,53 @@ public static int getRemainingCooldown(UUID uuid) {
public static int getRemainingCooldown(Player player) {
return getRemainingCooldown(player.getUniqueId());
}
+
+ public void setOneSwingActive(UUID uuid) {
+ activeOneSwing.add(uuid);
+ }
+
+ public static void setOneSwingActive(Player player) {
+ setOneSwingActive(player.getUniqueId());
+ }
+
+ public boolean oneSwingActive(UUID uuid) {
+ return activeOneSwing.contains(uuid);
+ }
+
+ public static boolean oneSwingActive(Player player) {
+ return oneSwingActive(player.getUniqueId());
+ }
+
+ public void setOneSwingNotActive(UUID uuid) {
+ activeOneSwing.remove(uuid);
+ }
+
+ public static void setOneSwingNotActive(Player player) {
+ setOneSwingNotActive(player.getUniqueId());
+ }
+
+ public void setOneSwingRunning(UUID uuid) {
+ runningOneSwing.add(uuid);
+ }
+
+ public static void setOneSwingRunning(Player player) {
+ setOneSwingRunning(player.getUniqueId());
+ }
+
+ public boolean oneSwingRunning(UUID uuid) {
+ return runningOneSwing.contains(uuid);
+ }
+
+ public boolean oneSwingRunning(Player player) {
+ return oneSwingRunning(player.getUniqueId());
+ }
+
+ public void setOneSwingNotRunning(UUID uuid) {
+ runningOneSwing.remove(uuid);
+ }
+
+ public static void setOneSwingNotRunning(Player player) {
+ setOneSwingNotRunning(player.getUniqueId());
+ }
+
}
From a64b937ec6052a695e432c401c9ba854fff48159 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Wed, 17 Apr 2024 23:11:54 +0200
Subject: [PATCH 16/28] fix: corrected classes for oneswing methods
---
.../listeners/skills/WoodcuttingSkillsListener.java | 5 ++---
.../alathraskills/skills/woodcutting/util/OneSwing.java | 2 +-
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 4a7aec0..b973965 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -23,7 +23,6 @@
public class WoodcuttingSkillsListener implements Listener {
- private SkillsManager skillsManager = AlathraSkills.getSkillsManager();
private SkillsPlayerManager skillsPlayerManager = AlathraSkills.getSkillsPlayerManager();
@EventHandler
@@ -49,11 +48,11 @@ public void BlockBreakListener(BlockBreakEvent event) {
}
if (skillsPlayer.getPlayerSkills().get(305)) {
- if (skillsManager.oneSwingActive(player)) {
+ if (OneSwing.oneSwingActive(player)) {
OneSwingOneSkill.runOneSwingOneSkill(player, block);
}
- if (skillsManager.oneSwingRunning(player)) {
+ if (OneSwing.oneSwingRunning(player)) {
OneSwing.fellTree(block);
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
index 2488f44..fc2df9d 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
@@ -107,7 +107,7 @@ public boolean oneSwingRunning(UUID uuid) {
return runningOneSwing.contains(uuid);
}
- public boolean oneSwingRunning(Player player) {
+ public static boolean oneSwingRunning(Player player) {
return oneSwingRunning(player.getUniqueId());
}
From c39d56de82dcda0be0a6fc52b017638e3271f2d7 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Wed, 17 Apr 2024 23:24:23 +0200
Subject: [PATCH 17/28] fix: check for right click before firing one swing
---
.../skills/WoodcuttingSkillsListener.java | 47 +++++++------------
1 file changed, 18 insertions(+), 29 deletions(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index b973965..1bcea69 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -13,6 +13,7 @@
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
+import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockDamageEvent;
import org.bukkit.event.inventory.CraftItemEvent;
@@ -90,44 +91,32 @@ public void BlockDamageListener(BlockDamageEvent event) {
public void RightClickListener(PlayerInteractEvent event) {
SkillsPlayer skillsPlayer = skillsPlayerManager.getSkillPlayers().get(event.getPlayer().getUniqueId());
- if (event.getHand() == EquipmentSlot.OFF_HAND)
- return;
+ if (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) {
+ if (event.getHand() == EquipmentSlot.OFF_HAND)
+ return;
- if (!event.hasItem())
- return;
+ if (!event.hasItem())
+ return;
- if (!Tag.ITEMS_AXES.isTagged(event.getMaterial()))
- return;
+ if (!Tag.ITEMS_AXES.isTagged(event.getMaterial()))
+ return;
- // Return if right click logs
- if (Tag.LOGS.isTagged(event.getClickedBlock().getType()))
- return;
+ // Return if right click logs
+ if (Tag.LOGS.isTagged(event.getClickedBlock().getType()))
+ return;
- Player player = event.getPlayer();
+ Player player = event.getPlayer();
- if (skillsPlayer.getPlayerSkills().get(305)) {
- if (OneSwing.hasOneSwingCooldown(player)) {
- player.sendActionBar(ColorParser.of("One Swing isn't ready yet. Cooldown remaining: " + OneSwing.getRemainingCooldown(player) + " seconds.").build());
- return;
+ if (skillsPlayer.getPlayerSkills().get(305)) {
+ if (OneSwing.hasOneSwingCooldown(player)) {
+ player.sendActionBar(ColorParser.of("One Swing isn't ready yet. Cooldown remaining: " + OneSwing.getRemainingCooldown(player) + " seconds.").build());
+ return;
+ }
+ OneSwingOneSkill.readyOneSwingOneSkill(player);
}
- OneSwingOneSkill.readyOneSwingOneSkill(player);
}
- }
- @EventHandler
- public void CraftingListener(CraftItemEvent event) {
- Player player = (Player) event.getViewers().get(0);
- SkillsPlayer skillsPlayer = skillsPlayerManager.getSkillPlayers().get(player.getUniqueId());
- Recipe recipe = event.getRecipe();
- Material material = recipe.getResult().getType();
-
- if(!Tag.PLANKS.isTagged(material))
- return;
-
- if (skillsPlayer.getPlayerSkills().get(306)) {
- player.getInventory().addItem(new ItemStack(material, 2));
- }
}
}
From 8680beae75b4a6bf693526dd5c475d7a6ce790bd Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Wed, 17 Apr 2024 23:43:40 +0200
Subject: [PATCH 18/28] feat: replaced carpenter with groundskeeper
---
.../alathraskills/api/SkillsManager.java | 6 +-
.../skills/WoodcuttingSkillsListener.java | 11 ++--
.../skills/woodcutting/CarpenterOneSkill.java | 30 ---------
.../woodcutting/GroundskeeperOneSkill.java | 62 +++++++++++++++++++
4 files changed, 67 insertions(+), 42 deletions(-)
delete mode 100644 src/main/java/io/github/alathra/alathraskills/skills/woodcutting/CarpenterOneSkill.java
create mode 100644 src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperOneSkill.java
diff --git a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
index 28ed24b..683b539 100644
--- a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
+++ b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
@@ -1,9 +1,6 @@
package io.github.alathra.alathraskills.api;
-import java.util.ArrayList;
import java.util.HashMap;
-import java.util.List;
-import java.util.UUID;
import io.github.alathra.alathraskills.AlathraSkills;
import io.github.alathra.alathraskills.Reloadable;
@@ -13,7 +10,6 @@
import io.github.alathra.alathraskills.skills.categories.MiningSkillCategory;
import io.github.alathra.alathraskills.skills.categories.WoodcuttingSkillCategory;
import io.github.alathra.alathraskills.skills.woodcutting.*;
-import org.bukkit.entity.Player;
public class SkillsManager implements Reloadable {
@@ -67,7 +63,7 @@ public void loadWoodcuttingSkills() {
woodcuttingSkills.put(303, new PreciseChopTwoSkill(302));
woodcuttingSkills.put(304, new TrimmerOneSkill(304));
woodcuttingSkills.put(305, new OneSwingOneSkill(305));
- woodcuttingSkills.put(306, new CarpenterOneSkill(306));
+ woodcuttingSkills.put(306, new GroundskeeperOneSkill(306));
woodcuttingSkills.put(307, new TrimmerTwoSkill(307));
}
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 1bcea69..79b7c5a 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -2,7 +2,6 @@
import com.github.milkdrinkers.colorparser.ColorParser;
import io.github.alathra.alathraskills.AlathraSkills;
-import io.github.alathra.alathraskills.api.SkillsManager;
import io.github.alathra.alathraskills.api.SkillsPlayer;
import io.github.alathra.alathraskills.api.SkillsPlayerManager;
import io.github.alathra.alathraskills.skills.woodcutting.*;
@@ -16,11 +15,8 @@
import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockDamageEvent;
-import org.bukkit.event.inventory.CraftItemEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.EquipmentSlot;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.inventory.Recipe;
public class WoodcuttingSkillsListener implements Listener {
@@ -67,6 +63,10 @@ public void BlockBreakListener(BlockBreakEvent event) {
TrimmerOneSkill.runTrimmerOneSkill(block);
}
}
+
+ if (skillsPlayer.getPlayerSkills().get(306)) {
+ GroundskeeperOneSkill.runGroundskeeperOneSkill(event);
+ }
}
}
@@ -115,8 +115,5 @@ public void RightClickListener(PlayerInteractEvent event) {
OneSwingOneSkill.readyOneSwingOneSkill(player);
}
}
-
-
-
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/CarpenterOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/CarpenterOneSkill.java
deleted file mode 100644
index 2bda2ad..0000000
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/CarpenterOneSkill.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package io.github.alathra.alathraskills.skills.woodcutting;
-
-import com.github.milkdrinkers.colorparser.ColorParser;
-import io.github.alathra.alathraskills.AlathraSkills;
-import io.github.alathra.alathraskills.api.SkillsManager;
-import io.github.alathra.alathraskills.skills.Skill;
-import org.bukkit.Material;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.inventory.meta.ItemMeta;
-
-import java.util.Collections;
-
-public class CarpenterOneSkill extends Skill {
-
- private static SkillsManager skillsManager;
-
- public CarpenterOneSkill(int id) {
- super(id, "Carpenter 1", "Get more out of your logs!");
-
- ItemStack icon = new ItemStack(Material.NETHERITE_AXE);
- ItemMeta meta = icon.getItemMeta();
- meta.displayName(ColorParser.of("" + super.getName() + "").build());
- meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
- icon.setItemMeta(meta);
- super.setIcon(icon);
-
- skillsManager = AlathraSkills.getSkillsManager();
- super.setCategory(skillsManager.skillCategories.get(3));
- }
-}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperOneSkill.java
new file mode 100644
index 0000000..d423bf4
--- /dev/null
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperOneSkill.java
@@ -0,0 +1,62 @@
+package io.github.alathra.alathraskills.skills.woodcutting;
+
+import com.github.milkdrinkers.colorparser.ColorParser;
+import io.github.alathra.alathraskills.AlathraSkills;
+import io.github.alathra.alathraskills.api.SkillsManager;
+import io.github.alathra.alathraskills.skills.Skill;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.block.Block;
+import org.bukkit.block.BlockFace;
+import org.bukkit.event.block.BlockBreakEvent;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Random;
+
+public class GroundskeeperOneSkill extends Skill {
+
+ private static SkillsManager skillsManager;
+
+
+ public GroundskeeperOneSkill(int id) {
+ super(id, "Groundskeeper 1", "Quickly shear your leaves, with an extra chance at leaves!");
+
+ ItemStack icon = new ItemStack(Material.SHEARS);
+ ItemMeta meta = icon.getItemMeta();
+ meta.displayName(ColorParser.of("" + super.getName() + "").build());
+ meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ icon.setItemMeta(meta);
+ super.setIcon(icon);
+
+ skillsManager = AlathraSkills.getSkillsManager();
+ super.setCategory(skillsManager.skillCategories.get(3));
+ }
+
+
+
+
+ public static void runGroundskeeperOneSkill(BlockBreakEvent event) {
+ Block block = event.getBlock();
+ Material material = block.getType();
+ Location location = block.getLocation();
+
+ List blockList = new ArrayList<>();
+ blockList.add(block.getRelative(1, 0, 0));
+ blockList.add(block.getRelative(0, 1, 0));
+ blockList.add(block.getRelative(0, 0, 1));
+ blockList.add(block.getRelative(1, 0, 1));
+ blockList.add(block.getRelative(1, 1, 0));
+ blockList.add(block.getRelative(0, 1, 1));
+ blockList.add(block.getRelative(1, 1, 1));
+
+ blockList.forEach(Block::breakNaturally);
+
+ int random = new Random().nextInt(20);
+ if (random < 3)
+ location.getWorld().dropItemNaturally(location, new ItemStack(material, 2));
+ }
+}
From 610bdb85759da7947604379f1b6c3c81419c25e8 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Wed, 17 Apr 2024 23:59:27 +0200
Subject: [PATCH 19/28] fix: build errors
---
.../skills/WoodcuttingSkillsListener.java | 18 +++++++++---------
.../skills/woodcutting/util/OneSwing.java | 16 ++++++++--------
2 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 79b7c5a..29139f2 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -33,18 +33,18 @@ public void BlockBreakListener(BlockBreakEvent event) {
// TODO Check if block was placed by player
if (Tag.LOGS.isTagged(material)) {
- if (skillsPlayer.getPlayerSkills().get(301))
+ if (skillsPlayer.getPlayerSkills().get(301).isSelected())
SaveTheTreesSkill.runSaveTheTreesSkill(block);
- if (skillsPlayer.getPlayerSkills().get(302)) {
- if (skillsPlayer.getPlayerSkills().get(303)) {
+ if (skillsPlayer.getPlayerSkills().get(302).isSelected()) {
+ if (skillsPlayer.getPlayerSkills().get(303).isSelected()) {
PreciseChopTwoSkill.runPreciseChopTwoSkill(block);
} else {
PreciseChopOneSkill.runPreciseChopOneSkill(block);
}
}
- if (skillsPlayer.getPlayerSkills().get(305)) {
+ if (skillsPlayer.getPlayerSkills().get(305).isSelected()) {
if (OneSwing.oneSwingActive(player)) {
OneSwingOneSkill.runOneSwingOneSkill(player, block);
}
@@ -56,15 +56,15 @@ public void BlockBreakListener(BlockBreakEvent event) {
}
if (Tag.LEAVES.isTagged(material)) {
- if (skillsPlayer.getPlayerSkills().get(304)) {
- if (skillsPlayer.getPlayerSkills().get(307)) {
+ if (skillsPlayer.getPlayerSkills().get(304).isSelected()) {
+ if (skillsPlayer.getPlayerSkills().get(307).isSelected()) {
TrimmerTwoSkill.runTrimmerTwoSkill(block);
} else {
TrimmerOneSkill.runTrimmerOneSkill(block);
}
}
- if (skillsPlayer.getPlayerSkills().get(306)) {
+ if (skillsPlayer.getPlayerSkills().get(306).isSelected()) {
GroundskeeperOneSkill.runGroundskeeperOneSkill(event);
}
}
@@ -81,7 +81,7 @@ public void BlockDamageListener(BlockDamageEvent event) {
if (!Tag.ITEMS_AXES.isTagged(event.getItemInHand().getType()))
return;
- if (!skillsPlayer.getPlayerSkills().get(304))
+ if (!skillsPlayer.getPlayerSkills().get(304).isSelected())
return;
event.setInstaBreak(true);
@@ -107,7 +107,7 @@ public void RightClickListener(PlayerInteractEvent event) {
Player player = event.getPlayer();
- if (skillsPlayer.getPlayerSkills().get(305)) {
+ if (skillsPlayer.getPlayerSkills().get(305).isSelected()) {
if (OneSwing.hasOneSwingCooldown(player)) {
player.sendActionBar(ColorParser.of("One Swing isn't ready yet. Cooldown remaining: " + OneSwing.getRemainingCooldown(player) + " seconds.").build());
return;
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
index fc2df9d..6875318 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
@@ -16,9 +16,9 @@ public class OneSwing {
private static HashMap cooldowns = new HashMap<>();
- private List activeOneSwing = new ArrayList<>();
+ private static List activeOneSwing = new ArrayList<>();
- private List runningOneSwing = new ArrayList<>();
+ private static List runningOneSwing = new ArrayList<>();
public static void fellTree(Block block) {
Material material = block.getType();
@@ -71,7 +71,7 @@ public static int getRemainingCooldown(Player player) {
return getRemainingCooldown(player.getUniqueId());
}
- public void setOneSwingActive(UUID uuid) {
+ public static void setOneSwingActive(UUID uuid) {
activeOneSwing.add(uuid);
}
@@ -79,7 +79,7 @@ public static void setOneSwingActive(Player player) {
setOneSwingActive(player.getUniqueId());
}
- public boolean oneSwingActive(UUID uuid) {
+ public static boolean oneSwingActive(UUID uuid) {
return activeOneSwing.contains(uuid);
}
@@ -87,7 +87,7 @@ public static boolean oneSwingActive(Player player) {
return oneSwingActive(player.getUniqueId());
}
- public void setOneSwingNotActive(UUID uuid) {
+ public static void setOneSwingNotActive(UUID uuid) {
activeOneSwing.remove(uuid);
}
@@ -95,7 +95,7 @@ public static void setOneSwingNotActive(Player player) {
setOneSwingNotActive(player.getUniqueId());
}
- public void setOneSwingRunning(UUID uuid) {
+ public static void setOneSwingRunning(UUID uuid) {
runningOneSwing.add(uuid);
}
@@ -103,7 +103,7 @@ public static void setOneSwingRunning(Player player) {
setOneSwingRunning(player.getUniqueId());
}
- public boolean oneSwingRunning(UUID uuid) {
+ public static boolean oneSwingRunning(UUID uuid) {
return runningOneSwing.contains(uuid);
}
@@ -111,7 +111,7 @@ public static boolean oneSwingRunning(Player player) {
return oneSwingRunning(player.getUniqueId());
}
- public void setOneSwingNotRunning(UUID uuid) {
+ public static void setOneSwingNotRunning(UUID uuid) {
runningOneSwing.remove(uuid);
}
From a5eca673c1e841641fd1b734fa15016d52329758 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Thu, 18 Apr 2024 00:03:26 +0200
Subject: [PATCH 20/28] feat: check if block is natural before firing skills
---
.../listeners/skills/WoodcuttingSkillsListener.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 29139f2..858f151 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -6,6 +6,7 @@
import io.github.alathra.alathraskills.api.SkillsPlayerManager;
import io.github.alathra.alathraskills.skills.woodcutting.*;
import io.github.alathra.alathraskills.skills.woodcutting.util.OneSwing;
+import io.github.alathra.alathraskills.utility.PDCUtil;
import org.bukkit.Material;
import org.bukkit.Tag;
import org.bukkit.block.Block;
@@ -30,7 +31,8 @@ public void BlockBreakListener(BlockBreakEvent event) {
SkillsPlayer skillsPlayer = skillsPlayerManager.getSkillPlayers().get(player.getUniqueId());
- // TODO Check if block was placed by player
+ if (PDCUtil.isUnnatural(block))
+ return;
if (Tag.LOGS.isTagged(material)) {
if (skillsPlayer.getPlayerSkills().get(301).isSelected())
From eb5418c4d43fe7004be365ebe06857dada93eea1 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Thu, 18 Apr 2024 00:28:55 +0200
Subject: [PATCH 21/28] feat: added groundskeeper two skill
---
.../alathraskills/api/SkillsManager.java | 1 +
.../skills/WoodcuttingSkillsListener.java | 6 +-
.../woodcutting/GroundskeeperTwoSkill.java | 57 +++++++++++++++++++
3 files changed, 63 insertions(+), 1 deletion(-)
create mode 100644 src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperTwoSkill.java
diff --git a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
index 683b539..bbb1bd0 100644
--- a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
+++ b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
@@ -65,6 +65,7 @@ public void loadWoodcuttingSkills() {
woodcuttingSkills.put(305, new OneSwingOneSkill(305));
woodcuttingSkills.put(306, new GroundskeeperOneSkill(306));
woodcuttingSkills.put(307, new TrimmerTwoSkill(307));
+ woodcuttingSkills.put(308, new GroundskeeperTwoSkill(308));
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 858f151..48c22ef 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -67,7 +67,11 @@ public void BlockBreakListener(BlockBreakEvent event) {
}
if (skillsPlayer.getPlayerSkills().get(306).isSelected()) {
- GroundskeeperOneSkill.runGroundskeeperOneSkill(event);
+ if (skillsPlayer.getPlayerSkills().get(308).isSelected()) {
+ GroundskeeperTwoSkill.runGroundskeeperTwoSkill(event);
+ } else {
+ GroundskeeperOneSkill.runGroundskeeperOneSkill(event);
+ }
}
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperTwoSkill.java
new file mode 100644
index 0000000..85c0b6a
--- /dev/null
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperTwoSkill.java
@@ -0,0 +1,57 @@
+package io.github.alathra.alathraskills.skills.woodcutting;
+
+import com.github.milkdrinkers.colorparser.ColorParser;
+import io.github.alathra.alathraskills.AlathraSkills;
+import io.github.alathra.alathraskills.api.SkillsManager;
+import io.github.alathra.alathraskills.skills.Skill;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.block.Block;
+import org.bukkit.event.block.BlockBreakEvent;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Random;
+
+public class GroundskeeperTwoSkill extends Skill {
+
+ private static SkillsManager skillsManager;
+
+
+ public GroundskeeperTwoSkill(int id) {
+ super(id, "Groundskeeper 2", "Now with an increased chance at extra leaves!");
+
+ ItemStack icon = new ItemStack(Material.SHEARS);
+ ItemMeta meta = icon.getItemMeta();
+ meta.displayName(ColorParser.of("" + super.getName() + "").build());
+ meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ icon.setItemMeta(meta);
+ super.setIcon(icon);
+
+ skillsManager = AlathraSkills.getSkillsManager();
+ super.setCategory(skillsManager.skillCategories.get(3));
+ }
+
+ public static void runGroundskeeperTwoSkill(BlockBreakEvent event) {
+ Block block = event.getBlock();
+ Material material = block.getType();
+ Location location = block.getLocation();
+
+ List blockList = new ArrayList<>();
+ blockList.add(block.getRelative(1, 0, 0));
+ blockList.add(block.getRelative(0, 1, 0));
+ blockList.add(block.getRelative(0, 0, 1));
+ blockList.add(block.getRelative(1, 0, 1));
+ blockList.add(block.getRelative(1, 1, 0));
+ blockList.add(block.getRelative(0, 1, 1));
+ blockList.add(block.getRelative(1, 1, 1));
+
+ blockList.forEach(Block::breakNaturally);
+
+ if (Math.random() < 0.25)
+ location.getWorld().dropItemNaturally(location, new ItemStack(material, 2));
+ }
+}
From 1cddba9a80e58fcbd5b244b40988299de662ac5a Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Thu, 18 Apr 2024 00:35:12 +0200
Subject: [PATCH 22/28] refactor: redid random percentage chances
---
.../skills/woodcutting/GroundskeeperOneSkill.java | 3 +--
.../skills/woodcutting/GroundskeeperTwoSkill.java | 2 +-
.../alathraskills/skills/woodcutting/PreciseChopOneSkill.java | 3 +--
.../alathraskills/skills/woodcutting/PreciseChopTwoSkill.java | 3 +--
.../alathraskills/skills/woodcutting/TrimmerOneSkill.java | 3 +--
.../alathraskills/skills/woodcutting/TrimmerTwoSkill.java | 3 +--
6 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperOneSkill.java
index d423bf4..9c486a1 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperOneSkill.java
@@ -55,8 +55,7 @@ public static void runGroundskeeperOneSkill(BlockBreakEvent event) {
blockList.forEach(Block::breakNaturally);
- int random = new Random().nextInt(20);
- if (random < 3)
+ if (Math.random() <= 0.15)
location.getWorld().dropItemNaturally(location, new ItemStack(material, 2));
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperTwoSkill.java
index 85c0b6a..09b5411 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperTwoSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperTwoSkill.java
@@ -51,7 +51,7 @@ public static void runGroundskeeperTwoSkill(BlockBreakEvent event) {
blockList.forEach(Block::breakNaturally);
- if (Math.random() < 0.25)
+ if (Math.random() <= 0.25)
location.getWorld().dropItemNaturally(location, new ItemStack(material, 2));
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
index ce9756c..7e2cf73 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
@@ -33,8 +33,7 @@ public PreciseChopOneSkill(int id) {
}
public static void runPreciseChopOneSkill(Block eventBlock) {
- int random = new Random().nextInt(20);
- if (random != 0)
+ if (Math.random() <= 0.05)
return;
Material material = eventBlock.getType();
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
index 13d102d..4f3ff84 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
@@ -33,8 +33,7 @@ public PreciseChopTwoSkill(int id) {
}
public static void runPreciseChopTwoSkill(Block eventBlock) {
- int random = new Random().nextInt(20);
- if (random > 1)
+ if (Math.random() <= 0.1)
return;
Material material = eventBlock.getType();
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java
index d21e292..380eace 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java
@@ -33,8 +33,7 @@ public TrimmerOneSkill(int id) {
}
public static void runTrimmerOneSkill(Block eventBlock) {
- int random = new Random().nextInt(50);
- if (random != 0)
+ if (Math.random() <= 0.02)
return;
Location location = eventBlock.getLocation();
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java
index 6527462..1ef79c9 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java
@@ -33,8 +33,7 @@ public TrimmerTwoSkill(int id) {
}
public static void runTrimmerTwoSkill(Block eventBlock) {
- int random = new Random().nextInt(25);
- if (random != 0)
+ if (Math.random() <= 0.04)
return;
Location location = eventBlock.getLocation();
From 9fcb6f790419a629f83780763f2f21d366b3b72f Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Thu, 18 Apr 2024 00:49:56 +0200
Subject: [PATCH 23/28] refactor: refactored one swing readying and activation
---
.../skills/WoodcuttingSkillsListener.java | 2 +-
.../skills/woodcutting/OneSwingOneSkill.java | 28 --------
.../skills/woodcutting/util/OneSwing.java | 65 +++++++++++++++++++
3 files changed, 66 insertions(+), 29 deletions(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 48c22ef..345a3f4 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -118,7 +118,7 @@ public void RightClickListener(PlayerInteractEvent event) {
player.sendActionBar(ColorParser.of("One Swing isn't ready yet. Cooldown remaining: " + OneSwing.getRemainingCooldown(player) + " seconds.").build());
return;
}
- OneSwingOneSkill.readyOneSwingOneSkill(player);
+ OneSwing.readyOneSwing(player);
}
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
index 12ff201..76cd3d1 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
@@ -36,32 +36,4 @@ public OneSwingOneSkill(int id) {
instance = AlathraSkills.getInstance();
super.setCategory(skillsManager.skillCategories.get(3));
}
-
- public static void readyOneSwingOneSkill(Player player) {
- if(OneSwing.oneSwingActive(player)) {
- OneSwing.setOneSwingActive(player);
-
- player.sendActionBar(ColorParser.of("One Swing is ready.").build());
-
- deactivateSkillTask = Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(instance, () -> {
- OneSwing.setOneSwingNotActive(player);
- player.sendActionBar(ColorParser.of("One Swing is not ready.").build());
- }, 100L);
- } else {
- OneSwing.setOneSwingNotActive(player);
- Bukkit.getServer().getScheduler().cancelTask(deactivateSkillTask.getTaskId());
-
- player.sendActionBar(ColorParser.of("One Swing is not ready.").build());
- }
- }
-
- public static void runOneSwingOneSkill(Player player, Block block) {
- OneSwing.setOneSwingRunning(player);
- OneSwing.setOneSwingNotActive(player);
- Bukkit.getServer().getScheduler().cancelTask(deactivateSkillTask.getTaskId());
- OneSwing.setOneSwingCooldown(player, 1);
-
- Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(instance, () -> OneSwing.setOneSwingNotRunning(player), 60L);
- OneSwing.fellTree(block);
- }
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
index 6875318..e44c9cc 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
@@ -1,10 +1,15 @@
package io.github.alathra.alathraskills.skills.woodcutting.util;
+import com.github.milkdrinkers.colorparser.ColorParser;
+import io.github.alathra.alathraskills.AlathraSkills;
+import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Tag;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.Player;
+import org.bukkit.plugin.Plugin;
+import org.bukkit.scheduler.BukkitTask;
import java.time.Instant;
import java.util.ArrayList;
@@ -20,6 +25,9 @@ public class OneSwing {
private static List runningOneSwing = new ArrayList<>();
+ private static Plugin instance = AlathraSkills.getInstance();
+ private static BukkitTask deactivateSkillTask;
+
public static void fellTree(Block block) {
Material material = block.getType();
@@ -31,6 +39,63 @@ public static void fellTree(Block block) {
fellTree(block.getRelative(face));
}
+ public static void readyOneSwing(Player player) {
+ if(oneSwingActive(player)) {
+ setOneSwingActive(player);
+
+ player.sendActionBar(ColorParser.of("One Swing is ready.").build());
+
+ deactivateSkillTask = Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(instance, () -> {
+ setOneSwingNotActive(player);
+ player.sendActionBar(ColorParser.of("One Swing is not ready.").build());
+ }, 100L);
+ } else {
+ setOneSwingNotActive(player);
+ Bukkit.getServer().getScheduler().cancelTask(deactivateSkillTask.getTaskId());
+
+ player.sendActionBar(ColorParser.of("One Swing is not ready.").build());
+ }
+ }
+
+ public static void runOneSwing(Player player, Block block, int oneSwingLevel) {
+ OneSwing.setOneSwingRunning(player);
+ OneSwing.setOneSwingNotActive(player);
+ Bukkit.getServer().getScheduler().cancelTask(deactivateSkillTask.getTaskId());
+ OneSwing.setOneSwingCooldown(player, oneSwingLevel);
+
+ Bukkit.getServer().getScheduler().runTaskLaterAsynchronously(instance, () -> OneSwing.setOneSwingNotRunning(player), oneSwingDuration(oneSwingLevel));
+ OneSwing.fellTree(block);
+ }
+
+ private static long oneSwingDuration(int oneSwingLevel) {
+ switch (oneSwingLevel) {
+ case 1 -> {
+ return 60L;
+ }
+ case 2 -> {
+ return 100L;
+ }
+ case 3 -> {
+ return 200L;
+ }
+ case 4 -> {
+ return 260L;
+ }
+ case 5 -> {
+ return 300L;
+ }
+ case 6 -> {
+ return 360L;
+ }
+ case 7 -> {
+ return 600L;
+ }
+ default -> {
+ return 0;
+ }
+ }
+ }
+
public static void setOneSwingCooldown(UUID uuid, int oneSwingLevel) {
switch (oneSwingLevel) {
case 1 -> cooldowns.put(uuid, Instant.now().plusSeconds(600));
From 85f3e796e2d8310720c4e705aad6f92144d167c8 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Thu, 18 Apr 2024 00:54:46 +0200
Subject: [PATCH 24/28] feat: added one swing level two
---
.../alathraskills/api/SkillsManager.java | 1 +
.../skills/WoodcuttingSkillsListener.java | 18 ++++++----
.../skills/woodcutting/OneSwingTwoSkill.java | 34 +++++++++++++++++++
3 files changed, 46 insertions(+), 7 deletions(-)
create mode 100644 src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingTwoSkill.java
diff --git a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
index bbb1bd0..e6aca6d 100644
--- a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
+++ b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
@@ -66,6 +66,7 @@ public void loadWoodcuttingSkills() {
woodcuttingSkills.put(306, new GroundskeeperOneSkill(306));
woodcuttingSkills.put(307, new TrimmerTwoSkill(307));
woodcuttingSkills.put(308, new GroundskeeperTwoSkill(308));
+ woodcuttingSkills.put(309, new OneSwingTwoSkill(309));
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 345a3f4..71c8507 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -46,15 +46,19 @@ public void BlockBreakListener(BlockBreakEvent event) {
}
}
- if (skillsPlayer.getPlayerSkills().get(305).isSelected()) {
- if (OneSwing.oneSwingActive(player)) {
- OneSwingOneSkill.runOneSwingOneSkill(player, block);
- }
-
- if (OneSwing.oneSwingRunning(player)) {
- OneSwing.fellTree(block);
+ if (OneSwing.oneSwingRunning(player)) {
+ OneSwing.fellTree(block);
+ } else if (OneSwing.oneSwingActive(player)) {
+ if (skillsPlayer.getPlayerSkills().get(305).isSelected()) {
+ if (skillsPlayer.getPlayerSkills().get(309).isSelected()) {
+ OneSwing.runOneSwing(player, block, 2);
+ } else {
+ OneSwing.runOneSwing(player, block, 1);
+ }
}
}
+
+
}
if (Tag.LEAVES.isTagged(material)) {
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingTwoSkill.java
new file mode 100644
index 0000000..e5741c9
--- /dev/null
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingTwoSkill.java
@@ -0,0 +1,34 @@
+package io.github.alathra.alathraskills.skills.woodcutting;
+
+import com.github.milkdrinkers.colorparser.ColorParser;
+import io.github.alathra.alathraskills.AlathraSkills;
+import io.github.alathra.alathraskills.api.SkillsManager;
+import io.github.alathra.alathraskills.skills.Skill;
+import org.bukkit.Material;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+import org.bukkit.plugin.Plugin;
+import org.bukkit.scheduler.BukkitTask;
+
+import java.util.Collections;
+
+public class OneSwingTwoSkill extends Skill {
+
+ private static SkillsManager skillsManager;
+ private static Plugin instance;
+ private static BukkitTask deactivateSkillTask;
+ public OneSwingTwoSkill(int id) {
+ super(id, "One Swing 2", "Extended time, and a slower cooldown!");
+
+ ItemStack icon = new ItemStack(Material.NETHERITE_AXE);
+ ItemMeta meta = icon.getItemMeta();
+ meta.displayName(ColorParser.of("" + super.getName() + "").build());
+ meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ icon.setItemMeta(meta);
+ super.setIcon(icon);
+
+ skillsManager = AlathraSkills.getSkillsManager();
+ instance = AlathraSkills.getInstance();
+ super.setCategory(skillsManager.skillCategories.get(3));
+ }
+}
From 3f15ef8003da2818f1587317fed975358362a58c Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Thu, 18 Apr 2024 01:35:37 +0200
Subject: [PATCH 25/28] refactor: removed unnecessary variables
---
.../alathraskills/skills/woodcutting/OneSwingOneSkill.java | 2 --
.../alathraskills/skills/woodcutting/OneSwingTwoSkill.java | 3 +--
2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
index 76cd3d1..b834782 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
@@ -19,8 +19,6 @@
public class OneSwingOneSkill extends Skill {
private static SkillsManager skillsManager;
- private static Plugin instance;
- private static BukkitTask deactivateSkillTask;
public OneSwingOneSkill(int id) {
super(id, "One Swing 1", "Chop the whole tree down, in one fell swoop!");
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingTwoSkill.java
index e5741c9..dba58f6 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingTwoSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingTwoSkill.java
@@ -15,8 +15,7 @@
public class OneSwingTwoSkill extends Skill {
private static SkillsManager skillsManager;
- private static Plugin instance;
- private static BukkitTask deactivateSkillTask;
+
public OneSwingTwoSkill(int id) {
super(id, "One Swing 2", "Extended time, and a slower cooldown!");
From 9122f3d9637cd5c77f5fdf82496cc92f36772f17 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Thu, 18 Apr 2024 02:03:52 +0200
Subject: [PATCH 26/28] fix: one swing doesn't clear leaves
---
.../alathra/alathraskills/skills/woodcutting/util/OneSwing.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
index e44c9cc..ee5ffa9 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/util/OneSwing.java
@@ -31,7 +31,7 @@ public class OneSwing {
public static void fellTree(Block block) {
Material material = block.getType();
- if (!Tag.LOGS.isTagged(material) && !Tag.LEAVES.isTagged(material))
+ if (!Tag.LOGS.isTagged(material))
return;
block.breakNaturally();
From 4a2dcaebc4551ecb231e995a2079e9c44e787bd2 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Sun, 21 Apr 2024 01:03:22 +0200
Subject: [PATCH 27/28] feat: added one swing level three
---
.../alathraskills/api/SkillsManager.java | 1 +
.../skills/WoodcuttingSkillsListener.java | 7 ++++-
.../woodcutting/OneSwingThreeSkill.java | 31 +++++++++++++++++++
3 files changed, 38 insertions(+), 1 deletion(-)
create mode 100644 src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingThreeSkill.java
diff --git a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
index e6aca6d..977e264 100644
--- a/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
+++ b/src/main/java/io/github/alathra/alathraskills/api/SkillsManager.java
@@ -67,6 +67,7 @@ public void loadWoodcuttingSkills() {
woodcuttingSkills.put(307, new TrimmerTwoSkill(307));
woodcuttingSkills.put(308, new GroundskeeperTwoSkill(308));
woodcuttingSkills.put(309, new OneSwingTwoSkill(309));
+ woodcuttingSkills.put(3110, new OneSwingThreeSkill(3110));
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
index 71c8507..61fc315 100644
--- a/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
+++ b/src/main/java/io/github/alathra/alathraskills/listeners/skills/WoodcuttingSkillsListener.java
@@ -23,6 +23,7 @@ public class WoodcuttingSkillsListener implements Listener {
private SkillsPlayerManager skillsPlayerManager = AlathraSkills.getSkillsPlayerManager();
+ // TODO: clean up skill check logic
@EventHandler
public void BlockBreakListener(BlockBreakEvent event) {
Block block = event.getBlock();
@@ -51,7 +52,11 @@ public void BlockBreakListener(BlockBreakEvent event) {
} else if (OneSwing.oneSwingActive(player)) {
if (skillsPlayer.getPlayerSkills().get(305).isSelected()) {
if (skillsPlayer.getPlayerSkills().get(309).isSelected()) {
- OneSwing.runOneSwing(player, block, 2);
+ if (skillsPlayer.getPlayerSkills().get(3110).isSelected()) {
+ OneSwing.runOneSwing(player, block, 3);
+ } else {
+ OneSwing.runOneSwing(player, block, 2);
+ }
} else {
OneSwing.runOneSwing(player, block, 1);
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingThreeSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingThreeSkill.java
new file mode 100644
index 0000000..1a08393
--- /dev/null
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingThreeSkill.java
@@ -0,0 +1,31 @@
+package io.github.alathra.alathraskills.skills.woodcutting;
+
+import com.github.milkdrinkers.colorparser.ColorParser;
+import io.github.alathra.alathraskills.AlathraSkills;
+import io.github.alathra.alathraskills.api.SkillsManager;
+import io.github.alathra.alathraskills.skills.Skill;
+import org.bukkit.Material;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+
+import java.util.Collections;
+
+public class OneSwingThreeSkill extends Skill {
+
+ private static SkillsManager skillsManager;
+
+ public OneSwingThreeSkill(int id) {
+ super(id, "One Swing 3", "Even more time, and even lower cooldown.");
+
+ ItemStack icon = new ItemStack(Material.NETHERITE_AXE);
+ ItemMeta meta = icon.getItemMeta();
+ meta.displayName(ColorParser.of("" + super.getName() + "").build());
+ meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ icon.setItemMeta(meta);
+ super.setIcon(icon);
+
+ skillsManager = AlathraSkills.getSkillsManager();
+ instance = AlathraSkills.getInstance();
+ super.setCategory(skillsManager.skillCategories.get(3));
+ }
+}
From 29365339c93bb440d76d8c3b43e438ea9a17f900 Mon Sep 17 00:00:00 2001
From: rooooose-b <142353909+rooooose-b@users.noreply.github.com>
Date: Sun, 21 Apr 2024 01:09:52 +0200
Subject: [PATCH 28/28] fix: changed lore to align with GUI design
---
.../skills/woodcutting/GroundskeeperOneSkill.java | 5 +++--
.../skills/woodcutting/GroundskeeperTwoSkill.java | 3 ++-
.../alathraskills/skills/woodcutting/OneSwingOneSkill.java | 5 +++--
.../skills/woodcutting/OneSwingThreeSkill.java | 5 +++--
.../alathraskills/skills/woodcutting/OneSwingTwoSkill.java | 5 +++--
.../skills/woodcutting/PreciseChopOneSkill.java | 4 +++-
.../skills/woodcutting/PreciseChopTwoSkill.java | 5 +++--
.../alathraskills/skills/woodcutting/SaveTheTreesSkill.java | 6 +++++-
.../alathraskills/skills/woodcutting/TrimmerOneSkill.java | 5 +++--
.../alathraskills/skills/woodcutting/TrimmerTwoSkill.java | 5 +++--
10 files changed, 31 insertions(+), 17 deletions(-)
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperOneSkill.java
index 9c486a1..e6b62ef 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperOneSkill.java
@@ -28,7 +28,8 @@ public GroundskeeperOneSkill(int id) {
ItemStack icon = new ItemStack(Material.SHEARS);
ItemMeta meta = icon.getItemMeta();
meta.displayName(ColorParser.of("" + super.getName() + "").build());
- meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ meta.lore(List.of(ColorParser.of("Level 6").build(),
+ ColorParser.of("" + super.getDescription() + "").build()));
icon.setItemMeta(meta);
super.setIcon(icon);
@@ -38,7 +39,7 @@ public GroundskeeperOneSkill(int id) {
-
+ // TODO: possibly refactor this skill run
public static void runGroundskeeperOneSkill(BlockBreakEvent event) {
Block block = event.getBlock();
Material material = block.getType();
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperTwoSkill.java
index 09b5411..6d9ec30 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperTwoSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/GroundskeeperTwoSkill.java
@@ -27,7 +27,8 @@ public GroundskeeperTwoSkill(int id) {
ItemStack icon = new ItemStack(Material.SHEARS);
ItemMeta meta = icon.getItemMeta();
meta.displayName(ColorParser.of("" + super.getName() + "").build());
- meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ meta.lore(List.of(ColorParser.of("Level 8").build(),
+ ColorParser.of("" + super.getDescription() + "").build()));
icon.setItemMeta(meta);
super.setIcon(icon);
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
index b834782..db150b9 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingOneSkill.java
@@ -15,6 +15,7 @@
import org.bukkit.scheduler.BukkitTask;
import java.util.Collections;
+import java.util.List;
public class OneSwingOneSkill extends Skill {
@@ -26,12 +27,12 @@ public OneSwingOneSkill(int id) {
ItemStack icon = new ItemStack(Material.NETHERITE_AXE);
ItemMeta meta = icon.getItemMeta();
meta.displayName(ColorParser.of("" + super.getName() + "").build());
- meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ meta.lore(List.of(ColorParser.of("Level 5").build(),
+ ColorParser.of("" + super.getDescription() + "").build()));
icon.setItemMeta(meta);
super.setIcon(icon);
skillsManager = AlathraSkills.getSkillsManager();
- instance = AlathraSkills.getInstance();
super.setCategory(skillsManager.skillCategories.get(3));
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingThreeSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingThreeSkill.java
index 1a08393..046fda4 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingThreeSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingThreeSkill.java
@@ -9,6 +9,7 @@
import org.bukkit.inventory.meta.ItemMeta;
import java.util.Collections;
+import java.util.List;
public class OneSwingThreeSkill extends Skill {
@@ -20,12 +21,12 @@ public OneSwingThreeSkill(int id) {
ItemStack icon = new ItemStack(Material.NETHERITE_AXE);
ItemMeta meta = icon.getItemMeta();
meta.displayName(ColorParser.of("" + super.getName() + "").build());
- meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ meta.lore(List.of(ColorParser.of("Level 10").build(),
+ ColorParser.of("" + super.getDescription() + "").build()));
icon.setItemMeta(meta);
super.setIcon(icon);
skillsManager = AlathraSkills.getSkillsManager();
- instance = AlathraSkills.getInstance();
super.setCategory(skillsManager.skillCategories.get(3));
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingTwoSkill.java
index dba58f6..27fa487 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingTwoSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/OneSwingTwoSkill.java
@@ -11,6 +11,7 @@
import org.bukkit.scheduler.BukkitTask;
import java.util.Collections;
+import java.util.List;
public class OneSwingTwoSkill extends Skill {
@@ -22,12 +23,12 @@ public OneSwingTwoSkill(int id) {
ItemStack icon = new ItemStack(Material.NETHERITE_AXE);
ItemMeta meta = icon.getItemMeta();
meta.displayName(ColorParser.of("" + super.getName() + "").build());
- meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ meta.lore(List.of(ColorParser.of("Level 9").build(),
+ ColorParser.of("" + super.getDescription() + "").build()));
icon.setItemMeta(meta);
super.setIcon(icon);
skillsManager = AlathraSkills.getSkillsManager();
- instance = AlathraSkills.getInstance();
super.setCategory(skillsManager.skillCategories.get(3));
}
}
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
index 7e2cf73..e441d76 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopOneSkill.java
@@ -12,6 +12,7 @@
import org.bukkit.inventory.meta.ItemMeta;
import java.util.Collections;
+import java.util.List;
import java.util.Random;
public class PreciseChopOneSkill extends Skill {
@@ -24,7 +25,8 @@ public PreciseChopOneSkill(int id) {
ItemStack icon = new ItemStack(Material.OAK_LOG);
ItemMeta meta = icon.getItemMeta();
meta.displayName(ColorParser.of("" + super.getName() + "").build());
- meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ meta.lore(List.of(ColorParser.of("Level 2").build(),
+ ColorParser.of("" + super.getDescription() + "").build()));
icon.setItemMeta(meta);
super.setIcon(icon);
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
index 4f3ff84..1f67709 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/PreciseChopTwoSkill.java
@@ -12,6 +12,7 @@
import org.bukkit.inventory.meta.ItemMeta;
import java.util.Collections;
+import java.util.List;
import java.util.Random;
public class PreciseChopTwoSkill extends Skill {
@@ -24,8 +25,8 @@ public PreciseChopTwoSkill(int id) {
ItemStack icon = new ItemStack(Material.OAK_LOG);
ItemMeta meta = icon.getItemMeta();
meta.displayName(ColorParser.of("" + super.getName() + "").build());
- meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
- icon.setItemMeta(meta);
+ meta.lore(List.of(ColorParser.of("Level 3").build(),
+ ColorParser.of("" + super.getDescription() + "").build())); icon.setItemMeta(meta);
super.setIcon(icon);
skillsManager = AlathraSkills.getSkillsManager();
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/SaveTheTreesSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/SaveTheTreesSkill.java
index 28aa169..d788d4f 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/SaveTheTreesSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/SaveTheTreesSkill.java
@@ -4,13 +4,16 @@
import io.github.alathra.alathraskills.AlathraSkills;
import io.github.alathra.alathraskills.api.SkillsManager;
import io.github.alathra.alathraskills.skills.Skill;
+import net.kyori.adventure.text.Component;
import org.bukkit.Material;
import org.bukkit.Tag;
import org.bukkit.block.Block;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
+import java.util.ArrayList;
import java.util.Collections;
+import java.util.List;
public class SaveTheTreesSkill extends Skill {
private SkillsManager skillsManager;
@@ -21,7 +24,8 @@ public SaveTheTreesSkill(int id) {
ItemStack icon = new ItemStack(Material.OAK_SAPLING);
ItemMeta meta = icon.getItemMeta();
meta.displayName(ColorParser.of("" + super.getName() + "").build());
- meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
+ meta.lore(List.of(ColorParser.of("Level 1").build(),
+ ColorParser.of("" + super.getDescription() + "").build()));
icon.setItemMeta(meta);
super.setIcon(icon);
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java
index 380eace..30327bd 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerOneSkill.java
@@ -12,6 +12,7 @@
import org.bukkit.inventory.meta.ItemMeta;
import java.util.Collections;
+import java.util.List;
import java.util.Random;
public class TrimmerOneSkill extends Skill {
@@ -24,8 +25,8 @@ public TrimmerOneSkill(int id) {
ItemStack icon = new ItemStack(Material.OAK_LEAVES);
ItemMeta meta = icon.getItemMeta();
meta.displayName(ColorParser.of("" + super.getName() + "").build());
- meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
- icon.setItemMeta(meta);
+ meta.lore(List.of(ColorParser.of("Level 4").build(),
+ ColorParser.of("" + super.getDescription() + "").build())); icon.setItemMeta(meta);
super.setIcon(icon);
skillsManager = AlathraSkills.getSkillsManager();
diff --git a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java
index 1ef79c9..3e3c619 100644
--- a/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java
+++ b/src/main/java/io/github/alathra/alathraskills/skills/woodcutting/TrimmerTwoSkill.java
@@ -12,6 +12,7 @@
import org.bukkit.inventory.meta.ItemMeta;
import java.util.Collections;
+import java.util.List;
import java.util.Random;
public class TrimmerTwoSkill extends Skill {
@@ -24,8 +25,8 @@ public TrimmerTwoSkill(int id) {
ItemStack icon = new ItemStack(Material.OAK_LEAVES);
ItemMeta meta = icon.getItemMeta();
meta.displayName(ColorParser.of("" + super.getName() + "").build());
- meta.lore(Collections.singletonList(ColorParser.of("" + super.getDescription() + "").build()));
- icon.setItemMeta(meta);
+ meta.lore(List.of(ColorParser.of("Level 7").build(),
+ ColorParser.of("" + super.getDescription() + "").build())); icon.setItemMeta(meta);
super.setIcon(icon);
skillsManager = AlathraSkills.getSkillsManager();