Skip to content

Commit 1096848

Browse files
committed
1.5 - Toggle for vein mining - workaround for no xp/player respective drops for items
/veintoggle command
1 parent e186efc commit 1096848

6 files changed

Lines changed: 72 additions & 8 deletions

File tree

pom.xml

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

77
<groupId>me.setloth</groupId>
88
<artifactId>ModificationMaster</artifactId>
9-
<version>1.4</version>
9+
<version>1.5</version>
1010
<packaging>jar</packaging>
1111

1212
<name>ModificationMaster</name>

src/main/java/me/setloth/modificationMaster/ModificationMaster.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,16 @@
33
import me.setloth.modificationMaster.commands.Craft;
44
import me.setloth.modificationMaster.commands.EndChest;
55
import me.setloth.modificationMaster.commands.Sort;
6+
import me.setloth.modificationMaster.commands.VeinToggle;
67
import me.setloth.modificationMaster.listeners.BlockBreaking;
78
import me.setloth.modificationMaster.util.VersionChecker;
9+
import org.bukkit.entity.Player;
810
import org.bukkit.plugin.Plugin;
911
import org.bukkit.plugin.java.JavaPlugin;
1012

13+
import java.util.HashMap;
1114
import java.util.Objects;
15+
import java.util.UUID;
1216
import java.util.logging.Level;
1317

1418
@SuppressWarnings("unused")
@@ -19,7 +23,29 @@ public static Plugin instance() {
1923
return INSTANCE;
2024
}
2125

26+
static HashMap<UUID, Boolean> veinToggled = new HashMap<>();
27+
public static HashMap<UUID, Boolean> getVeinToggled() {
28+
return veinToggled;
29+
}
30+
31+
public static void toggleVeinPlayer(Player p) {
32+
toggleVeinPlayer(p.getUniqueId());
33+
}
34+
35+
public static void toggleVeinPlayer(UUID uuid) {
36+
if (!veinToggled.containsKey(uuid)) {
37+
veinToggled.put(uuid, true);
38+
}
39+
40+
veinToggled.compute(uuid, (k, b) -> Boolean.FALSE.equals(b));
41+
}
42+
43+
public static boolean isVeinToggled(Player p) {
44+
return veinToggled.get(p.getUniqueId());
45+
}
46+
2247
@Override
48+
@SuppressWarnings("all")
2349
public void onEnable() {
2450
INSTANCE = this;
2551
long start = System.currentTimeMillis();
@@ -44,6 +70,8 @@ public void onEnable() {
4470
Objects.requireNonNull(getServer().getPluginCommand("sort")).setTabCompleter(new Sort());
4571
Objects.requireNonNull(getServer().getPluginCommand("endchest")).setExecutor(new EndChest());
4672
Objects.requireNonNull(getServer().getPluginCommand("craft")).setExecutor(new Craft());
73+
Objects.requireNonNull(getServer().getPluginCommand("veintoggle")).setExecutor(new VeinToggle());
74+
4775

4876
log("Done! Took: "+(System.currentTimeMillis()-start)+" ms");
4977

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package me.setloth.modificationMaster.commands;
2+
3+
import me.setloth.modificationMaster.ModificationMaster;
4+
import org.bukkit.command.Command;
5+
import org.bukkit.command.CommandExecutor;
6+
import org.bukkit.command.CommandSender;
7+
import org.bukkit.entity.Player;
8+
import org.jetbrains.annotations.NotNull;
9+
10+
public class VeinToggle implements CommandExecutor {
11+
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
12+
if (!(sender instanceof Player p)) return true;
13+
14+
ModificationMaster.toggleVeinPlayer(p);
15+
boolean state = ModificationMaster.isVeinToggled(p);
16+
17+
p.sendMessage("Vein mining is now "+(state ? "enabled" : "disabled"));
18+
19+
return true;
20+
}
21+
}

src/main/java/me/setloth/modificationMaster/listeners/BlockBreaking.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.setloth.modificationMaster.listeners;
22

3+
import me.setloth.modificationMaster.ModificationMaster;
34
import me.setloth.modificationMaster.util.Utility;
45
import org.bukkit.block.Block;
56
import org.bukkit.entity.Player;
@@ -13,18 +14,26 @@ public class BlockBreaking implements Listener {
1314

1415
@EventHandler
1516
public void onBlockBreak(BlockBreakEvent event) {
16-
Block b = event.getBlock();
1717
Player p = event.getPlayer();
18+
19+
if (!ModificationMaster.isVeinToggled(p)) return;
20+
21+
Block b = event.getBlock();
22+
ModificationMaster.toggleVeinPlayer(p);
23+
ItemStack stack = p.getInventory().getItemInMainHand();
24+
25+
if (!b.isPreferredTool(stack)) return;
26+
1827
if (Utility.isWood(b.getType())) {
19-
ItemStack stack = p.getInventory().getItemInMainHand();
20-
if (!b.isPreferredTool(stack)) return;
28+
//if (!b.isPreferredTool(stack)) return;
2129
Utility.destroyBranch(p, b, false);
2230
}
2331
if (Utility.isVeinBlock(b.getType())) {
24-
ItemStack stack = p.getInventory().getItemInMainHand();
25-
if (!b.isPreferredTool(stack)) return;
32+
//if (!b.isPreferredTool(stack)) return;
2633
Utility.destroyBranch(p, b, true);
2734
}
35+
36+
ModificationMaster.toggleVeinPlayer(p);
2837
}
2938

3039

src/main/java/me/setloth/modificationMaster/util/Utility.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public static boolean isVeinBlock(Material m) {
2525

2626

2727
public static void destroyBranch(Player p, Block b, boolean down) {
28+
2829
Material branchType = b.getType();
2930
final Queue<Block> blocksToDestroy = new LinkedList<>();
3031
final Set<Block> processedBlocks = new HashSet<>();
@@ -49,7 +50,8 @@ public static void destroyBranch(Player p, Block b, boolean down) {
4950
}
5051
}
5152

52-
currentBlock.breakNaturally(p.getInventory().getItemInMainHand());
53+
p.breakBlock(currentBlock);
54+
//currentBlock.breakNaturally(p.getInventory().getItemInMainHand());
5355

5456
}
5557
}

src/main/resources/plugin.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: ModificationMaster
2-
version: 1.4
2+
version: 1.5
33
main: me.setloth.modificationMaster.ModificationMaster
44
api-version: '1.21'
55
authors: [ Setloth ]
@@ -15,3 +15,7 @@ commands:
1515
usage: /[craft(ing) | workbench]
1616
aliases: [crafting, workbench]
1717
description: Open a crafting table anywhere!
18+
veintoggle:
19+
usage: /veintoggle
20+
aliases: [vt]
21+

0 commit comments

Comments
 (0)