Skip to content

Commit e19af94

Browse files
authored
Merge pull request #17 from ChafficPlugins/14-release-1-2-4
#14 release 1.2.4
2 parents 0db10f9 + 202a2af commit e19af94

File tree

7 files changed

+67
-20
lines changed

7 files changed

+67
-20
lines changed

pom.xml

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

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

1212
<name>MiningLevels</name>

src/main/java/de/chafficplugins/mininglevels/MiningLevels.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ private void loadConfig() {
117117
getConfig().addDefault(LEVEL_WITH_GENERATED_BLOCKS, false);
118118
getConfig().addDefault(LEVEL_PROGRESSION_MESSAGES, "actionBar");
119119
getConfig().addDefault(DESTROY_MINING_BLOCKS_ON_EXPLODE, true);
120+
getConfig().addDefault(ADMIN_DEBUG, false);
120121
getConfig().addDefault(MINING_ITEMS, new String[]{
121122
Material.DIAMOND_PICKAXE.name(),
122123
Material.GOLDEN_PICKAXE.name(),

src/main/java/de/chafficplugins/mininglevels/listeners/events/MiningEvents.java

Lines changed: 46 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,41 +10,54 @@
1010
import org.bukkit.block.Block;
1111
import org.bukkit.event.EventHandler;
1212
import org.bukkit.event.Listener;
13-
import org.bukkit.event.block.*;
13+
import org.bukkit.event.block.BlockBreakEvent;
14+
import org.bukkit.event.block.BlockDamageEvent;
15+
import org.bukkit.inventory.ItemStack;
1416
import org.bukkit.potion.PotionEffect;
1517
import org.bukkit.potion.PotionEffectType;
1618

1719
import static de.chafficplugins.mininglevels.listeners.events.NoXpBlockEvents.noXpBlocks;
18-
import static de.chafficplugins.mininglevels.utils.ConfigStrings.*;
20+
import static de.chafficplugins.mininglevels.utils.ConfigStrings.LEVEL_NEEDED;
21+
import static de.chafficplugins.mininglevels.utils.ConfigStrings.MINING_ITEMS;
22+
import static de.chafficplugins.mininglevels.utils.SenderUtils.sendDebug;
1923

2024
public class MiningEvents implements Listener {
2125
private static final MiningLevels plugin = MiningLevels.getPlugin(MiningLevels.class);
2226

2327
@EventHandler
2428
public void onBlockDamage(final BlockDamageEvent event) {
2529
final MiningBlock block = MiningBlock.getMiningBlock(event.getBlock().getType());
30+
sendDebug(event.getPlayer(), "BlockDamageEvent: " + event.getBlock().getType().name());
2631
if(block != null) {
2732
final MiningPlayer miningPlayer = MiningPlayer.getMiningPlayer(event.getPlayer().getUniqueId());
2833
if(miningPlayer != null) {
29-
if(miningPlayer.getLevel().getOrdinal() < block.getMinLevel()) {
34+
if (miningPlayer.getLevel().getOrdinal() < block.getMinLevel()) {
35+
sendDebug(event.getPlayer(), "BlockDamageEvent: " + "Level too low.");
3036
MiningLevel level = MiningLevel.get(block.getMinLevel());
31-
if(level == null) return;
37+
if (level == null) return;
3238
miningPlayer.showMessage(LEVEL_NEEDED, ChatColor.RED, level.getName());
3339
event.setCancelled(true);
34-
} else if(isMiningItem(event.getItemInHand().getType())) {
35-
//check if the block was placed by a player
36-
if(plugin.getConfigBoolean(LEVEL_WITH_PLAYER_PLACED_BLOCKS) || !noXpBlocks.contains(event.getBlock())) {
37-
if(miningPlayer.getLevel().getHasteLevel() > 0) {
38-
event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.FAST_DIGGING, 5*20, miningPlayer.getLevel().getHasteLevel()));
40+
} else {
41+
ItemStack itemInUse = event.getPlayer().getInventory().getItemInMainHand();
42+
if (isMiningItem(itemInUse.getType())) {
43+
if (miningPlayer.getLevel().getHasteLevel() > 0) {
44+
sendDebug(event.getPlayer(), "BlockDamageEvent: " + "Haste level: " + miningPlayer.getLevel().getHasteLevel());
45+
event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.FAST_DIGGING, 5 * 20, miningPlayer.getLevel().getHasteLevel()));
3946
}
40-
if(MathUtils.randomDouble(0,100) < miningPlayer.getLevel().getInstantBreakProbability()) {
47+
if (MathUtils.randomDouble(0, 100) < miningPlayer.getLevel().getInstantBreakProbability()) {
48+
sendDebug(event.getPlayer(), "BlockDamageEvent: " + "Instant break.");
4149
event.setInstaBreak(true); //Insta break
4250
}
51+
} else {
52+
sendDebug(event.getPlayer(), "BlockDamageEvent: " + "The held item " + itemInUse.getType() + " is not a mining item.");
4353
}
4454
}
4555
} else {
56+
sendDebug(event.getPlayer(), "BlockDamageEvent: " + "Error: Player is not registered to the plugin!");
4657
event.setCancelled(true);
4758
}
59+
} else {
60+
sendDebug(event.getPlayer(), "BlockDamageEvent: " + "Not a mining block.");
4861
}
4962
}
5063

@@ -55,31 +68,45 @@ private boolean isMiningItem(final Material material) {
5568
@EventHandler
5669
public void onBlockBreak(final BlockBreakEvent event) {
5770
final MiningBlock block = MiningBlock.getMiningBlock(event.getBlock().getType());
71+
sendDebug(event.getPlayer(), "BlockBreakEvent: " + event.getBlock().getType().name());
5872
if(block != null) {
5973
final MiningPlayer miningPlayer = MiningPlayer.getMiningPlayer(event.getPlayer().getUniqueId());
6074
if(miningPlayer != null) {
6175
if(miningPlayer.getLevel().getOrdinal() < block.getMinLevel()) {
76+
sendDebug(event.getPlayer(), "BlockBreakEvent: " + "Level too low.");
6277
event.setCancelled(true);
6378
MiningLevel level = MiningLevel.get(block.getMinLevel());
6479
if(level == null) return;
6580
miningPlayer.showMessage(LEVEL_NEEDED, ChatColor.RED, level.getName());
6681
} else {
6782
//check if the block was placed by a player
68-
if(plugin.getConfigBoolean(LEVEL_WITH_PLAYER_PLACED_BLOCKS) || !noXpBlocks.contains(event.getBlock())) {
69-
miningPlayer.alterXp(block.getXp());
70-
MiningLevel level = miningPlayer.getLevel();
71-
if(event.getPlayer().getItemInUse() != null && isMiningItem(event.getPlayer().getItemInUse().getType()) && MathUtils.randomDouble(0,100) < level.getExtraOreProbability()) {
72-
Block actualBlock = event.getBlock();
73-
int amount = (int) MathUtils.randomDouble(1, level.getMaxExtraOre());
74-
for (int i = 0; i < amount; i++) {
75-
event.getPlayer().getWorld().dropItemNaturally(actualBlock.getLocation(), actualBlock.getDrops().iterator().next());
76-
}
83+
if (noXpBlocks.contains(event.getBlock())) {
84+
sendDebug(event.getPlayer(), "BlockBreakEvent: " + "Config options disallow block to drop xp.");
85+
return;
86+
}
87+
miningPlayer.alterXp(block.getXp());
88+
MiningLevel level = miningPlayer.getLevel();
89+
ItemStack itemInUse = event.getPlayer().getInventory().getItemInMainHand();
90+
if (!isMiningItem(itemInUse.getType())) {
91+
sendDebug(event.getPlayer(), "BlockBreakEvent: " + "The held " + itemInUse.getType() + " item is not a mining item.");
92+
return;
93+
}
94+
95+
if (MathUtils.randomDouble(0, 100) < level.getExtraOreProbability()) {
96+
Block actualBlock = event.getBlock();
97+
int amount = (int) MathUtils.randomDouble(1, level.getMaxExtraOre());
98+
for (int i = 0; i < amount; i++) {
99+
event.getPlayer().getWorld().dropItemNaturally(actualBlock.getLocation(), actualBlock.getDrops().iterator().next());
77100
}
101+
sendDebug(event.getPlayer(), "BlockBreakEvent: " + "Dropped " + amount + " extra ores.");
78102
}
79103
}
80104
} else {
105+
sendDebug(event.getPlayer(), "BlockBreakEvent: " + "Error: Player is not registered to the plugin!");
81106
event.setCancelled(true);
82107
}
108+
} else {
109+
sendDebug(event.getPlayer(), "BlockBreakEvent: " + "Not a mining block.");
83110
}
84111
}
85112
}

src/main/java/de/chafficplugins/mininglevels/listeners/events/NoXpBlockEvents.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.ArrayList;
1919

2020
import static de.chafficplugins.mininglevels.utils.ConfigStrings.*;
21+
import static de.chafficplugins.mininglevels.utils.SenderUtils.sendDebug;
2122

2223
public class NoXpBlockEvents implements Listener {
2324
private static final MiningLevels plugin = MiningLevels.getPlugin(MiningLevels.class);
@@ -27,9 +28,11 @@ public class NoXpBlockEvents implements Listener {
2728
@EventHandler
2829
public void onBlockPlace(final BlockPlaceEvent event) {
2930
if(!plugin.getConfigBoolean(LEVEL_WITH_PLAYER_PLACED_BLOCKS)) {
31+
sendDebug(event.getPlayer(), "Block placed: " + event.getBlock().getType());
3032
final MiningBlock block = MiningBlock.getMiningBlock(event.getBlock().getType());
3133
if(block != null) {
3234
noXpBlocks.add(event.getBlock());
35+
sendDebug(event.getPlayer(), "Block placed: " + "Player placed block registered.");
3336
}
3437
}
3538
}
@@ -48,12 +51,14 @@ public void onBlockGenerated(final BlockFormEvent event) {
4851
public void onTNTFired(final PlayerInteractEvent event) {
4952
Block block = event.getClickedBlock();
5053
if(!plugin.getConfigBoolean(DESTROY_MINING_BLOCKS_ON_EXPLODE) && event.getAction().equals(Action.RIGHT_CLICK_BLOCK) && block != null) {
54+
sendDebug(event.getPlayer(), "Block clicked: " + block.getType());
5155
if(block.getType().equals(Material.TNT) || block.getType().equals(Material.TNT_MINECART)) {
5256
OfflinePlayer player = event.getPlayer();
5357
ItemStack item = event.getItem();
5458

5559
if(item != null && item.getType().equals(Material.FLINT_AND_STEEL)) {
5660
playersWithTNT.add(new PlayerWithTNT(player, block));
61+
sendDebug(event.getPlayer(), "Block clicked: " + "Player with TNT registered.");
5762
}
5863
}
5964
}
@@ -66,6 +71,7 @@ public void onBlockExplode(final EntityExplodeEvent event) {
6671
if(!plugin.getConfigBoolean(DESTROY_MINING_BLOCKS_ON_EXPLODE)) {
6772
PlayerWithTNT playerWithTNT = getPlayerWithTNT(b);
6873
if(playerWithTNT != null) {
74+
sendDebug(playerWithTNT.player.getPlayer(), "Block exploded: " + b.getType());
6975
ArrayList<Block> blocksToRemove = new ArrayList<>();
7076
for(final Block block : event.blockList()) {
7177
MiningBlock miningBlock = MiningBlock.getMiningBlock(block.getType());
@@ -75,6 +81,7 @@ public void onBlockExplode(final EntityExplodeEvent event) {
7581
blocksToRemove.add(block);
7682
}
7783
}
84+
sendDebug(playerWithTNT.player.getPlayer(), "Block exploded: " + "Higher level block destruction disabled.");
7885
}
7986
event.blockList().removeAll(blocksToRemove);
8087
}

src/main/java/de/chafficplugins/mininglevels/listeners/events/ServerEvents.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,15 @@
88

99
import java.io.IOException;
1010

11+
import static de.chafficplugins.mininglevels.utils.SenderUtils.sendDebug;
12+
1113
public class ServerEvents implements Listener {
1214
@EventHandler
1315
public void onJoin(PlayerJoinEvent event) throws IOException {
1416
if(MiningPlayer.notExists(event.getPlayer().getUniqueId())) {
1517
new MiningPlayer(event.getPlayer().getUniqueId(), 0, 0);
1618
MiningPlayer.save();
19+
sendDebug(event.getPlayer(), "PlayerJoinEvent: Player created.");
1720
}
1821
}
1922

src/main/java/de/chafficplugins/mininglevels/utils/ConfigStrings.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ public class ConfigStrings {
55
public final static int BSTATS_ID = 14709;
66
public final static String CRUCIAL_API_VERSION = "2.1.5";
77
public final static String LOCALIZED_IDENTIFIER = "mininglevels";
8+
public static final String PERMISSION_DEBUG = "mininglevels.debug";
89

910
public static String PREFIX = "§8[§6ML§8] §r";
1011

@@ -29,6 +30,7 @@ public class ConfigStrings {
2930
public final static String LEVEL_PROGRESSION_MESSAGES = "level_progression_messages";
3031
public final static String DESTROY_MINING_BLOCKS_ON_EXPLODE = "destroy_mining_blocks_on_explode";
3132
public final static String MINING_ITEMS = "mining_items";
33+
public final static String ADMIN_DEBUG = "admin.debug";
3234

3335
//Messages
3436
public final static String NO_PERMISSION = "no_permission";

src/main/java/de/chafficplugins/mininglevels/utils/SenderUtils.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package de.chafficplugins.mininglevels.utils;
22

3+
import de.chafficplugins.mininglevels.MiningLevels;
34
import io.github.chafficui.CrucialAPI.Utils.localization.Localizer;
45
import net.md_5.bungee.api.ChatMessageType;
56
import net.md_5.bungee.api.chat.TextComponent;
@@ -11,6 +12,7 @@
1112
import static de.chafficplugins.mininglevels.utils.ConfigStrings.PREFIX;
1213

1314
public class SenderUtils {
15+
private static final MiningLevels plugin = MiningLevels.getPlugin(MiningLevels.class);
1416

1517
public static boolean hasOnePermissions(CommandSender sender, String... permissions) {
1618
if(sender.isOp() || sender.hasPermission(ConfigStrings.PERMISSION_ADMIN)) {
@@ -39,4 +41,9 @@ public static void sendMessage(CommandSender sender, String key, ChatColor color
3941
public static void sendActionBar(Player sender, String key, ChatColor color, String... values) {
4042
sender.spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(color + Localizer.getLocalizedString(LOCALIZED_IDENTIFIER + "_" + key, values)));
4143
}
44+
45+
public static void sendDebug(Player player, String message) {
46+
if(hasOnePermissions(player, ConfigStrings.PERMISSION_DEBUG) && plugin.getConfigBoolean(ConfigStrings.ADMIN_DEBUG))
47+
player.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.DARK_RED + "DEBUG" + ChatColor.DARK_GRAY + "] " + ChatColor.GRAY + message);
48+
}
4249
}

0 commit comments

Comments
 (0)