mirror of
https://github.com/songoda/EpicBuckets.git
synced 2024-09-27 13:02:54 +02:00
Added optional delay between placing genbuckets
This commit is contained in:
parent
f8bf3cbc99
commit
717e745f48
2
pom.xml
2
pom.xml
@ -121,7 +121,7 @@
|
||||
<url>http://nexus.hc.to/content/repositories/pub_releases</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>33_aikar</id>
|
||||
<id>3_aikar</id>
|
||||
<url>https://repo.aikar.co/content/groups/aikar/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
|
@ -29,7 +29,7 @@ public class CommandGenbucket extends BaseCommand {
|
||||
@Subcommand("help")
|
||||
@CatchUnknown
|
||||
public void doHelp(CommandSender sender) {
|
||||
sender.sendMessage(ChatUtil.colorString("&3&lEpicBuckets"));
|
||||
sender.sendMessage(ChatUtil.colorString("&3&lEpicBuckets &r&7(&feb&8/&fgenbucket&8/&fgen&7)"));
|
||||
sender.sendMessage(ChatUtil.colorString("&f/epicbuckets help: &7shows this help"));
|
||||
sender.sendMessage(ChatUtil.colorString("&f/epicbuckets reload: &7reloads the config"));
|
||||
sender.sendMessage(ChatUtil.colorString("&f/epicbuckets shop: &7opens up the genbucket shop"));
|
||||
|
@ -49,6 +49,8 @@ public class ConfigManager {
|
||||
private boolean chargeInfiniteUse;
|
||||
private int infiniteUseCost;
|
||||
|
||||
private int genbucketDelay;
|
||||
|
||||
private int maxVerticalHeight;
|
||||
private int maxHorizontalLength;
|
||||
private int delay;
|
||||
@ -110,6 +112,7 @@ public class ConfigManager {
|
||||
epicBuckets.getConfig().getConfigurationSection("CUSTOM-ACTIVE-GEN-PER-PLAY").getKeys(false).forEach(s -> genbucketGroups.put(epicBuckets.getConfig().getString("CUSTOM-ACTIVE-GEN-PER-PLAY." + s).split(":")[1], Integer.parseInt(epicBuckets.getConfig().getString("CUSTOM-ACTIVE-GEN-PER-PLAY." + s).split(":")[0])));
|
||||
chargeInfiniteUse = epicBuckets.getConfig().getBoolean("CHARGE-FOR-INFINITE-USE");
|
||||
infiniteUseCost = epicBuckets.getConfig().getInt("COST-FOR-INFINITE-USE");
|
||||
genbucketDelay = epicBuckets.getConfig().getInt("GENBUCKET-DELAY");
|
||||
}
|
||||
|
||||
private void loadValidFaces() {
|
||||
@ -292,4 +295,8 @@ public class ConfigManager {
|
||||
public int getInfiniteUseCost() {
|
||||
return infiniteUseCost;
|
||||
}
|
||||
|
||||
public int getGenbucketDelay() {
|
||||
return genbucketDelay;
|
||||
}
|
||||
}
|
||||
|
@ -10,16 +10,29 @@ import com.songoda.epicbuckets.genbucket.types.PsuedoVertical;
|
||||
import com.songoda.epicbuckets.genbucket.types.Vertical;
|
||||
import com.songoda.epicbuckets.util.XMaterial;
|
||||
import de.tr7zw.itemnbtapi.NBTItem;
|
||||
import me.lucko.helper.cooldown.Cooldown;
|
||||
import me.lucko.helper.cooldown.CooldownMap;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
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.player.PlayerBucketEmptyEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class GenbucketPlaceListener implements Listener {
|
||||
|
||||
private CooldownMap<Player> cooldownMap = null;
|
||||
|
||||
public GenbucketPlaceListener() {
|
||||
if (EpicBuckets.getInstance().getConfigManager().getGenbucketDelay() > 0) {
|
||||
cooldownMap = CooldownMap.create(Cooldown.of(EpicBuckets.getInstance().getConfigManager().getGenbucketDelay() / 20, TimeUnit.SECONDS));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void emptyBucket(PlayerBucketEmptyEvent e) {
|
||||
NBTItem nbtItem = new NBTItem(e.getItemStack());
|
||||
@ -39,6 +52,10 @@ public class GenbucketPlaceListener implements Listener {
|
||||
|
||||
e.setCancelled(true);
|
||||
|
||||
if (cooldownMap != null && !cooldownMap.test(e.getPlayer())) {
|
||||
e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.place.delay"));
|
||||
return;
|
||||
}
|
||||
if (!e.getPlayer().hasPermission("epicbuckets.place")) {
|
||||
e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.place.nothere"));
|
||||
return;
|
||||
|
@ -24,6 +24,7 @@ INFINITE-USE: false # If enabled, you won't lose a genbucket when you place it d
|
||||
CHARGE-FOR-INFINITE-USE: false # This requires infinite use to be enabled and will charge the player when placing a genbucket
|
||||
COST-FOR-INFINITE-USE: 400 # Money charged for placing a genbucket when the above is enabled
|
||||
|
||||
GENBUCKET-DELAY: 10 # Ticks delay between genbucket placements, 20 ticks = 1 second, set to 0 for no delay
|
||||
USE-SPONGE-SUPPORT: false # If a sponge is found it will stop the genbucket
|
||||
SPONGE-RADIUS: 3 # <- SPONGE-RADIUS 3 == 3x3. I do not recommending putting this higher than 3
|
||||
|
||||
|
@ -33,3 +33,4 @@ event.genbucket.wrongmaterialpsuedo = "&7You cannot use the psuedo bucket on thi
|
||||
event.genbucket.admin = "&e%player% &7has placed a &e%genbucket%&7!"
|
||||
event.genbucket.infiniteuse.charge = "&7You were charged &a%charge% &7for placing a genbucket"
|
||||
event.genbucket.infiniteuse.notenough = "&cYou do not have enough to place a genbucket!"
|
||||
event.place.delay = "&7Please wait before placing a genbucket!"
|
||||
|
Loading…
Reference in New Issue
Block a user