Added a wilderness teleport command (/f wild) and fixed a few bugs
Signed-off-by: DroppingAnvil <dr0pping.4nvi1@gmail.com>
This commit is contained in:
parent
58e43b41cc
commit
fec07b6fac
@ -261,7 +261,7 @@ public interface FPlayer extends EconomyParticipator {
|
||||
|
||||
int getDeaths();
|
||||
|
||||
void takeMoney(int amt);
|
||||
boolean takeMoney(int amt);
|
||||
|
||||
boolean hasMoney(int amt);
|
||||
|
||||
|
@ -34,12 +34,10 @@ public class CmdBanner extends FCommand {
|
||||
context.msg(TL.COMMAND_BANNER_NOBANNER);
|
||||
return;
|
||||
}
|
||||
if (!context.fPlayer.hasMoney(FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Cost", 5000))) {
|
||||
if (!context.fPlayer.takeMoney(FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Cost", 5000))) {
|
||||
context.msg(TL.COMMAND_BANNER_NOTENOUGHMONEY);
|
||||
return;
|
||||
}
|
||||
this.takeMoney(context.fPlayer, FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Cost", 5000));
|
||||
this.takeMoney(context.fPlayer, FactionsPlugin.getInstance().getConfig().getInt("fbanners.Banner-Cost", 5000));
|
||||
ItemStack warBanner = context.fPlayer.getFaction().getBanner();
|
||||
ItemMeta warmeta = warBanner.getItemMeta();
|
||||
warmeta.setDisplayName(FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("fbanners.Item.Name")));
|
||||
@ -49,7 +47,7 @@ public class CmdBanner extends FCommand {
|
||||
warBanner.setAmount(1);
|
||||
context.player.getInventory().addItem(warBanner);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public boolean hasMoney(FPlayer fme, int amt) {
|
||||
Economy econ = FactionsPlugin.getInstance().getEcon();
|
||||
if (econ.getBalance(fme.getPlayer()) >= amt) {
|
||||
@ -58,11 +56,10 @@ public class CmdBanner extends FCommand {
|
||||
fme.msg(TL.COMMAND_BANNER_NOTENOUGHMONEY);
|
||||
return false;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void takeMoney(FPlayer fme, int amt) {
|
||||
if (this.hasMoney(fme, amt)) {
|
||||
Economy econ = FactionsPlugin.getInstance().getEcon();
|
||||
econ.withdrawPlayer(fme.getPlayer(), (double) amt);
|
||||
fme.sendMessage(TL.COMMAND_BANNER_MONEYTAKE.toString().replace("{amount}", amt + ""));
|
||||
}
|
||||
}
|
||||
|
@ -47,9 +47,9 @@ public class CmdGetVault extends FCommand {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!context.fPlayer.takeMoney(amount)) {return;}
|
||||
|
||||
//success :)
|
||||
context.fPlayer.takeMoney(amount);
|
||||
context.player.getInventory().addItem(vault);
|
||||
context.fPlayer.msg(TL.COMMAND_GETVAULT_RECEIVE);
|
||||
|
||||
|
@ -20,6 +20,7 @@ import com.massivecraft.factions.cmd.roles.CmdDemote;
|
||||
import com.massivecraft.factions.cmd.roles.CmdPromote;
|
||||
import com.massivecraft.factions.cmd.tnt.CmdTnt;
|
||||
import com.massivecraft.factions.cmd.tnt.CmdTntFill;
|
||||
import com.massivecraft.factions.cmd.wild.CmdWild;
|
||||
import com.massivecraft.factions.discord.CmdInviteBot;
|
||||
import com.massivecraft.factions.discord.CmdSetGuild;
|
||||
import com.massivecraft.factions.missions.CmdMissions;
|
||||
@ -152,6 +153,7 @@ public class FCmdRoot extends FCommand implements CommandExecutor {
|
||||
public CmdStrikes cmdStrikes = new CmdStrikes();
|
||||
public CmdCheck cmdCheck = new CmdCheck();
|
||||
public CmdWeeWoo cmdWeeWoo = new CmdWeeWoo();
|
||||
public CmdWild cmdWild = new CmdWild();
|
||||
public CmdConvertConfig cmdConvertConfig = new CmdConvertConfig();
|
||||
public CmdSpawnerLock cmdSpawnerLock = new CmdSpawnerLock();
|
||||
public CmdSetDiscord cmdSetDiscord = new CmdSetDiscord();
|
||||
@ -174,6 +176,7 @@ public class FCmdRoot extends FCommand implements CommandExecutor {
|
||||
public Boolean fPayPalEnabled = false;
|
||||
public Boolean coreProtectEnabled = false;
|
||||
public Boolean internalFTOPEnabled = false;
|
||||
public Boolean fWildEnabled = false;
|
||||
|
||||
public FCmdRoot() {
|
||||
super();
|
||||
@ -334,6 +337,10 @@ public class FCmdRoot extends FCommand implements CommandExecutor {
|
||||
internalFTOPEnabled = true;
|
||||
}
|
||||
//Other
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("Wild.Enabled", false) && !fWildEnabled) {
|
||||
this.addSubCommand(this.cmdWild);
|
||||
fWildEnabled = true;
|
||||
}
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("Missions-Enabled", false) && !missionsEnabled) {
|
||||
this.addSubCommand(this.cmdMissions);
|
||||
missionsEnabled = true;
|
||||
|
110
src/main/java/com/massivecraft/factions/cmd/wild/CmdWild.java
Normal file
110
src/main/java/com/massivecraft/factions/cmd/wild/CmdWild.java
Normal file
@ -0,0 +1,110 @@
|
||||
package com.massivecraft.factions.cmd.wild;
|
||||
|
||||
|
||||
import com.massivecraft.factions.Board;
|
||||
import com.massivecraft.factions.FLocation;
|
||||
import com.massivecraft.factions.FPlayers;
|
||||
import com.massivecraft.factions.FactionsPlugin;
|
||||
import com.massivecraft.factions.cmd.CommandContext;
|
||||
import com.massivecraft.factions.cmd.CommandRequirements;
|
||||
import com.massivecraft.factions.cmd.FCommand;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Random;
|
||||
|
||||
public class CmdWild extends FCommand {
|
||||
public static HashMap<Player, Integer> waitingTeleport;
|
||||
public static HashMap<Player, String> teleportRange;
|
||||
public static HashSet<Player> teleporting;
|
||||
public CmdWild() {
|
||||
super();
|
||||
this.aliases.add("wild");
|
||||
this.requirements = new CommandRequirements.Builder(Permission.WILD)
|
||||
.playerOnly()
|
||||
.build();
|
||||
waitingTeleport = new HashMap<>();
|
||||
teleporting = new HashSet<>();
|
||||
teleportRange = new HashMap<>();
|
||||
startWild();
|
||||
}
|
||||
@Override
|
||||
public void perform(CommandContext context) {
|
||||
if (!waitingTeleport.keySet().contains(context.player)) {
|
||||
context.player.openInventory(new WildGUI(context.player, context.fPlayer).getInventory());
|
||||
} else {context.fPlayer.msg(TL.COMMAND_WILD_WAIT);}
|
||||
}
|
||||
|
||||
public void startWild() {
|
||||
Bukkit.getScheduler().scheduleSyncRepeatingTask(FactionsPlugin.instance, () -> {
|
||||
for (Player p : waitingTeleport.keySet()) {
|
||||
int i = waitingTeleport.get(p) - 1;
|
||||
if (i > 0) {
|
||||
if (i != 1) {
|
||||
p.sendMessage(TL.COMMAND_WILD_WAIT.format((i + " Seconds")));
|
||||
} else {
|
||||
p.sendMessage(TL.COMMAND_WILD_WAIT.format((i + " Second")));
|
||||
}
|
||||
waitingTeleport.replace(p, i);
|
||||
} else {
|
||||
p.sendMessage(TL.COMMAND_WILD_SUCCESS.toString());
|
||||
waitingTeleport.remove(p);
|
||||
attemptTeleport(p);
|
||||
}
|
||||
}
|
||||
}, 0L, 20L);
|
||||
}
|
||||
public void attemptTeleport(Player p) {
|
||||
boolean success = false;
|
||||
int tries = 0;
|
||||
ConfigurationSection c = FactionsPlugin.getInstance().getConfig().getConfigurationSection("Wild.Zones." + teleportRange.get(p));
|
||||
while (tries < 5) {
|
||||
int x = new Random().nextInt((c.getInt("Range.MaxX") - c.getInt("Range.MinX")) + 1) + c.getInt("Range.MinX");
|
||||
int z = new Random().nextInt((c.getInt("Range.MaxZ") - c.getInt("Range.MinZ")) + 1) + c.getInt("Range.MinZ");
|
||||
if (Board.getInstance().getFactionAt(new FLocation(p.getWorld().getName(), x, z)).isWilderness()) {
|
||||
success = true;
|
||||
FLocation loc = new FLocation(p.getWorld().getName(), x, z);
|
||||
teleportRange.remove(p);
|
||||
if (!FPlayers.getInstance().getByPlayer(p).takeMoney(c.getInt("Cost"))) {
|
||||
p.sendMessage(TL.GENERIC_NOTENOUGHMONEY.toString());
|
||||
return;
|
||||
}
|
||||
teleportPlayer(p, loc);
|
||||
break;
|
||||
}
|
||||
tries++;
|
||||
}
|
||||
if (!success) {p.sendMessage(TL.COMMAND_WILD_FAILED.toString());}
|
||||
}
|
||||
public void teleportPlayer(Player p, FLocation loc) {
|
||||
Location finalLoc;
|
||||
if (FactionsPlugin.getInstance().getConfig().getBoolean("Wild.Arrival.SpawnAbove")) {
|
||||
finalLoc = new Location(p.getWorld(), loc.getX(), p.getWorld().getHighestBlockYAt(Math.round(loc.getX()), Math.round(loc.getZ())) + FactionsPlugin.getInstance().getConfig().getInt("Wild.Arrival.SpawnAboveBlocks", 1), loc.getZ());
|
||||
} else {finalLoc = new Location(p.getWorld(), loc.getX(), p.getWorld().getHighestBlockYAt(Math.round(loc.getX()), Math.round(loc.getZ())), loc.getZ());}
|
||||
p.teleport(finalLoc, PlayerTeleportEvent.TeleportCause.PLUGIN);
|
||||
setTeleporting(p);
|
||||
applyEffects(p);
|
||||
}
|
||||
public void applyEffects(Player p) {
|
||||
for (String s : FactionsPlugin.getInstance().getConfig().getStringList("Wild.Arrival.Effects")) {
|
||||
p.addPotionEffect(new PotionEffect(PotionEffectType.getByName(s), 40, 1));
|
||||
}
|
||||
}
|
||||
public void setTeleporting(Player p) {
|
||||
teleporting.add(p);
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(FactionsPlugin.instance, () -> teleporting.remove(p), FactionsPlugin.getInstance().getConfig().getInt("Wild.Arrival.FallDamageWindow") * 20);
|
||||
}
|
||||
@Override
|
||||
public TL getUsageTranslation() {
|
||||
return TL.COMMAND_WILD_DESCRIPTION;
|
||||
}
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
package com.massivecraft.factions.cmd.wild;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.FactionsPlugin;
|
||||
import com.massivecraft.factions.integration.Essentials;
|
||||
import com.massivecraft.factions.util.FactionGUI;
|
||||
import com.massivecraft.factions.util.XMaterial;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class WildGUI implements FactionGUI {
|
||||
Player player;
|
||||
FPlayer fplayer;
|
||||
HashMap<Integer, String> map;
|
||||
Inventory inv;
|
||||
public WildGUI(Player player, FPlayer fplayer) {
|
||||
this.player = player;
|
||||
this.fplayer = fplayer;
|
||||
map = new HashMap<>();
|
||||
}
|
||||
@Override
|
||||
public void onClick(int slot, ClickType action) {
|
||||
if (map.keySet().contains(slot)) {
|
||||
String zone = map.get(slot);
|
||||
if (fplayer.hasMoney(FactionsPlugin.getInstance().getConfig().getInt("Wild.Zones." + zone + ".Cost"))) {
|
||||
CmdWild.waitingTeleport.put(player, FactionsPlugin.getInstance().getConfig().getInt("Wild.Wait"));
|
||||
CmdWild.teleportRange.put(player, zone);
|
||||
fplayer.msg(TL.COMMAND_WILD_WAIT, FactionsPlugin.getInstance().getConfig().getInt("Wild.Wait") + " Seconds");
|
||||
player.closeInventory();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void build() {
|
||||
inv = Bukkit.createInventory(this, FactionsPlugin.getInstance().getConfig().getInt("Wild.GUI.Size"), FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("Wild.GUI.Name")));
|
||||
ItemStack fillItem = XMaterial.matchXMaterial(FactionsPlugin.getInstance().getConfig().getString("Wild.GUI.FillMaterial")).parseItem();
|
||||
ItemMeta meta = fillItem.getItemMeta();
|
||||
meta.setDisplayName("");
|
||||
fillItem.setItemMeta(meta);
|
||||
for (int fill = 0; fill < FactionsPlugin.getInstance().getConfig().getInt("Wild.GUI.Size"); ++fill) {
|
||||
inv.setItem(fill, fillItem);
|
||||
}
|
||||
for (String key : FactionsPlugin.getInstance().getConfig().getConfigurationSection("Wild.Zones").getKeys(false)) {
|
||||
ItemStack zoneItem = XMaterial.matchXMaterial(FactionsPlugin.getInstance().getConfig().getString("Wild.Zones." + key + ".Material")).parseItem();
|
||||
ItemMeta zoneMeta = zoneItem.getItemMeta();
|
||||
List<String> lore = new ArrayList<>();
|
||||
for (String s : FactionsPlugin.getInstance().getConfig().getStringList("Wild.Zones." + key + ".Lore")) {
|
||||
lore.add(FactionsPlugin.getInstance().color(s));
|
||||
}
|
||||
zoneMeta.setLore(lore);
|
||||
zoneMeta.setDisplayName(FactionsPlugin.getInstance().color(FactionsPlugin.getInstance().getConfig().getString("Wild.Zones." + key + ".Name")));
|
||||
zoneItem.setItemMeta(zoneMeta);
|
||||
int slot = FactionsPlugin.getInstance().getConfig().getInt("Wild.Zones." + key + ".Slot");
|
||||
map.put(slot, key);
|
||||
inv.setItem(slot, zoneItem);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Inventory getInventory() {
|
||||
if (inv == null) {build();}
|
||||
return inv;
|
||||
}
|
||||
}
|
@ -5,6 +5,7 @@ import com.massivecraft.factions.cmd.CmdFGlobal;
|
||||
import com.massivecraft.factions.cmd.CmdFly;
|
||||
import com.massivecraft.factions.cmd.CmdSeeChunk;
|
||||
import com.massivecraft.factions.cmd.logout.LogoutHandler;
|
||||
import com.massivecraft.factions.cmd.wild.CmdWild;
|
||||
import com.massivecraft.factions.discord.Discord;
|
||||
import com.massivecraft.factions.event.FPlayerEnteredFactionEvent;
|
||||
import com.massivecraft.factions.event.FPlayerJoinEvent;
|
||||
@ -924,6 +925,10 @@ public class FactionsPlayerListener implements Listener {
|
||||
handler.cancelLogout(e.getPlayer());
|
||||
e.getPlayer().sendMessage(String.valueOf(TL.COMMAND_LOGOUT_MOVED));
|
||||
}
|
||||
if (CmdWild.waitingTeleport.containsKey(e.getPlayer())) {
|
||||
CmdWild.waitingTeleport.remove(e.getPlayer());
|
||||
FPlayers.getInstance().getByPlayer(e.getPlayer()).msg(TL.COMMAND_WILD_INTERUPTED);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
@ -935,6 +940,15 @@ public class FactionsPlayerListener implements Listener {
|
||||
handler.cancelLogout(player);
|
||||
player.sendMessage(String.valueOf(TL.COMMAND_LOGOUT_DAMAGE_TAKEN));
|
||||
}
|
||||
if (CmdWild.waitingTeleport.containsKey(player)) {
|
||||
CmdWild.waitingTeleport.remove(player);
|
||||
FPlayers.getInstance().getByPlayer(player).msg(TL.COMMAND_WILD_INTERUPTED);
|
||||
}
|
||||
if (CmdWild.teleporting.contains(player)) {
|
||||
if (!FactionsPlugin.getInstance().getConfig().getBoolean("Wild.FallDamage") && e.getCause() == EntityDamageEvent.DamageCause.FALL) {
|
||||
e.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -96,11 +96,12 @@ public class MissionGUI implements FactionGUI {
|
||||
if (configurationSection == null) {
|
||||
return;
|
||||
}
|
||||
ItemStack fillItem = XMaterial.matchXMaterial(configurationSection.getString("FillItem.Material")).parseItem();
|
||||
ItemMeta fillmeta = fillItem.getItemMeta();
|
||||
fillmeta.setDisplayName("");
|
||||
fillItem.setItemMeta(fillmeta);
|
||||
for (int fill = 0; fill < configurationSection.getInt("FillItem.Rows") * 9; ++fill) {
|
||||
ItemStack fillItem = new ItemStack(XMaterial.matchXMaterial(configurationSection.getString("FillItem.Material")).parseItem());
|
||||
ItemMeta meta = fillItem.getItemMeta();
|
||||
meta.setDisplayName("");
|
||||
fillItem.setItemMeta(meta);
|
||||
//Why were we generating a new itemstack per slot?????
|
||||
inventory.setItem(fill, fillItem);
|
||||
}
|
||||
for (String key : configurationSection.getKeys(false)) {
|
||||
|
@ -146,6 +146,7 @@ public enum Permission {
|
||||
COORD("coords"),
|
||||
SHOWCLAIMS("showclaims"),
|
||||
WARP("warp"),
|
||||
WILD("wild"),
|
||||
CHEST("chest");
|
||||
|
||||
public final String node;
|
||||
|
@ -651,13 +651,16 @@ public class FUpgradesGUI implements Listener {
|
||||
return fme.hasMoney(amt);
|
||||
}
|
||||
|
||||
private void takeMoney(FPlayer fme, int amt) {
|
||||
fme.takeMoney(amt);
|
||||
private boolean takeMoney(FPlayer fme, int amt) {
|
||||
if (fme.takeMoney(amt)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean upgradeItem(FPlayer fme, UpgradeType upgrade, int level, int cost) {
|
||||
if (hasMoney(fme, cost)) {
|
||||
takeMoney(fme, cost);
|
||||
if (!takeMoney(fme, cost)) {return false;}
|
||||
fme.getFaction().setUpgrade(upgrade, level);
|
||||
fme.getPlayer().closeInventory();
|
||||
return true;
|
||||
|
@ -1376,11 +1376,14 @@ public abstract class MemoryFPlayer implements FPlayer {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void takeMoney(int amt) {
|
||||
public boolean takeMoney(int amt) {
|
||||
if (hasMoney(amt)) {
|
||||
Economy econ = FactionsPlugin.getInstance().getEcon();
|
||||
econ.withdrawPlayer(getPlayer(), amt);
|
||||
sendMessage(TL.GENERIC_MONEYTAKE.toString().replace("{amount}", commas(amt)));
|
||||
if (econ.withdrawPlayer(getPlayer(), amt).transactionSuccess()) {
|
||||
sendMessage(TL.GENERIC_MONEYTAKE.toString().replace("{amount}", commas(amt)));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
@ -959,6 +959,13 @@ public enum TL {
|
||||
COMMAND_WARUNCLAIMALL_SUCCESS("You unclaimed ALL war zone land."),
|
||||
COMMAND_WARUNCLAIMALL_LOG("%1$s unclaimed all war zones."),
|
||||
|
||||
COMMAND_WILD_DESCRIPTION("Teleport to a random location"),
|
||||
COMMAND_WILD_WAIT("&c&l[!] &7Teleporting in %1$s"),
|
||||
COMMAND_WILD_SUCCESS("&c&l[!] &7Teleporting..."),
|
||||
COMMAND_WILD_INTERUPTED("&c&l[!] &7Teleport cancelled!"),
|
||||
COMMAND_WILD_FAILED("&c&l[!] &7Could not find a location to teleport you to!"),
|
||||
COMMAND_WILD_INPROGRESS("&c&l[!] &7You are already teleporting somewhere!"),
|
||||
|
||||
COMMAND_RULES_DISABLED_MSG("&cThis command is disabled!"),
|
||||
COMMAND_RULES_DESCRIPTION("set/remove/add rules!"),
|
||||
COMMAND_RULES_ADD_INVALIDARGS("Please include a rule!"),
|
||||
|
@ -1330,6 +1330,71 @@ Tntfill:
|
||||
enabled: true
|
||||
max-radius: 32
|
||||
max-amount: 64
|
||||
Wild:
|
||||
Enabled: true
|
||||
# Time to wait in seconds #
|
||||
Wait: 5
|
||||
# General GUI Settings #
|
||||
GUI:
|
||||
Name: 'Teleporter'
|
||||
Size: 9
|
||||
# Should the GUI fill empty spaces? #
|
||||
Fill: true
|
||||
FillMaterial: BLACK_STAINED_GLASS_PANE
|
||||
Zones:
|
||||
# You may create your own zones here please just follow the original format #
|
||||
Close:
|
||||
Range:
|
||||
MinX: -200
|
||||
MaxX: 200
|
||||
MinZ: -200
|
||||
MaxZ: 200
|
||||
Cost: 5000
|
||||
Material: IRON_INGOT
|
||||
Lore:
|
||||
- '&eTeleport to a random location close by'
|
||||
- '&e X &b-200 &f- &b200 &eZ &b-200 &f- &b200'
|
||||
- '&2&l&o$5000'
|
||||
Name: '&cLow Range'
|
||||
Slot: 1
|
||||
Medium:
|
||||
Range:
|
||||
MinX: -400
|
||||
MaxX: 400
|
||||
MinZ: -400
|
||||
MaxZ: 400
|
||||
Cost: 10000
|
||||
Material: GOLD_INGOT
|
||||
Lore:
|
||||
- '&eTeleport to a random location in a medium proximity'
|
||||
- '&e X &b-400 &f- &b400 &eZ &b-400 &f- &b400'
|
||||
- '&2&l&o$10000'
|
||||
Name: '&cMedium Range'
|
||||
Slot: 4
|
||||
Far:
|
||||
Range:
|
||||
MinX: -800
|
||||
MaxX: 800
|
||||
MinZ: -800
|
||||
MaxZ: 800
|
||||
Cost: 15000
|
||||
Material: DIAMOND
|
||||
Lore:
|
||||
- '&eTeleport to a random location far away'
|
||||
- '&e X &b-800 &f- &b800 &eZ &b-800 &f- &b800'
|
||||
- '&2&l&o$15000'
|
||||
Name: '&cHigh Range'
|
||||
Slot: 7
|
||||
# Settings that change how a player arrives to their random location #
|
||||
Arrival:
|
||||
# if FallDamage is false and the player is about to take fall damage while in the FallDamageWindow it will be denied #
|
||||
FallDamage: false
|
||||
# Window to revert fall damage in seconds #
|
||||
FallDamageWindow: 2
|
||||
SpawnAbove: true
|
||||
SpawnAboveBlocks: 10
|
||||
Effects:
|
||||
- 'NIGHT_VISION'
|
||||
|
||||
############################################################
|
||||
# +------------------------------------------------------+ #
|
||||
|
Loading…
Reference in New Issue
Block a user