mirror of
https://github.com/songoda/EpicBuckets.git
synced 2025-02-19 21:21:23 +01:00
Final Update 1.3
This commit is contained in:
parent
78a7fd7a1a
commit
a323d94775
2
pom.xml
2
pom.xml
@ -122,7 +122,7 @@
|
||||
<url>http://nexus.hc.to/content/repositories/pub_releases</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>3_aikar</id>
|
||||
<id>33_aikar</id>
|
||||
<url>https://repo.aikar.co/content/groups/aikar/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
|
@ -5,12 +5,16 @@ import com.songoda.epicbuckets.genbucket.GenbucketType;
|
||||
import com.songoda.epicbuckets.util.InventoryHelper;
|
||||
import com.songoda.epicbuckets.util.Validator;
|
||||
import com.songoda.epicbuckets.util.XMaterial;
|
||||
import me.lucko.helper.cooldown.Cooldown;
|
||||
import me.lucko.helper.cooldown.CooldownMap;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ConfigManager {
|
||||
@ -50,6 +54,7 @@ public class ConfigManager {
|
||||
private int infiniteUseCost;
|
||||
|
||||
private int genbucketDelay;
|
||||
private CooldownMap<Player> cooldownMap;
|
||||
|
||||
private int maxVerticalHeight;
|
||||
private int maxHorizontalLength;
|
||||
@ -113,6 +118,12 @@ public class ConfigManager {
|
||||
chargeInfiniteUse = epicBuckets.getConfig().getBoolean("CHARGE-FOR-INFINITE-USE");
|
||||
infiniteUseCost = epicBuckets.getConfig().getInt("COST-FOR-INFINITE-USE");
|
||||
genbucketDelay = epicBuckets.getConfig().getInt("GENBUCKET-DELAY");
|
||||
|
||||
if (getGenbucketDelay() > 0) {
|
||||
cooldownMap = CooldownMap.create(Cooldown.of(getGenbucketDelay() / 20, TimeUnit.SECONDS));
|
||||
} else {
|
||||
cooldownMap = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void loadValidFaces() {
|
||||
@ -145,6 +156,11 @@ public class ConfigManager {
|
||||
backButton = InventoryHelper.setDisplayName(backButton, epicBuckets.getConfig().getString(getBackButtonPath() + ".name"));
|
||||
}
|
||||
|
||||
public boolean isOnCooldown(Player player) {
|
||||
if (cooldownMap == null) return false;
|
||||
return !cooldownMap.test(player);
|
||||
}
|
||||
|
||||
public void createConfig(String name, boolean resource) {
|
||||
File f = new File(epicBuckets.getDataFolder(), name + ".yml");
|
||||
configDatabase.put(name, new Config(f, resource));
|
||||
|
@ -10,29 +10,16 @@ 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());
|
||||
@ -56,7 +43,7 @@ public class GenbucketPlaceListener implements Listener {
|
||||
e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.place.nothere"));
|
||||
return;
|
||||
}
|
||||
if (cooldownMap != null && !cooldownMap.test(e.getPlayer())) {
|
||||
if (EpicBuckets.getInstance().getConfigManager().isOnCooldown(e.getPlayer())) {
|
||||
e.getPlayer().sendMessage(EpicBuckets.getInstance().getLocale().getMessage("event.place.delay"));
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user