Added optional delay between placing genbuckets

This commit is contained in:
Niels Vergucht 2018-12-21 22:09:10 +01:00
parent f8bf3cbc99
commit 717e745f48
6 changed files with 28 additions and 2 deletions

View File

@ -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>

View File

@ -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"));

View File

@ -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;
}
}

View File

@ -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;

View File

@ -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

View File

@ -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!"