This commit is contained in:
parent
e463925efd
commit
84dc304136
|
@ -19,6 +19,7 @@ import net.megavex.scoreboardlibrary.api.sidebar.component.animation.SidebarAnim
|
||||||
import net.megavex.scoreboardlibrary.api.team.ScoreboardTeam;
|
import net.megavex.scoreboardlibrary.api.team.ScoreboardTeam;
|
||||||
import net.megavex.scoreboardlibrary.api.team.TeamDisplay;
|
import net.megavex.scoreboardlibrary.api.team.TeamDisplay;
|
||||||
import net.megavex.scoreboardlibrary.api.team.TeamManager;
|
import net.megavex.scoreboardlibrary.api.team.TeamManager;
|
||||||
|
import net.megavex.scoreboardlibrary.api.team.enums.CollisionRule;
|
||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
@ -37,7 +38,9 @@ import org.bukkit.event.entity.PlayerDeathEvent;
|
||||||
import org.bukkit.event.player.*;
|
import org.bukkit.event.player.*;
|
||||||
import org.bukkit.inventory.EntityEquipment;
|
import org.bukkit.inventory.EntityEquipment;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
import org.bukkit.scheduler.BukkitTask;
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
import org.bukkit.scoreboard.Scoreboard;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import xyz.twovb.sgm.SGM;
|
import xyz.twovb.sgm.SGM;
|
||||||
import xyz.twovb.sgm.games.GameManager;
|
import xyz.twovb.sgm.games.GameManager;
|
||||||
|
@ -59,8 +62,10 @@ public class CTB implements Minigame {
|
||||||
private final UUID uuid;
|
private final UUID uuid;
|
||||||
private final ArrayList<Location> redBrickSpawns = new ArrayList<Location>();
|
private final ArrayList<Location> redBrickSpawns = new ArrayList<Location>();
|
||||||
private final ArrayList<Location> blueBrickSpawns = new ArrayList<Location>();
|
private final ArrayList<Location> blueBrickSpawns = new ArrayList<Location>();
|
||||||
private final ArrayList<Location> redSpawnArea = new ArrayList<Location>();
|
private Location redSpawnLocation;
|
||||||
private final ArrayList<Location> blueSpawnArea = new ArrayList<Location>();
|
private Location blueSpawnLocation;
|
||||||
|
// private final ArrayList<Location> redSpawnArea = new ArrayList<Location>();
|
||||||
|
// private final ArrayList<Location> blueSpawnArea = new ArrayList<Location>();
|
||||||
private final ArrayList<Player> players = new ArrayList<Player>();
|
private final ArrayList<Player> players = new ArrayList<Player>();
|
||||||
private final HashMap<Player, Location> playerLocationHashMap = new HashMap<>();
|
private final HashMap<Player, Location> playerLocationHashMap = new HashMap<>();
|
||||||
// tagger, tagged
|
// tagger, tagged
|
||||||
|
@ -74,13 +79,14 @@ public class CTB implements Minigame {
|
||||||
private GameState state;
|
private GameState state;
|
||||||
private int bricks;
|
private int bricks;
|
||||||
private int territoryLevel;
|
private int territoryLevel;
|
||||||
private int boundsLevel;
|
|
||||||
private Location spawnLoc;
|
private Location spawnLoc;
|
||||||
private TeamManager teamManager;
|
private TeamManager teamManager;
|
||||||
private Sidebar sb;
|
private Sidebar sb;
|
||||||
private SidebarAnimation<Component> headerAnimation;
|
private SidebarAnimation<Component> headerAnimation;
|
||||||
private ComponentSidebarLayout layout;
|
private ComponentSidebarLayout layout;
|
||||||
private CommandSender owner;
|
|
||||||
|
private int tagTime;
|
||||||
|
private int jailTime;
|
||||||
|
|
||||||
private int taskId;
|
private int taskId;
|
||||||
|
|
||||||
|
@ -99,7 +105,6 @@ public class CTB implements Minigame {
|
||||||
gameWorld = createGameWorld(world, uuid);
|
gameWorld = createGameWorld(world, uuid);
|
||||||
gameWorld.setAutoSave(false);
|
gameWorld.setAutoSave(false);
|
||||||
if (applyOptions(world)) {
|
if (applyOptions(world)) {
|
||||||
this.owner = owner;
|
|
||||||
this.teamManager = SGM.getInstance().getScoreboardLibrary().createTeamManager();
|
this.teamManager = SGM.getInstance().getScoreboardLibrary().createTeamManager();
|
||||||
this.redTeam = teamManager.createIfAbsent("red_team");
|
this.redTeam = teamManager.createIfAbsent("red_team");
|
||||||
this.blueTeam = teamManager.createIfAbsent("blue_team");
|
this.blueTeam = teamManager.createIfAbsent("blue_team");
|
||||||
|
@ -200,10 +205,14 @@ public class CTB implements Minigame {
|
||||||
public void start(CommandSender sender) {
|
public void start(CommandSender sender) {
|
||||||
if (checkStart(sender)) {
|
if (checkStart(sender)) {
|
||||||
for (Player player : players) {
|
for (Player player : players) {
|
||||||
|
player.getInventory().clear();
|
||||||
player.teleport(this.spawnLoc);
|
player.teleport(this.spawnLoc);
|
||||||
sb.addPlayer(player);
|
sb.addPlayer(player);
|
||||||
player.setGameMode(GameMode.ADVENTURE);
|
player.setGameMode(GameMode.ADVENTURE);
|
||||||
playerStateMap.put(player, CtbData.PlayerState.Free);
|
playerStateMap.put(player, CtbData.PlayerState.Free);
|
||||||
|
for (ScoreboardTeam teams : teamManager.teams()) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for (int i = 0; i <= this.bricks - 1; i++) {
|
for (int i = 0; i <= this.bricks - 1; i++) {
|
||||||
placeBrick(redBrickSpawns.get(i), redTeam);
|
placeBrick(redBrickSpawns.get(i), redTeam);
|
||||||
|
@ -332,7 +341,7 @@ public class CTB implements Minigame {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void releasePlayer(Player tagged, Player tagger) {
|
private void releasePlayer(Player tagged, Player tagger) {
|
||||||
playerStateMap.replace(tagger, CtbData.PlayerState.Tagging, CtbData.PlayerState.Free);
|
playerStateMap.replace(tagger, CtbData.PlayerState.Tagging, CtbData.PlayerState.Invulnerable);
|
||||||
playerStateMap.replace(tagged, CtbData.PlayerState.Tagged, CtbData.PlayerState.Invulnerable);
|
playerStateMap.replace(tagged, CtbData.PlayerState.Tagged, CtbData.PlayerState.Invulnerable);
|
||||||
CustomPlayer cTagged = new CustomPlayer(tagged);
|
CustomPlayer cTagged = new CustomPlayer(tagged);
|
||||||
CustomPlayer cTagger = new CustomPlayer(tagger);
|
CustomPlayer cTagger = new CustomPlayer(tagger);
|
||||||
|
@ -394,6 +403,7 @@ public class CTB implements Minigame {
|
||||||
} else if (team.equals(blueTeam)) {
|
} else if (team.equals(blueTeam)) {
|
||||||
jail = blueJail;
|
jail = blueJail;
|
||||||
}
|
}
|
||||||
|
|
||||||
CtbData.Territory territory = getTerritory(tagger);
|
CtbData.Territory territory = getTerritory(tagger);
|
||||||
|
|
||||||
Player tagged = taggedPlayerHashMap.get(tagger);
|
Player tagged = taggedPlayerHashMap.get(tagger);
|
||||||
|
@ -449,6 +459,14 @@ public class CTB implements Minigame {
|
||||||
Player tagger = event.getTagger();
|
Player tagger = event.getTagger();
|
||||||
if (this.state != GameState.STARTED) return;
|
if (this.state != GameState.STARTED) return;
|
||||||
if (!players.contains(tagged) || !players.contains(tagger)) return;
|
if (!players.contains(tagged) || !players.contains(tagger)) return;
|
||||||
|
if (playerStateMap.get(tagged) == CtbData.PlayerState.Stealing) {
|
||||||
|
ScoreboardTeam team = getTeam(tagged);
|
||||||
|
if (team == redTeam) {
|
||||||
|
placeBrick(tagged.getLocation(), blueTeam);
|
||||||
|
} else if (team == blueTeam) {
|
||||||
|
placeBrick(tagged.getLocation(), redTeam);
|
||||||
|
}
|
||||||
|
}
|
||||||
taggedPlayerHashMap.putIfAbsent(tagger, tagged);
|
taggedPlayerHashMap.putIfAbsent(tagger, tagged);
|
||||||
CustomPlayer cTagged = new CustomPlayer(tagged);
|
CustomPlayer cTagged = new CustomPlayer(tagged);
|
||||||
CustomPlayer cTagger = new CustomPlayer(tagger);
|
CustomPlayer cTagger = new CustomPlayer(tagger);
|
||||||
|
@ -460,6 +478,18 @@ public class CTB implements Minigame {
|
||||||
armorStandEntity.setSmall(true);
|
armorStandEntity.setSmall(true);
|
||||||
tagger.addPassenger(armorStandEntity);
|
tagger.addPassenger(armorStandEntity);
|
||||||
armorStandEntity.addPassenger(tagged);
|
armorStandEntity.addPassenger(tagged);
|
||||||
|
new BukkitRunnable() {
|
||||||
|
private int seconds = 0;
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
if (seconds > tagTime) {
|
||||||
|
tagger.sendMessage("out of time");
|
||||||
|
} else {
|
||||||
|
tagger.sendMessage(String.valueOf(tagTime));
|
||||||
|
seconds++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.runTaskTimer(SGM.getInstance(), 0, 20L);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
@ -577,17 +607,26 @@ public class CTB implements Minigame {
|
||||||
Player brickTaker = event.getPlayer();
|
Player brickTaker = event.getPlayer();
|
||||||
if (!(rightClicked instanceof ArmorStand)) return;
|
if (!(rightClicked instanceof ArmorStand)) return;
|
||||||
if (!players.contains(brickTaker)) return;
|
if (!players.contains(brickTaker)) return;
|
||||||
SGM.getInstance().getCLogger().log(rightClicked);
|
EntityEquipment equipment = ((ArmorStand) rightClicked).getEquipment();
|
||||||
SGM.getInstance().getCLogger().log(brickTaker);
|
Material brickMaterial = null;
|
||||||
|
if (equipment.getHelmet().getType().equals(Material.RED_WOOL)) {
|
||||||
|
brickMaterial = Material.RED_WOOL;
|
||||||
|
} else if (equipment.getHelmet().getType().equals(Material.BLUE_WOOL)) {
|
||||||
|
brickMaterial = Material.BLUE_WOOL;
|
||||||
|
}
|
||||||
ScoreboardTeam taggerTeam = getTeam(brickTaker);
|
ScoreboardTeam taggerTeam = getTeam(brickTaker);
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
CtbData.Territory territory = getTerritory(brickTaker);
|
CtbData.Territory territory = getTerritory(brickTaker);
|
||||||
if (territory == CtbData.Territory.Blue && taggerTeam == blueTeam) return;
|
if (territory == CtbData.Territory.Blue && taggerTeam == blueTeam) return;
|
||||||
if (territory == CtbData.Territory.Red && taggerTeam == redTeam) return;
|
if (territory == CtbData.Territory.Red && taggerTeam == redTeam) return;
|
||||||
if (playerStateMap.get(brickTaker) != CtbData.PlayerState.Free) return;
|
if (playerStateMap.get(brickTaker) != CtbData.PlayerState.Free) return;
|
||||||
|
if (brickMaterial != null) return;
|
||||||
playerStateMap.replace(brickTaker, CtbData.PlayerState.Free, CtbData.PlayerState.Stealing);
|
playerStateMap.replace(brickTaker, CtbData.PlayerState.Free, CtbData.PlayerState.Stealing);
|
||||||
|
EntityEquipment playerEquipment = event.getPlayer().getEquipment();
|
||||||
|
playerEquipment.setHelmet(new ItemStack(brickMaterial));
|
||||||
PlayerStealBrickEvent playerStealBrickEvent = new PlayerStealBrickEvent(brickTaker);
|
PlayerStealBrickEvent playerStealBrickEvent = new PlayerStealBrickEvent(brickTaker);
|
||||||
playerStealBrickEvent.callEvent();
|
playerStealBrickEvent.callEvent();
|
||||||
|
rightClicked.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addPlayerToJail(Player player) {
|
public void addPlayerToJail(Player player) {
|
||||||
|
@ -645,8 +684,10 @@ public class CTB implements Minigame {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removePlayerFromTeams(Player player) {
|
public void removePlayerFromTeams(Player player) {
|
||||||
getTeam(player).defaultDisplay().removeEntry(player.getName());
|
if (getTeam(player) != null) {
|
||||||
this.teamManager.removePlayer(player);
|
getTeam(player).defaultDisplay().removeEntry(player.getName());
|
||||||
|
this.teamManager.removePlayer(player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ScoreboardTeam getTeam(Player player) {
|
public ScoreboardTeam getTeam(Player player) {
|
||||||
|
@ -664,28 +705,18 @@ public class CTB implements Minigame {
|
||||||
Entity brickEntity = gameWorld.spawnEntity(brickSpawnLoc, EntityType.ARMOR_STAND);
|
Entity brickEntity = gameWorld.spawnEntity(brickSpawnLoc, EntityType.ARMOR_STAND);
|
||||||
ArmorStand armorStand = (ArmorStand) brickEntity;
|
ArmorStand armorStand = (ArmorStand) brickEntity;
|
||||||
EntityEquipment armorEquipment = armorStand.getEquipment();
|
EntityEquipment armorEquipment = armorStand.getEquipment();
|
||||||
// armorStand.setInvisible(true);
|
// TODO: make sure the children cannot uneqip the wool :sob:
|
||||||
if (team.equals(redTeam)) {
|
if (team.equals(redTeam)) {
|
||||||
armorEquipment.setHelmet(new ItemStack(Material.RED_WOOL));
|
armorEquipment.setHelmet(new ItemStack(Material.RED_WOOL));
|
||||||
} else if (team.equals(blueTeam)) {
|
} else if (team.equals(blueTeam)) {
|
||||||
armorEquipment.setHelmet(new ItemStack(Material.BLUE_WOOL));
|
armorEquipment.setHelmet(new ItemStack(Material.BLUE_WOOL));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Entity brickEntity = gameWorld.spawnEntity(brickSpawnLoc, EntityType.BLOCK_DISPLAY);
|
|
||||||
// BlockDisplay brickDisplay = (BlockDisplay) brickEntity;
|
|
||||||
// if (team.equals(redTeam)) {
|
|
||||||
// brickDisplay.setBlock(Material.RED_WOOL.createBlockData());
|
|
||||||
// } else if (team.equals(blueTeam)) {
|
|
||||||
// brickDisplay.setBlock(Material.BLUE_WOOL.createBlockData());
|
|
||||||
// }
|
|
||||||
// Transformation transformation = brickDisplay.getTransformation();
|
|
||||||
// transformation.getScale().set(0.5f);
|
|
||||||
// brickDisplay.setTransformation(transformation);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupTeamDisplay(ScoreboardTeam team, String displayName, NamedTextColor color) {
|
private void setupTeamDisplay(ScoreboardTeam team, String displayName, NamedTextColor color) {
|
||||||
TeamDisplay display = team.defaultDisplay();
|
TeamDisplay display = team.defaultDisplay();
|
||||||
display.displayName(Component.text(displayName));
|
display.displayName(Component.text(displayName));
|
||||||
|
display.collisionRule(CollisionRule.NEVER);
|
||||||
display.playerColor(color);
|
display.playerColor(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -755,8 +786,9 @@ public class CTB implements Minigame {
|
||||||
if (mapInfoSection != null) {
|
if (mapInfoSection != null) {
|
||||||
this.bricks = mapInfoSection.getInt("brickCount");
|
this.bricks = mapInfoSection.getInt("brickCount");
|
||||||
this.territoryLevel = mapInfoSection.getInt("territory");
|
this.territoryLevel = mapInfoSection.getInt("territory");
|
||||||
this.boundsLevel = mapInfoSection.getInt("boundary");
|
|
||||||
this.spawnLoc = parseString(mapInfoSection.getString("spawn"));
|
this.spawnLoc = parseString(mapInfoSection.getString("spawn"));
|
||||||
|
this.jailTime = mapInfoSection.getInt("jailTime");
|
||||||
|
this.tagTime = mapInfoSection.getInt("tagTime");
|
||||||
} else {
|
} else {
|
||||||
SGM.getInstance().getCLogger().error("Invalid map info. Please fix before trying again.");
|
SGM.getInstance().getCLogger().error("Invalid map info. Please fix before trying again.");
|
||||||
return false;
|
return false;
|
||||||
|
@ -770,12 +802,13 @@ public class CTB implements Minigame {
|
||||||
ConfigurationSection teamConfig = config.getConfigurationSection("teams." + teamName);
|
ConfigurationSection teamConfig = config.getConfigurationSection("teams." + teamName);
|
||||||
if (teamConfig != null) {
|
if (teamConfig != null) {
|
||||||
List<String> brickSpawns = teamConfig.getStringList("brickSpawns");
|
List<String> brickSpawns = teamConfig.getStringList("brickSpawns");
|
||||||
List<String> playerSpawnArea = teamConfig.getStringList("playerSpawnArea");
|
|
||||||
|
|
||||||
if (team.equals(CtbData.Teams.Red)) {
|
if (team.equals(CtbData.Teams.Red)) {
|
||||||
this.redJail = parseString(teamConfig.getString("jail"));
|
this.redJail = parseString(teamConfig.getString("jail"));
|
||||||
|
this.redSpawnLocation = parseString(teamConfig.getString("playerSpawn"));
|
||||||
} else if (team.equals(CtbData.Teams.Blue)) {
|
} else if (team.equals(CtbData.Teams.Blue)) {
|
||||||
this.blueJail = parseString(teamConfig.getString("jail"));
|
this.blueJail = parseString(teamConfig.getString("jail"));
|
||||||
|
this.blueSpawnLocation = parseString(teamConfig.getString("playerSpawn"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get brick locations
|
// Get brick locations
|
||||||
|
@ -792,21 +825,6 @@ public class CTB implements Minigame {
|
||||||
SGM.getInstance().getCLogger().error("Invalid brick spawns. Please fix before trying again.");
|
SGM.getInstance().getCLogger().error("Invalid brick spawns. Please fix before trying again.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hopefully that works!
|
|
||||||
if (playerSpawnArea.size() == 2) {
|
|
||||||
for (String rawSpawnLoc : playerSpawnArea) {
|
|
||||||
Location spawnLoc = parseString(rawSpawnLoc);
|
|
||||||
if (team.equals(CtbData.Teams.Red)) {
|
|
||||||
this.redSpawnArea.add(spawnLoc);
|
|
||||||
} else if (team.equals(CtbData.Teams.Blue)) {
|
|
||||||
this.blueSpawnArea.add(spawnLoc);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
SGM.getInstance().getCLogger().error("Invalid spawn area. Please fix before trying again.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
SGM.getInstance().getCLogger().error("Invalid teams. Please fix before trying again.");
|
SGM.getInstance().getCLogger().error("Invalid teams. Please fix before trying again.");
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -7,7 +7,7 @@ public class CtbData {
|
||||||
|
|
||||||
public enum PlayerState {
|
public enum PlayerState {
|
||||||
Free(""),
|
Free(""),
|
||||||
Stealing("<yellow>⚠<bold>ʙᴇ ᴄᴀʀᴇꜰᴜʟ! ʏᴏᴜ ʜᴀᴠᴇ ᴀ ʙʀɪᴄᴋ</bold>⚠"),
|
Stealing("<yellow>⚠<bold> ʙᴇ ᴄᴀʀᴇꜰᴜʟ! ʏᴏᴜ ʜᴀᴠᴇ ᴀ ʙʀɪᴄᴋ ⚠"),
|
||||||
Invulnerable("<gray><bold>ɢᴏ ʙᴀᴄᴋ ᴛᴏ ɴᴇᴜᴛʀᴀʟ!"),
|
Invulnerable("<gray><bold>ɢᴏ ʙᴀᴄᴋ ᴛᴏ ɴᴇᴜᴛʀᴀʟ!"),
|
||||||
Tagging("<gray><bold>ʏᴏᴜ ᴀʀᴇ ᴛᴀɢɢɪɴɢ: %player%"),
|
Tagging("<gray><bold>ʏᴏᴜ ᴀʀᴇ ᴛᴀɢɢɪɴɢ: %player%"),
|
||||||
Tagged("<red><bold>ʏᴏᴜ ᴀʀᴇ ᴄᴜʀʀᴇɴᴛʟʏ ᴛᴀɢɢᴇᴅ!"),
|
Tagged("<red><bold>ʏᴏᴜ ᴀʀᴇ ᴄᴜʀʀᴇɴᴛʟʏ ᴛᴀɢɢᴇᴅ!"),
|
||||||
|
|
|
@ -15,7 +15,7 @@ system:
|
||||||
notify: "&7You have been tagged! %player% now has 25 seconds to take you to Jail or you will be freed!"
|
notify: "&7You have been tagged! %player% now has 25 seconds to take you to Jail or you will be freed!"
|
||||||
info: "&7You have tagged %player%! You have 25 seconds to take them to Jail! Crouch if you would like to set them free."
|
info: "&7You have tagged %player%! You have 25 seconds to take them to Jail! Crouch if you would like to set them free."
|
||||||
released:
|
released:
|
||||||
notify: "&7You have released %player%!"
|
notify: "&7You have released %player%! You must head back to Neutral before you can do anything."
|
||||||
info: "&7%player% let you free! You must head back to Neutral before you can do anything."
|
info: "&7%player% let you free! You must head back to Neutral before you can do anything."
|
||||||
full: "&7You have returned to Neutral. You can now get back to the game!"
|
full: "&7You have returned to Neutral. You can now get back to the game!"
|
||||||
brick:
|
brick:
|
||||||
|
|
|
@ -8,19 +8,15 @@ teams:
|
||||||
brickSpawns:
|
brickSpawns:
|
||||||
- 0,0,0
|
- 0,0,0
|
||||||
- 0,0,0
|
- 0,0,0
|
||||||
# The "y" coordinate does not matter for this value,
|
playerSpawn: 0,0,0
|
||||||
# it will always teleport the player to the highest block.
|
|
||||||
playerSpawnArea:
|
|
||||||
- 0,0,0
|
|
||||||
- 0,0,0
|
|
||||||
jail: 0,0,0
|
jail: 0,0,0
|
||||||
|
tagTime: 25
|
||||||
|
jailTime: 25
|
||||||
blue:
|
blue:
|
||||||
brickSpawns:
|
brickSpawns:
|
||||||
- 0,0,0
|
- 0,0,0
|
||||||
- 0,0,0
|
- 0,0,0
|
||||||
# The "y" coordinate does not matter for this value,
|
playerSpawn: 0,0,0
|
||||||
# it will always teleport the player to the highest block.
|
|
||||||
playerSpawnArea:
|
|
||||||
- 0,0,0
|
|
||||||
- 0,0,0
|
|
||||||
jail: 0,0,0
|
jail: 0,0,0
|
||||||
|
tagTime: 25
|
||||||
|
jailTime: 25
|
Loading…
Reference in New Issue
Block a user