Redid linking system to be more intuitive.

This commit is contained in:
Brianna 2019-10-13 17:26:34 -04:00
parent 09c39f0b0b
commit b2247ec8a8
4 changed files with 27 additions and 8 deletions

View File

@ -174,6 +174,12 @@ public class GUIOverview extends Gui {
plugin.getPlayerDataManager().getPlayerData(player).setSyncType(SyncType.REGULAR);
hopper.clearLinkedBlocks();
plugin.getLocale().getMessage("event.hopper.syncnext").sendPrefixedMessage(player);
if (level.getLinkAmount() > 1)
plugin.getLocale().getMessage("event.hopper.syncstart")
.processPlaceholder("amount", level.getLinkAmount())
.sendPrefixedMessage(player);
hopper.timeout(player);
}
player.closeInventory();

View File

@ -30,6 +30,8 @@ public class Hopper {
private TeleportTrigger teleportTrigger = TeleportTrigger.DISABLED;
private int transferTick = 0;
private int syncId = -1;
private final Map<String, Object> moduleCache = new HashMap<>();
public Hopper(Location location) {
@ -118,7 +120,7 @@ public class Hopper {
public void timeout(Player player) {
EpicHoppers instance = EpicHoppers.getInstance();
Bukkit.getScheduler().scheduleSyncDelayedTask(instance, () -> {
syncId = Bukkit.getScheduler().scheduleSyncDelayedTask(instance, () -> {
PlayerData playerData = instance.getPlayerDataManager().getPlayerData(player);
if (playerData.getSyncType() != null && playerData.getLastHopper() == this) {
instance.getLocale().getMessage("event.hopper.synctimeout").sendPrefixedMessage(player);
@ -164,7 +166,7 @@ public class Hopper {
return;
}
instance.getLocale().getMessage("event.hopper.syncsuccess").sendPrefixedMessage(player);
instance.getPlayerDataManager().getPlayerData(player).setSyncType(null);
cancelSync(player);
}
/**
@ -286,4 +288,9 @@ public class Hopper {
public void clearModuleCache() {
this.moduleCache.clear();
}
public void cancelSync(Player player) {
Bukkit.getScheduler().cancelTask(syncId);
EpicHoppers.getInstance().getPlayerDataManager().getPlayerData(player).setSyncType(null);
}
}

View File

@ -102,7 +102,11 @@ public class InteractListeners implements Listener {
if (e.getClickedBlock().getState() instanceof InventoryHolder || (e.getClickedBlock().getType().equals(Material.ENDER_CHEST) && instance.getConfig().getBoolean("Main.Support Enderchests"))) {
Hopper hopper = playerData.getLastHopper();
if (playerData.getSyncType() != null && e.getClickedBlock().getLocation().equals(playerData.getLastHopper().getLocation())) {
instance.getLocale().getMessage("event.hopper.syncself").sendPrefixedMessage(player);
if (hopper.getLinkedBlocks().size() != 0)
instance.getLocale().getMessage("event.hopper.syncfinish").sendPrefixedMessage(player);
else
instance.getLocale().getMessage("event.hopper.synccanceled").sendPrefixedMessage(player);
hopper.cancelSync(player);
} else if (playerData.getSyncType() != null) {
hopper.link(e.getClickedBlock(), playerData.getSyncType() == SyncType.FILTERED, player);
}

View File

@ -1,4 +1,4 @@
#General Messages
# General Messages
general.nametag.prefix = "&7[&6EpicHoppers&7]"
general.nametag.next = "&9Next"
@ -8,7 +8,7 @@ general.nametag.lore = ""
general.word.disabled = "DISABLED"
general.word.enabled = "ENABLED"
#Interface Messages
# Interface Messages
interface.hopper.boostedstats = "&a&lCurrently boosted!|&7Item transfer rate multiplied by &6%amount%x&7.|&7Expires in &6%time%&7."
interface.hopper.upgradewithxp = "&aUpgrade with XP"
@ -46,11 +46,11 @@ interface.filter.whitelist = "&f&lWhite List"
interface.filter.blacklist = "&8&lBlack List"
interface.filter.void = "&c&lVoid"
#Command Messages
# Command Messages
command.give.success = "&7You have been given a &6level %level% &7Hopper."
#Event Messages
# Event Messages
event.general.nopermission = "&cYou do not have permission to do that."
event.upgrade.cannotafford = "&cYou cannot afford this upgrade."
@ -61,10 +61,12 @@ event.hopper.syncsuccess = "&aLink Successful."
event.hopper.syncsuccessmore = "&7You have &6%amount% &7more link(s) left."
event.hopper.desync = "&7You have unlinked this hopper."
event.hopper.syncnext = "&7Click another hopper or container to link."
event.hopper.syncself = "&cYou can't link a hopper to itself."
event.hopper.syncdone = "&aYou have maxed out your links."
event.hopper.already = "&cThis hopper is already linked."
event.hopper.synctimeout = "&cLinking timed out."
event.hopper.synccanceled = "&cLinking canceled."
event.hopper.syncstart = "&7You have &6%amount% &7links available. When finished click the original hopper."
event.hopper.syncfinish = "&7Linking completed."
event.hopper.syncoutofrange = "&cThis block is out of your hoppers range."
event.hopper.syncdidnotplace = "&cSorry! You need to have placed this hopper to link things to it."
event.hopper.toomany = "&cYou can only place %amount% hoppers per chunk..."