mirror of
https://github.com/songoda/EpicHoppers.git
synced 2025-02-04 05:51:26 +01:00
You can now teleport through hoppers by pressing shift.
This commit is contained in:
parent
19f7fcb373
commit
8489ec6a51
@ -77,22 +77,18 @@ public interface Hopper {
|
|||||||
void setLastPlayer(UUID uuid);
|
void setLastPlayer(UUID uuid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether or not walk on teleporting has been
|
* Get the teleport trigger is currently enabled.
|
||||||
* enabled for this hopper.
|
|
||||||
*
|
*
|
||||||
* @return true if walk on teleporting enabled,
|
* @return TeleportTrigger
|
||||||
* false otherwise
|
|
||||||
*/
|
*/
|
||||||
boolean isWalkOnTeleport();
|
TeleportTrigger getTeleportTrigger();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the ability to teleport players from this
|
* Set which teleport trigger is currently enabled.
|
||||||
* hopper to a remote hopper.
|
|
||||||
*
|
*
|
||||||
* @param walkOnTeleport whether or not to enabled
|
* @param teleportTrigger TeleportTrigger
|
||||||
* walk on teleporting
|
|
||||||
*/
|
*/
|
||||||
void setWalkOnTeleport(boolean walkOnTeleport);
|
void setTeleportTrigger(TeleportTrigger teleportTrigger);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the Block containing the hopper that is
|
* Get the Block containing the hopper that is
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.songoda.epichoppers.api.hopper;
|
||||||
|
|
||||||
|
public enum TeleportTrigger {
|
||||||
|
DISABLED,
|
||||||
|
WALK_ON,
|
||||||
|
SNEAK;
|
||||||
|
}
|
@ -6,10 +6,7 @@ import com.songoda.arconix.api.utils.ConfigWrapper;
|
|||||||
import com.songoda.arconix.plugin.Arconix;
|
import com.songoda.arconix.plugin.Arconix;
|
||||||
import com.songoda.epichoppers.api.EpicHoppers;
|
import com.songoda.epichoppers.api.EpicHoppers;
|
||||||
import com.songoda.epichoppers.api.EpicHoppersAPI;
|
import com.songoda.epichoppers.api.EpicHoppersAPI;
|
||||||
import com.songoda.epichoppers.api.hopper.Hopper;
|
import com.songoda.epichoppers.api.hopper.*;
|
||||||
import com.songoda.epichoppers.api.hopper.HopperManager;
|
|
||||||
import com.songoda.epichoppers.api.hopper.Level;
|
|
||||||
import com.songoda.epichoppers.api.hopper.LevelManager;
|
|
||||||
import com.songoda.epichoppers.api.utils.ClaimableProtectionPluginHook;
|
import com.songoda.epichoppers.api.utils.ClaimableProtectionPluginHook;
|
||||||
import com.songoda.epichoppers.api.utils.ProtectionPluginHook;
|
import com.songoda.epichoppers.api.utils.ProtectionPluginHook;
|
||||||
import com.songoda.epichoppers.boost.BoostData;
|
import com.songoda.epichoppers.boost.BoostData;
|
||||||
@ -112,7 +109,7 @@ public class EpicHoppersPlugin extends JavaPlugin implements EpicHoppers {
|
|||||||
String blockLoc = dataFile.getConfig().getString("data.sync." + locationStr + ".block");
|
String blockLoc = dataFile.getConfig().getString("data.sync." + locationStr + ".block");
|
||||||
Block block = blockLoc == null ? null : Arconix.pl().getApi().serialize().unserializeLocation(dataFile.getConfig().getString("data.sync." + locationStr + ".block")).getBlock();
|
Block block = blockLoc == null ? null : Arconix.pl().getApi().serialize().unserializeLocation(dataFile.getConfig().getString("data.sync." + locationStr + ".block")).getBlock();
|
||||||
|
|
||||||
boolean walkOnTeleport = dataFile.getConfig().getBoolean("data.sync." + locationStr + ".walkOnTeleport");
|
TeleportTrigger teleportTrigger = TeleportTrigger.valueOf(dataFile.getConfig().getString("data.sync." + locationStr + ".teleportTrigger"));
|
||||||
|
|
||||||
String playerStr = dataFile.getConfig().getString("data.sync." + locationStr + ".player");
|
String playerStr = dataFile.getConfig().getString("data.sync." + locationStr + ".player");
|
||||||
String placedByStr = dataFile.getConfig().getString("data.sync." + locationStr + ".placedBy");
|
String placedByStr = dataFile.getConfig().getString("data.sync." + locationStr + ".placedBy");
|
||||||
@ -133,7 +130,7 @@ public class EpicHoppersPlugin extends JavaPlugin implements EpicHoppers {
|
|||||||
filter.setVoidList(voidList);
|
filter.setVoidList(voidList);
|
||||||
filter.setEndPoint(black);
|
filter.setEndPoint(black);
|
||||||
|
|
||||||
EHopper hopper = new EHopper(location, levelManager.getLevel(level), lastPlayer, placedBy, block, filter, walkOnTeleport);
|
EHopper hopper = new EHopper(location, levelManager.getLevel(level), lastPlayer, placedBy, block, filter, teleportTrigger);
|
||||||
|
|
||||||
hopperManager.addHopper(location, hopper);
|
hopperManager.addHopper(location, hopper);
|
||||||
}
|
}
|
||||||
@ -218,7 +215,7 @@ public class EpicHoppersPlugin extends JavaPlugin implements EpicHoppers {
|
|||||||
dataFile.getConfig().set("data.sync." + locationStr + ".block", hopper.getSyncedBlock() == null ? null : Arconix.pl().getApi().serialize().serializeLocation(hopper.getSyncedBlock().getLocation()));
|
dataFile.getConfig().set("data.sync." + locationStr + ".block", hopper.getSyncedBlock() == null ? null : Arconix.pl().getApi().serialize().serializeLocation(hopper.getSyncedBlock().getLocation()));
|
||||||
dataFile.getConfig().set("data.sync." + locationStr + ".player", hopper.getLastPlayer() == null ? null : hopper.getLastPlayer().toString());
|
dataFile.getConfig().set("data.sync." + locationStr + ".player", hopper.getLastPlayer() == null ? null : hopper.getLastPlayer().toString());
|
||||||
dataFile.getConfig().set("data.sync." + locationStr + ".placedBy", hopper.getPlacedBy() == null ? null : hopper.getPlacedBy().toString());
|
dataFile.getConfig().set("data.sync." + locationStr + ".placedBy", hopper.getPlacedBy() == null ? null : hopper.getPlacedBy().toString());
|
||||||
dataFile.getConfig().set("data.sync." + locationStr + ".walkOnTeleport", hopper.isWalkOnTeleport());
|
dataFile.getConfig().set("data.sync." + locationStr + ".teleportTrigger", hopper.getTeleportTrigger().toString());
|
||||||
dataFile.getConfig().set("data.sync." + locationStr + ".whitelist", hopper.getFilter().getWhiteList());
|
dataFile.getConfig().set("data.sync." + locationStr + ".whitelist", hopper.getFilter().getWhiteList());
|
||||||
dataFile.getConfig().set("data.sync." + locationStr + ".blacklist", hopper.getFilter().getBlackList());
|
dataFile.getConfig().set("data.sync." + locationStr + ".blacklist", hopper.getFilter().getBlackList());
|
||||||
dataFile.getConfig().set("data.sync." + locationStr + ".void", hopper.getFilter().getVoidList());
|
dataFile.getConfig().set("data.sync." + locationStr + ".void", hopper.getFilter().getVoidList());
|
||||||
|
@ -19,6 +19,7 @@ public class CommandEpicHoppers extends AbstractCommand {
|
|||||||
|
|
||||||
sender.sendMessage(TextComponent.formatText("&6/EpicHoppers&7 - Displays this page."));
|
sender.sendMessage(TextComponent.formatText("&6/EpicHoppers&7 - Displays this page."));
|
||||||
if (sender.hasPermission("epichoppers.admin")) {
|
if (sender.hasPermission("epichoppers.admin")) {
|
||||||
|
sender.sendMessage(TextComponent.formatText("&6/eh reload &7Reload the Configuration and Language files."));
|
||||||
sender.sendMessage(TextComponent.formatText("&6/eh book [player]&7- Gives Sync Touch book to you or a player."));
|
sender.sendMessage(TextComponent.formatText("&6/eh book [player]&7- Gives Sync Touch book to you or a player."));
|
||||||
sender.sendMessage(TextComponent.formatText("&6/eh give [player] [level]&7 - Give a leveled hopper to a player."));
|
sender.sendMessage(TextComponent.formatText("&6/eh give [player] [level]&7 - Give a leveled hopper to a player."));
|
||||||
sender.sendMessage(TextComponent.formatText("&6/eh settings&7 - Edit the EpicHoppers Settings."));
|
sender.sendMessage(TextComponent.formatText("&6/eh settings&7 - Edit the EpicHoppers Settings."));
|
||||||
|
@ -2,12 +2,14 @@ package com.songoda.epichoppers.handlers;
|
|||||||
|
|
||||||
import com.songoda.epichoppers.EpicHoppersPlugin;
|
import com.songoda.epichoppers.EpicHoppersPlugin;
|
||||||
import com.songoda.epichoppers.api.hopper.Hopper;
|
import com.songoda.epichoppers.api.hopper.Hopper;
|
||||||
|
import com.songoda.epichoppers.api.hopper.TeleportTrigger;
|
||||||
import com.songoda.epichoppers.player.PlayerData;
|
import com.songoda.epichoppers.player.PlayerData;
|
||||||
import com.songoda.epichoppers.utils.Debugger;
|
import com.songoda.epichoppers.utils.Debugger;
|
||||||
import com.songoda.epichoppers.utils.Methods;
|
import com.songoda.epichoppers.utils.Methods;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -46,7 +48,7 @@ public class TeleportHandler {
|
|||||||
|
|
||||||
Hopper hopper = instance.getHopperManager().getHopper(location);
|
Hopper hopper = instance.getHopperManager().getHopper(location);
|
||||||
|
|
||||||
if (!hopper.isWalkOnTeleport()) continue;
|
if (hopper.getTeleportTrigger() != TeleportTrigger.WALK_ON) continue;
|
||||||
|
|
||||||
PlayerData playerData = instance.getPlayerDataManager().getPlayerData(player);
|
PlayerData playerData = instance.getPlayerDataManager().getPlayerData(player);
|
||||||
|
|
||||||
@ -86,6 +88,8 @@ public class TeleportHandler {
|
|||||||
player.teleport(location);
|
player.teleport(location);
|
||||||
next = player.getLocation().subtract(0, 0.5, 0).getBlock();
|
next = player.getLocation().subtract(0, 0.5, 0).getBlock();
|
||||||
|
|
||||||
|
if (instance.getConfig().getBoolean("Main.Sounds Enabled"))
|
||||||
|
player.playSound(player.getLocation(), Sound.ENTITY_ENDERMAN_TELEPORT, 10,10);
|
||||||
num++;
|
num++;
|
||||||
}
|
}
|
||||||
if (num == 1 && teleportFrom.containsKey(hopper.getLocation())) {
|
if (num == 1 && teleportFrom.containsKey(hopper.getLocation())) {
|
||||||
@ -97,6 +101,9 @@ public class TeleportHandler {
|
|||||||
location.setDirection(player.getLocation().getDirection());
|
location.setDirection(player.getLocation().getDirection());
|
||||||
player.teleport(location);
|
player.teleport(location);
|
||||||
next = player.getLocation().subtract(0, 0.5, 0).getBlock();
|
next = player.getLocation().subtract(0, 0.5, 0).getBlock();
|
||||||
|
|
||||||
|
if (instance.getConfig().getBoolean("Main.Sounds Enabled"))
|
||||||
|
player.playSound(player.getLocation(), Sound.ENTITY_ENDERMAN_TELEPORT, 10,10);
|
||||||
num ++;
|
num ++;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import com.songoda.epichoppers.EpicHoppersPlugin;
|
|||||||
import com.songoda.epichoppers.api.hopper.Filter;
|
import com.songoda.epichoppers.api.hopper.Filter;
|
||||||
import com.songoda.epichoppers.api.hopper.Hopper;
|
import com.songoda.epichoppers.api.hopper.Hopper;
|
||||||
import com.songoda.epichoppers.api.hopper.Level;
|
import com.songoda.epichoppers.api.hopper.Level;
|
||||||
|
import com.songoda.epichoppers.api.hopper.TeleportTrigger;
|
||||||
import com.songoda.epichoppers.boost.BoostData;
|
import com.songoda.epichoppers.boost.BoostData;
|
||||||
import com.songoda.epichoppers.player.MenuType;
|
import com.songoda.epichoppers.player.MenuType;
|
||||||
import com.songoda.epichoppers.player.PlayerData;
|
import com.songoda.epichoppers.player.PlayerData;
|
||||||
@ -36,21 +37,21 @@ public class EHopper implements Hopper {
|
|||||||
private UUID placedBy;
|
private UUID placedBy;
|
||||||
private Block syncedBlock;
|
private Block syncedBlock;
|
||||||
private Filter filter;
|
private Filter filter;
|
||||||
private boolean walkOnTeleport;
|
private TeleportTrigger teleportTrigger;
|
||||||
|
|
||||||
|
|
||||||
public EHopper(Location location, com.songoda.epichoppers.api.hopper.Level level, UUID lastPlayer, UUID placedBy, Block syncedBlock, Filter filter, boolean walkOnTeleport) {
|
public EHopper(Location location, com.songoda.epichoppers.api.hopper.Level level, UUID lastPlayer, UUID placedBy, Block syncedBlock, Filter filter, TeleportTrigger teleportTrigger) {
|
||||||
this.location = location;
|
this.location = location;
|
||||||
this.level = level;
|
this.level = level;
|
||||||
this.syncedBlock = syncedBlock;
|
this.syncedBlock = syncedBlock;
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.lastPlayer = lastPlayer;
|
this.lastPlayer = lastPlayer;
|
||||||
this.placedBy = placedBy;
|
this.placedBy = placedBy;
|
||||||
this.walkOnTeleport = walkOnTeleport;
|
this.teleportTrigger = teleportTrigger;
|
||||||
}
|
}
|
||||||
|
|
||||||
public EHopper(Block block, com.songoda.epichoppers.api.hopper.Level level, UUID lastPlayer, UUID placedBy, Block syncedBlock, Filter filter, boolean walkOnTeleport) {
|
public EHopper(Block block, com.songoda.epichoppers.api.hopper.Level level, UUID lastPlayer, UUID placedBy, Block syncedBlock, Filter filter, TeleportTrigger teleportTrigger) {
|
||||||
this(block.getLocation(), level, lastPlayer, placedBy, syncedBlock, filter, walkOnTeleport);
|
this(block.getLocation(), level, lastPlayer, placedBy, syncedBlock, filter, teleportTrigger);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void overview(Player player) {
|
public void overview(Player player) {
|
||||||
@ -58,7 +59,7 @@ public class EHopper implements Hopper {
|
|||||||
EpicHoppersPlugin instance = EpicHoppersPlugin.getInstance();
|
EpicHoppersPlugin instance = EpicHoppersPlugin.getInstance();
|
||||||
if (!player.hasPermission("epichoppers.overview")) return;
|
if (!player.hasPermission("epichoppers.overview")) return;
|
||||||
|
|
||||||
if (lastPlayer != null) {
|
if (lastPlayer != null && lastPlayer != player.getUniqueId()) {
|
||||||
Bukkit.getPlayer(lastPlayer).closeInventory();
|
Bukkit.getPlayer(lastPlayer).closeInventory();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,7 +73,7 @@ public class EHopper implements Hopper {
|
|||||||
ItemMeta perlmeta = perl.getItemMeta();
|
ItemMeta perlmeta = perl.getItemMeta();
|
||||||
perlmeta.setDisplayName(instance.getLocale().getMessage("interface.hopper.perltitle"));
|
perlmeta.setDisplayName(instance.getLocale().getMessage("interface.hopper.perltitle"));
|
||||||
ArrayList<String> loreperl = new ArrayList<>();
|
ArrayList<String> loreperl = new ArrayList<>();
|
||||||
String[] parts = instance.getLocale().getMessage("interface.hopper.perllore").split("\\|");
|
String[] parts = instance.getLocale().getMessage("interface.hopper.perllore2", teleportTrigger.name()).split("\\|");
|
||||||
for (String line : parts) {
|
for (String line : parts) {
|
||||||
loreperl.add(Arconix.pl().getApi().format().formatText(line));
|
loreperl.add(Arconix.pl().getApi().format().formatText(line));
|
||||||
}
|
}
|
||||||
@ -520,13 +521,13 @@ public class EHopper implements Hopper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isWalkOnTeleport() {
|
public TeleportTrigger getTeleportTrigger() {
|
||||||
return walkOnTeleport;
|
return teleportTrigger;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setWalkOnTeleport(boolean walkOnTeleport) {
|
public void setTeleportTrigger(TeleportTrigger teleportTrigger) {
|
||||||
this.walkOnTeleport = walkOnTeleport;
|
this.teleportTrigger = teleportTrigger;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -3,6 +3,7 @@ package com.songoda.epichoppers.hopper;
|
|||||||
import com.songoda.epichoppers.EpicHoppersPlugin;
|
import com.songoda.epichoppers.EpicHoppersPlugin;
|
||||||
import com.songoda.epichoppers.api.hopper.Hopper;
|
import com.songoda.epichoppers.api.hopper.Hopper;
|
||||||
import com.songoda.epichoppers.api.hopper.HopperManager;
|
import com.songoda.epichoppers.api.hopper.HopperManager;
|
||||||
|
import com.songoda.epichoppers.api.hopper.TeleportTrigger;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -28,7 +29,7 @@ public class EHopperManager implements HopperManager {
|
|||||||
@Override
|
@Override
|
||||||
public Hopper getHopper(Location location) {
|
public Hopper getHopper(Location location) {
|
||||||
if (!registeredHoppers.containsKey(roundLocation(location))) {
|
if (!registeredHoppers.containsKey(roundLocation(location))) {
|
||||||
addHopper(location, new EHopper(location, EpicHoppersPlugin.getInstance().getLevelManager().getLowestLevel(), null, null, null, new EFilter(), false));
|
addHopper(location, new EHopper(location, EpicHoppersPlugin.getInstance().getLevelManager().getLowestLevel(), null, null, null, new EFilter(), TeleportTrigger.DISABLED));
|
||||||
}
|
}
|
||||||
return registeredHoppers.get(roundLocation(location));
|
return registeredHoppers.get(roundLocation(location));
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import com.songoda.arconix.plugin.Arconix;
|
|||||||
import com.songoda.epichoppers.EpicHoppersPlugin;
|
import com.songoda.epichoppers.EpicHoppersPlugin;
|
||||||
import com.songoda.epichoppers.api.hopper.Hopper;
|
import com.songoda.epichoppers.api.hopper.Hopper;
|
||||||
import com.songoda.epichoppers.api.hopper.Level;
|
import com.songoda.epichoppers.api.hopper.Level;
|
||||||
|
import com.songoda.epichoppers.api.hopper.TeleportTrigger;
|
||||||
import com.songoda.epichoppers.hopper.EFilter;
|
import com.songoda.epichoppers.hopper.EFilter;
|
||||||
import com.songoda.epichoppers.hopper.EHopper;
|
import com.songoda.epichoppers.hopper.EHopper;
|
||||||
import com.songoda.epichoppers.utils.Debugger;
|
import com.songoda.epichoppers.utils.Debugger;
|
||||||
@ -55,7 +56,7 @@ public class BlockListeners implements Listener {
|
|||||||
|
|
||||||
ItemStack item = e.getItemInHand().clone();
|
ItemStack item = e.getItemInHand().clone();
|
||||||
|
|
||||||
instance.getHopperManager().addHopper(e.getBlock().getLocation(), new EHopper(e.getBlock(), instance.getLevelFromItem(item), e.getPlayer().getUniqueId(), e.getPlayer().getUniqueId(),null, new EFilter(), false));
|
instance.getHopperManager().addHopper(e.getBlock().getLocation(), new EHopper(e.getBlock(), instance.getLevelFromItem(item), e.getPlayer().getUniqueId(), e.getPlayer().getUniqueId(),null, new EFilter(), TeleportTrigger.DISABLED));
|
||||||
|
|
||||||
} catch (Exception ee) {
|
} catch (Exception ee) {
|
||||||
Debugger.runReport(ee);
|
Debugger.runReport(ee);
|
||||||
|
@ -2,17 +2,21 @@ package com.songoda.epichoppers.listeners;
|
|||||||
|
|
||||||
import com.songoda.epichoppers.EpicHoppersPlugin;
|
import com.songoda.epichoppers.EpicHoppersPlugin;
|
||||||
import com.songoda.epichoppers.api.hopper.Hopper;
|
import com.songoda.epichoppers.api.hopper.Hopper;
|
||||||
|
import com.songoda.epichoppers.api.hopper.TeleportTrigger;
|
||||||
import com.songoda.epichoppers.hopper.EHopper;
|
import com.songoda.epichoppers.hopper.EHopper;
|
||||||
import com.songoda.epichoppers.player.PlayerData;
|
import com.songoda.epichoppers.player.PlayerData;
|
||||||
import com.songoda.epichoppers.player.SyncType;
|
import com.songoda.epichoppers.player.SyncType;
|
||||||
import com.songoda.epichoppers.utils.Debugger;
|
import com.songoda.epichoppers.utils.Debugger;
|
||||||
import com.songoda.epichoppers.utils.Methods;
|
import com.songoda.epichoppers.utils.Methods;
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.block.Action;
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
import org.bukkit.event.player.PlayerToggleSneakEvent;
|
||||||
import org.bukkit.inventory.InventoryHolder;
|
import org.bukkit.inventory.InventoryHolder;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
@ -27,6 +31,19 @@ public class InteractListeners implements Listener {
|
|||||||
this.instance = instance;
|
this.instance = instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerToggleSneakEvent(PlayerToggleSneakEvent event) {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
if (player.isSneaking()) {
|
||||||
|
Location location = player.getLocation().getBlock().getRelative(BlockFace.DOWN).getLocation();
|
||||||
|
if (instance.getHopperManager().isHopper(location)) {
|
||||||
|
Hopper hopper = instance.getHopperManager().getHopper(location);
|
||||||
|
if (hopper.getTeleportTrigger() == TeleportTrigger.SNEAK)
|
||||||
|
instance.getTeleportHandler().tpPlayer(player, hopper);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onBlockInteract(PlayerInteractEvent e) {
|
public void onBlockInteract(PlayerInteractEvent e) {
|
||||||
try {
|
try {
|
||||||
|
@ -2,6 +2,7 @@ package com.songoda.epichoppers.listeners;
|
|||||||
|
|
||||||
import com.songoda.epichoppers.EpicHoppersPlugin;
|
import com.songoda.epichoppers.EpicHoppersPlugin;
|
||||||
import com.songoda.epichoppers.api.hopper.Hopper;
|
import com.songoda.epichoppers.api.hopper.Hopper;
|
||||||
|
import com.songoda.epichoppers.api.hopper.TeleportTrigger;
|
||||||
import com.songoda.epichoppers.hopper.EHopper;
|
import com.songoda.epichoppers.hopper.EHopper;
|
||||||
import com.songoda.epichoppers.player.MenuType;
|
import com.songoda.epichoppers.player.MenuType;
|
||||||
import com.songoda.epichoppers.player.PlayerData;
|
import com.songoda.epichoppers.player.PlayerData;
|
||||||
@ -36,7 +37,6 @@ public class InventoryListeners implements Listener {
|
|||||||
Player player = (Player) event.getWhoClicked();
|
Player player = (Player) event.getWhoClicked();
|
||||||
if (inv == null || event.getCurrentItem() == null) return;
|
if (inv == null || event.getCurrentItem() == null) return;
|
||||||
|
|
||||||
|
|
||||||
if (event.getRawSlot() > event.getView().getTopInventory().getSize() - 1) return;
|
if (event.getRawSlot() > event.getView().getTopInventory().getSize() - 1) return;
|
||||||
|
|
||||||
if (event.getCursor() != null && event.getCurrentItem() != null) {
|
if (event.getCursor() != null && event.getCurrentItem() != null) {
|
||||||
@ -45,7 +45,7 @@ public class InventoryListeners implements Listener {
|
|||||||
if (c.hasItemMeta()
|
if (c.hasItemMeta()
|
||||||
&& c.getItemMeta().hasLore()
|
&& c.getItemMeta().hasLore()
|
||||||
&& c.getType() == Material.ENCHANTED_BOOK
|
&& c.getType() == Material.ENCHANTED_BOOK
|
||||||
&& (item.getType().name().toUpperCase().contains("AXE") || item.getType().name().toUpperCase().contains("SPADE") || item.getType().name().toUpperCase().contains("SWORD"))
|
&& (item.getType().name().toUpperCase().contains("AXE") || item.getType().name().toUpperCase().contains("SHOVEL") || item.getType().name().toUpperCase().contains("SWORD"))
|
||||||
&& c.getItemMeta().getLore().equals(instance.enchantmentHandler.getbook().getItemMeta().getLore())) {
|
&& c.getItemMeta().getLore().equals(instance.enchantmentHandler.getbook().getItemMeta().getLore())) {
|
||||||
instance.enchantmentHandler.createSyncTouch(item, null);
|
instance.enchantmentHandler.createSyncTouch(item, null);
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@ -83,13 +83,15 @@ public class InventoryListeners implements Listener {
|
|||||||
instance.getTeleportHandler().tpPlayer(player, hopper);
|
instance.getTeleportHandler().tpPlayer(player, hopper);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!hopper.isWalkOnTeleport()) {
|
if (hopper.getTeleportTrigger() == TeleportTrigger.DISABLED) {
|
||||||
player.sendMessage(instance.references.getPrefix() + instance.getLocale().getMessage("event.hopper.walkteleenabled"));
|
hopper.setTeleportTrigger(TeleportTrigger.SNEAK);
|
||||||
hopper.setWalkOnTeleport(true);
|
} else if (hopper.getTeleportTrigger() == TeleportTrigger.SNEAK) {
|
||||||
} else {
|
hopper.setTeleportTrigger(TeleportTrigger.WALK_ON);
|
||||||
player.sendMessage(instance.references.getPrefix() + instance.getLocale().getMessage("event.hopper.walkteledisabled"));
|
} else if (hopper.getTeleportTrigger() == TeleportTrigger.WALK_ON) {
|
||||||
hopper.setWalkOnTeleport(false);
|
hopper.setTeleportTrigger(TeleportTrigger.DISABLED);
|
||||||
}
|
}
|
||||||
|
((EHopper)hopper).overview(player);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
player.closeInventory();
|
player.closeInventory();
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ interface.hopper.blockbreak = "&7Block Break: &6Every %ticks% ticks"
|
|||||||
interface.hopper.alreadymaxed = "&7This hopper is already maxed out!"
|
interface.hopper.alreadymaxed = "&7This hopper is already maxed out!"
|
||||||
interface.hopper.synclore = "|&7Left-Click then click a another|&7hopper or chest to sync!||&7Right-Click to desync."
|
interface.hopper.synclore = "|&7Left-Click then click a another|&7hopper or chest to sync!||&7Right-Click to desync."
|
||||||
interface.hopper.perltitle = "&6Click to Teleport"
|
interface.hopper.perltitle = "&6Click to Teleport"
|
||||||
interface.hopper.perllore = "|&7Left-Click to teleport to|&7the end of the chain.||&7Right-Click to toggle walk|&7on teleport."
|
interface.hopper.perllore2 = "|&7Left-Click to teleport to|&7the end of the chain.||&7Right-Click to switch the|&7teleport trigger mode.|&7Currently set to: &a%type%&7."
|
||||||
interface.hopper.filtertitle = "&cClick to Filter"
|
interface.hopper.filtertitle = "&cClick to Filter"
|
||||||
interface.hopper.filterlore = "|&7This allows you to choose|&7which items go where."
|
interface.hopper.filterlore = "|&7This allows you to choose|&7which items go where."
|
||||||
interface.hopper.synchopper = "&6Click to Sync This hopper"
|
interface.hopper.synchopper = "&6Click to Sync This hopper"
|
||||||
@ -51,7 +51,7 @@ event.hopper.synctimeout = "&cSyncing timed out."
|
|||||||
event.hopper.syncoutofrange = "&cThis block is out of your hoppers range."
|
event.hopper.syncoutofrange = "&cThis block is out of your hoppers range."
|
||||||
event.hopper.syncdidnotplace = "&cSorry! You need to have placed this hopper to sync things to it."
|
event.hopper.syncdidnotplace = "&cSorry! You need to have placed this hopper to sync things to it."
|
||||||
event.hopper.toomany = "&cYou can only place %amount% hoppers per chunk..."
|
event.hopper.toomany = "&cYou can only place %amount% hoppers per chunk..."
|
||||||
event.hopper.walkteleenabled = "Walk on teleporting has been enabled for this hopper."
|
event.hopper.walkteleenabled = "The teleport has been enabled for this hopper."
|
||||||
event.hopper.walkteledisabled = "Walk on teleporting has been disabled for this hopper."
|
event.hopper.walkteledisabled = "Walk on teleporting has been disabled for this hopper."
|
||||||
event.hopper.onlyone = "&cYou may only place a single item at a time."
|
event.hopper.onlyone = "&cYou may only place a single item at a time."
|
||||||
event.hopper.syncchest = "&7You have synchronized your &9%name% &7with this chest."
|
event.hopper.syncchest = "&7You have synchronized your &9%name% &7with this chest."
|
||||||
|
Loading…
Reference in New Issue
Block a user