Skip to content
This repository was archived by the owner on Jan 19, 2021. It is now read-only.

Commit 0d047ab

Browse files
committed
Release 2.6
1 parent 3a1d6c0 commit 0d047ab

5 files changed

Lines changed: 259 additions & 37 deletions

File tree

src/config.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#Integer. Set 0 to disable.
2-
daily-broke-limit: 0
3-
4-
update-check: true
1+
daily-broke-limit: 5
2+
update-check: true
3+
item: {}

src/me/poma123/spawners/Command.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package me.poma123.spawners;
22

33
import java.util.ArrayList;
4+
import java.util.Arrays;
45
import java.util.List;
56

7+
import org.apache.commons.lang.RandomStringUtils;
68
import org.bukkit.Bukkit;
79
import org.bukkit.Material;
810
import org.bukkit.entity.EntityType;
@@ -14,6 +16,15 @@ public class Command extends JavaPlugin implements org.bukkit.event.Listener {
1416
public static List<String> entities = new ArrayList<String>();
1517
public int ID = 62455;
1618

19+
public static String generateRandomString(int length) {
20+
21+
boolean useLetters = true;
22+
boolean useNumbers = true;
23+
String generatedString = RandomStringUtils.random(length, useLetters, useNumbers);
24+
25+
return generatedString;
26+
}
27+
1728
@Override
1829
public void onEnable() {
1930
getLogger().info("-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-");
@@ -51,6 +62,13 @@ public void onEnable() {
5162
Updater updater = new Updater(this, ID, this.getFile(), Updater.UpdateType.VERSION_CHECK, true);
5263
}
5364

65+
if (s.getConfig().getConfigurationSection("item").getKeys(false).isEmpty()) {
66+
67+
s.getConfig().set("item.default.material", "DIAMOND_PICKAXE");
68+
s.getConfig().set("item.default.enchants", Arrays.asList("SILK_TOUCH"));
69+
s.saveConfig();
70+
}
71+
5472
}
5573

5674
private String getVersion() {

src/me/poma123/spawners/Listener.java

Lines changed: 64 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package me.poma123.spawners;
22

3+
import java.util.ArrayList;
4+
import java.util.List;
35
import java.util.Map;
46
import java.util.TreeMap;
7+
import java.util.regex.Pattern;
58

9+
import org.apache.commons.lang.RandomStringUtils;
610
import org.apache.commons.lang.StringUtils;
711
import org.bukkit.ChatColor;
812
import org.bukkit.Material;
913
import org.bukkit.block.Block;
1014
import org.bukkit.block.CreatureSpawner;
11-
import org.bukkit.enchantments.Enchantment;
1215
import org.bukkit.entity.EntityType;
1316
import org.bukkit.entity.Player;
1417
import org.bukkit.event.EventHandler;
@@ -44,6 +47,14 @@ public static TextComponent getHoverClick(String message, String hover, String c
4447
new ComponentBuilder(hover).create()));
4548
return text;
4649
}
50+
public static TextComponent getHoverClickcmd(String message, String hover, String click) {
51+
TextComponent text = new TextComponent(message);
52+
text.setClickEvent(
53+
new net.md_5.bungee.api.chat.ClickEvent(net.md_5.bungee.api.chat.ClickEvent.Action.RUN_COMMAND, click));
54+
text.setHoverEvent(new net.md_5.bungee.api.chat.HoverEvent(HoverEvent.Action.SHOW_TEXT,
55+
new ComponentBuilder(hover).create()));
56+
return text;
57+
}
4758

4859
@EventHandler
4960
public void onOpJoin(PlayerJoinEvent e) {
@@ -69,13 +80,15 @@ public void onOpJoin(PlayerJoinEvent e) {
6980
}
7081
}
7182
}
83+
84+
7285

7386
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
7487
public void onSpawnerBreak(BlockBreakEvent e) {
7588
Block s = e.getBlock();
7689
String lang = getLang(e.getPlayer());
7790
Object limitcount1 = sett.getConfig().get("daily-broke-limit");
78-
91+
ItemStack item = e.getPlayer().getInventory().getItemInMainHand();
7992
try {
8093
int limitcount = (int) limitcount1;
8194
if (limitcount > 0) {
@@ -100,8 +113,55 @@ public void onSpawnerBreak(BlockBreakEvent e) {
100113
"§c[PickupSpawners-ERROR] The daily limit is not an integer in the config.yml. Please fix it. Daily limit skipped.");
101114
}
102115

103-
if (e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.DIAMOND_PICKAXE) && e.getPlayer()
104-
.getInventory().getItemInMainHand().getEnchantments().containsKey(Enchantment.SILK_TOUCH)) {
116+
boolean isGoodItem = false;
117+
118+
for (String string : sett.getConfig().getConfigurationSection("item").getKeys(false)) {
119+
Material mat = Material
120+
.matchMaterial(sett.getConfig().getString("item." + string + ".material").toUpperCase());
121+
List<String> enchants = new ArrayList<String>();
122+
if (sett.getConfig().getStringList("item." + string + ".enchants") != null) {
123+
enchants = sett.getConfig().getStringList("item." + string + ".enchants");
124+
}
125+
126+
if (enchants.isEmpty()) {
127+
if (item.getType().equals(mat)) {
128+
isGoodItem = true;
129+
}
130+
} else {
131+
132+
boolean containsAllEnchants = false;
133+
134+
String enchantments = "";
135+
136+
for (String ench : sett.getConfig().getStringList("item." + string + ".enchants")) {
137+
138+
if (ench.contains(":")) {
139+
enchantments = enchantments + "(?=.*" + ench.split(":")[0].toUpperCase() + "]="+ ench.split(":")[1] + ")";
140+
} else {
141+
enchantments = enchantments + "(?=.*" + ench.toUpperCase() + "]=1" + ")";
142+
}
143+
}
144+
145+
Pattern pattern = Pattern.compile(enchantments);
146+
if (pattern.matcher(item.getEnchantments().toString()).find()) {
147+
containsAllEnchants = true;
148+
}
149+
150+
if (item.getType().equals(mat) && containsAllEnchants) {
151+
isGoodItem = true;
152+
}
153+
154+
}
155+
156+
if (isGoodItem == true) {
157+
break;
158+
159+
}
160+
}
161+
162+
// if (item.getType().equals(Material.DIAMOND_PICKAXE)&&
163+
// item.getEnchantments().containsKey(Enchantment.SILK_TOUCH)) {
164+
if (isGoodItem) {
105165
if (s.getType().equals(material)) {
106166

107167
CreatureSpawner cs = (CreatureSpawner) s.getState();

0 commit comments

Comments
 (0)