Merge pull request '1.7.5' (#10) from dev into main
Reviewed-on: https://g.tylerm.dev/tylermurphy534/KenshinsHideAndSeek/pulls/10
This commit is contained in:
commit
a2ea5a635e
100 changed files with 1362 additions and 965 deletions
34
.project
Normal file
34
.project
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>KenshinsHideAndSeek</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||||
|
</natures>
|
||||||
|
<filteredResources>
|
||||||
|
<filter>
|
||||||
|
<id>1690577727676</id>
|
||||||
|
<name></name>
|
||||||
|
<type>30</type>
|
||||||
|
<matcher>
|
||||||
|
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
||||||
|
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
||||||
|
</matcher>
|
||||||
|
</filter>
|
||||||
|
</filteredResources>
|
||||||
|
</projectDescription>
|
8
pom.xml
8
pom.xml
|
@ -1,7 +1,7 @@
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion>
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>net.tylermurphy</groupId>
|
<groupId>dev.tylerm</groupId>
|
||||||
<artifactId>KenshinsHideAndSeek</artifactId>
|
<artifactId>KenshinsHideAndSeek</artifactId>
|
||||||
<version>1.7.4</version>
|
<version>1.7.5</version>
|
||||||
<name>Hide and Seek Plugin</name>
|
<name>Hide and Seek Plugin</name>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
@ -27,11 +27,11 @@
|
||||||
<relocations>
|
<relocations>
|
||||||
<relocation>
|
<relocation>
|
||||||
<pattern>com.cryptomorin.xseries</pattern>
|
<pattern>com.cryptomorin.xseries</pattern>
|
||||||
<shadedPattern>net.tylermurphy.dependencies.xseries</shadedPattern>
|
<shadedPattern>dev.tylerm.depend.xseries</shadedPattern>
|
||||||
</relocation>
|
</relocation>
|
||||||
<relocation>
|
<relocation>
|
||||||
<pattern>com.zaxxer.hikari</pattern>
|
<pattern>com.zaxxer.hikari</pattern>
|
||||||
<shadedPattern>net.tylermurphy.dependencies.hikari</shadedPattern>
|
<shadedPattern>dev.tylerm.depend.hikari</shadedPattern>
|
||||||
</relocation>
|
</relocation>
|
||||||
</relocations>
|
</relocations>
|
||||||
<artifactSet>
|
<artifactSet>
|
||||||
|
|
|
@ -1,18 +1,24 @@
|
||||||
package net.tylermurphy.hideAndSeek;
|
package dev.tylerm.khs;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.command.*;
|
import dev.tylerm.khs.command.*;
|
||||||
import net.tylermurphy.hideAndSeek.command.map.*;
|
import dev.tylerm.khs.command.map.Debug;
|
||||||
import net.tylermurphy.hideAndSeek.command.map.blockhunt.Enabled;
|
import dev.tylerm.khs.command.map.GoTo;
|
||||||
import net.tylermurphy.hideAndSeek.command.map.set.*;
|
import dev.tylerm.khs.command.map.Save;
|
||||||
import net.tylermurphy.hideAndSeek.command.world.Create;
|
import dev.tylerm.khs.command.map.blockhunt.blocks.Add;
|
||||||
import net.tylermurphy.hideAndSeek.command.world.Delete;
|
import dev.tylerm.khs.command.map.blockhunt.blocks.List;
|
||||||
import net.tylermurphy.hideAndSeek.command.world.Tp;
|
import dev.tylerm.khs.command.map.blockhunt.blocks.Remove;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.*;
|
import dev.tylerm.khs.command.map.set.*;
|
||||||
import net.tylermurphy.hideAndSeek.database.Database;
|
import dev.tylerm.khs.configuration.*;
|
||||||
import net.tylermurphy.hideAndSeek.game.*;
|
import dev.tylerm.khs.game.*;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.CommandGroup;
|
import dev.tylerm.khs.game.listener.*;
|
||||||
import net.tylermurphy.hideAndSeek.game.listener.*;
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import net.tylermurphy.hideAndSeek.util.PAPIExpansion;
|
import dev.tylerm.khs.util.PAPIExpansion;
|
||||||
|
import dev.tylerm.khs.command.map.blockhunt.Enabled;
|
||||||
|
import dev.tylerm.khs.command.world.Create;
|
||||||
|
import dev.tylerm.khs.command.world.Delete;
|
||||||
|
import dev.tylerm.khs.command.world.Tp;
|
||||||
|
import dev.tylerm.khs.database.Database;
|
||||||
|
import dev.tylerm.khs.command.util.CommandGroup;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
@ -27,8 +33,8 @@ import java.util.Arrays;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
import static dev.tylerm.khs.configuration.Config.*;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class Main extends JavaPlugin implements Listener {
|
public class Main extends JavaPlugin implements Listener {
|
||||||
|
|
||||||
|
@ -94,9 +100,9 @@ public class Main extends JavaPlugin implements Listener {
|
||||||
new CommandGroup("map",
|
new CommandGroup("map",
|
||||||
new CommandGroup("blockhunt",
|
new CommandGroup("blockhunt",
|
||||||
new CommandGroup("blocks",
|
new CommandGroup("blocks",
|
||||||
new net.tylermurphy.hideAndSeek.command.map.blockhunt.blocks.Add(),
|
new Add(),
|
||||||
new net.tylermurphy.hideAndSeek.command.map.blockhunt.blocks.Remove(),
|
new Remove(),
|
||||||
new net.tylermurphy.hideAndSeek.command.map.blockhunt.blocks.List()
|
new List()
|
||||||
),
|
),
|
||||||
new Enabled()
|
new Enabled()
|
||||||
),
|
),
|
||||||
|
@ -107,10 +113,13 @@ public class Main extends JavaPlugin implements Listener {
|
||||||
new Border(),
|
new Border(),
|
||||||
new Bounds()
|
new Bounds()
|
||||||
),
|
),
|
||||||
new Add(),
|
new CommandGroup("unset",
|
||||||
new Remove(),
|
new dev.tylerm.khs.command.map.unset.Border()
|
||||||
new List(),
|
),
|
||||||
new Status(),
|
new dev.tylerm.khs.command.map.Add(),
|
||||||
|
new dev.tylerm.khs.command.map.Remove(),
|
||||||
|
new dev.tylerm.khs.command.map.List(),
|
||||||
|
new dev.tylerm.khs.command.map.Status(),
|
||||||
new Save(),
|
new Save(),
|
||||||
new Debug(),
|
new Debug(),
|
||||||
new GoTo()
|
new GoTo()
|
||||||
|
@ -118,7 +127,7 @@ public class Main extends JavaPlugin implements Listener {
|
||||||
new CommandGroup("world",
|
new CommandGroup("world",
|
||||||
new Create(),
|
new Create(),
|
||||||
new Delete(),
|
new Delete(),
|
||||||
new net.tylermurphy.hideAndSeek.command.world.List(),
|
new dev.tylerm.khs.command.world.List(),
|
||||||
new Tp()
|
new Tp()
|
||||||
),
|
),
|
||||||
new SetExitLocation(),
|
new SetExitLocation(),
|
||||||
|
@ -170,7 +179,7 @@ public class Main extends JavaPlugin implements Listener {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onTick() {
|
private void onTick() {
|
||||||
if(game.getStatus() == net.tylermurphy.hideAndSeek.game.util.Status.ENDED) game = new Game(game.getCurrentMap(), board);
|
if(game.getStatus() == Status.ENDED) game = new Game(game.getCurrentMap(), board);
|
||||||
game.onTick();
|
game.onTick();
|
||||||
disguiser.check();
|
disguiser.check();
|
||||||
}
|
}
|
|
@ -1,14 +1,14 @@
|
||||||
package net.tylermurphy.hideAndSeek.command;
|
package dev.tylerm.khs.command;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
import static dev.tylerm.khs.configuration.Config.errorPrefix;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class Confirm implements ICommand {
|
public class Confirm implements ICommand {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package net.tylermurphy.hideAndSeek.command;
|
package dev.tylerm.khs.command;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.util.Pair;
|
import dev.tylerm.khs.util.Pair;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -11,8 +11,8 @@ import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
import static dev.tylerm.khs.configuration.Config.errorPrefix;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class Help implements ICommand {
|
public class Help implements ICommand {
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
package net.tylermurphy.hideAndSeek.command;
|
package dev.tylerm.khs.command;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
import static dev.tylerm.khs.configuration.Config.errorPrefix;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class Join implements ICommand {
|
public class Join implements ICommand {
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
package net.tylermurphy.hideAndSeek.command;
|
package dev.tylerm.khs.command;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
import static dev.tylerm.khs.configuration.Config.errorPrefix;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class Leave implements ICommand {
|
public class Leave implements ICommand {
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
package net.tylermurphy.hideAndSeek.command;
|
package dev.tylerm.khs.command;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.*;
|
import dev.tylerm.khs.configuration.*;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
import static dev.tylerm.khs.configuration.Config.errorPrefix;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.messagePrefix;
|
import static dev.tylerm.khs.configuration.Config.messagePrefix;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class Reload implements ICommand {
|
public class Reload implements ICommand {
|
||||||
|
|
|
@ -1,41 +1,40 @@
|
||||||
package net.tylermurphy.hideAndSeek.command;
|
package dev.tylerm.khs.command;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Send implements ICommand {
|
public class Send implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
|
|
||||||
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
||||||
sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("GAME_INPROGRESS"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Map map = Maps.getMap(args[0]);
|
Map map = Maps.getMap(args[0]);
|
||||||
if(map == null) {
|
if(map == null) {
|
||||||
sender.sendMessage(errorPrefix + message("INVALID_MAP"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(map.isNotSetup()){
|
if(map.isNotSetup()){
|
||||||
sender.sendMessage(errorPrefix + message("MAP_NOT_SETUP"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("MAP_NOT_SETUP"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Main.getInstance().getBoard().contains(sender)) {
|
if (!Main.getInstance().getBoard().contains(sender)) {
|
||||||
sender.sendMessage(errorPrefix + message("GAME_NOT_INGAME"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("GAME_NOT_INGAME"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,7 +60,7 @@ public class Send implements ICommand {
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().filter(map -> !map.isNotSetup()).map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().filter(map -> !map.isNotSetup()).map(Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
42
src/main/java/dev/tylerm/khs/command/SetExitLocation.java
Normal file
42
src/main/java/dev/tylerm/khs/command/SetExitLocation.java
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
package dev.tylerm.khs.command;
|
||||||
|
|
||||||
|
import dev.tylerm.khs.command.location.LocationUtils;
|
||||||
|
import dev.tylerm.khs.command.location.Locations;
|
||||||
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
|
import dev.tylerm.khs.configuration.Config;
|
||||||
|
import dev.tylerm.khs.util.Location;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class SetExitLocation implements ICommand {
|
||||||
|
|
||||||
|
public void execute(Player sender, String[] args) {
|
||||||
|
LocationUtils.setLocation(sender, Locations.EXIT, null, map -> {
|
||||||
|
Config.addToConfig("exit.x", sender.getLocation().getBlockX());
|
||||||
|
Config.addToConfig("exit.y", sender.getLocation().getBlockY());
|
||||||
|
Config.addToConfig("exit.z", sender.getLocation().getBlockZ());
|
||||||
|
Config.addToConfig("exit.world", sender.getLocation().getWorld().getName());
|
||||||
|
Config.exitPosition = Location.from(sender);
|
||||||
|
Config.saveConfig();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLabel() {
|
||||||
|
return "setexit";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUsage() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return "Sets the plugins exit location";
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
77
src/main/java/dev/tylerm/khs/command/Start.java
Normal file
77
src/main/java/dev/tylerm/khs/command/Start.java
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
package dev.tylerm.khs.command;
|
||||||
|
|
||||||
|
import dev.tylerm.khs.Main;
|
||||||
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static dev.tylerm.khs.configuration.Config.*;
|
||||||
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
|
public class Start implements ICommand {
|
||||||
|
|
||||||
|
public void execute(Player sender, String[] args) {
|
||||||
|
if (Main.getInstance().getGame().checkCurrentMap()) {
|
||||||
|
sender.sendMessage(errorPrefix + message("GAME_SETUP"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
||||||
|
sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!Main.getInstance().getBoard().contains(sender)) {
|
||||||
|
sender.sendMessage(errorPrefix + message("GAME_NOT_INGAME"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (Main.getInstance().getBoard().size() < minPlayers) {
|
||||||
|
sender.sendMessage(errorPrefix + message("START_MIN_PLAYERS").addAmount(minPlayers));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length < 1) {
|
||||||
|
Main.getInstance().getGame().start();
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
|
||||||
|
List<Player> initialSeekers = new ArrayList<>();
|
||||||
|
for (int i = 0; i < args.length; i++) {
|
||||||
|
Player seeker = Bukkit.getPlayer(args[i]);
|
||||||
|
if (seeker == null || !Main.getInstance().getBoard().contains(seeker) || initialSeekers.contains(seeker)) {
|
||||||
|
sender.sendMessage(errorPrefix + message("START_INVALID_NAME").addPlayer(args[i]));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
initialSeekers.add(seeker);
|
||||||
|
}
|
||||||
|
|
||||||
|
int minHiders = minPlayers - startingSeekerCount;
|
||||||
|
if (Main.getInstance().getBoard().size() - initialSeekers.size() < minHiders) {
|
||||||
|
sender.sendMessage(errorPrefix + message("START_MIN_PLAYERS").addAmount(minPlayers));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Main.getInstance().getGame().start(initialSeekers);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLabel() {
|
||||||
|
return "start";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUsage() {
|
||||||
|
return "<*seekers...>";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return "Starts the game either with a random set of seekers or a chosen list";
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
|
return Main.getInstance().getBoard().getPlayers().stream().map(Player::getName).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,16 +1,16 @@
|
||||||
package net.tylermurphy.hideAndSeek.command;
|
package dev.tylerm.khs.command;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.abortPrefix;
|
import static dev.tylerm.khs.configuration.Config.abortPrefix;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
import static dev.tylerm.khs.configuration.Config.errorPrefix;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class Stop implements ICommand {
|
public class Stop implements ICommand {
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package net.tylermurphy.hideAndSeek.command;
|
package dev.tylerm.khs.command;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.database.util.PlayerInfo;
|
import dev.tylerm.khs.database.util.PlayerInfo;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -10,8 +10,8 @@ import org.jetbrains.annotations.NotNull;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
import static dev.tylerm.khs.configuration.Config.errorPrefix;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class Top implements ICommand {
|
public class Top implements ICommand {
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package net.tylermurphy.hideAndSeek.command;
|
package dev.tylerm.khs.command;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.database.util.PlayerInfo;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
|
import dev.tylerm.khs.database.util.PlayerInfo;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -11,9 +13,6 @@ import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Wins implements ICommand {
|
public class Wins implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
|
@ -30,16 +29,16 @@ public class Wins implements ICommand {
|
||||||
uuid = Main.getInstance().getDatabase().getNameData().getUUID(args[0]);
|
uuid = Main.getInstance().getDatabase().getNameData().getUUID(args[0]);
|
||||||
}
|
}
|
||||||
if(uuid == null){
|
if(uuid == null){
|
||||||
sender.sendMessage(errorPrefix + message("START_INVALID_NAME").addPlayer(args[0]));
|
sender.sendMessage(Config.errorPrefix + Localization.message("START_INVALID_NAME").addPlayer(args[0]));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PlayerInfo info = Main.getInstance().getDatabase().getGameData().getInfo(uuid);
|
PlayerInfo info = Main.getInstance().getDatabase().getGameData().getInfo(uuid);
|
||||||
if (info == null) {
|
if (info == null) {
|
||||||
sender.sendMessage(errorPrefix + message("NO_GAME_INFO"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("NO_GAME_INFO"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String message = ChatColor.WHITE + "" + ChatColor.BOLD + "==============================\n";
|
String message = ChatColor.WHITE + "" + ChatColor.BOLD + "==============================\n";
|
||||||
message = message + message("INFORMATION_FOR").addPlayer(name) + "\n";
|
message = message + Localization.message("INFORMATION_FOR").addPlayer(name) + "\n";
|
||||||
message = message + "==============================\n";
|
message = message + "==============================\n";
|
||||||
message = message + String.format("%sTOTAL WINS: %s%s\n%sHIDER WINS: %s%s\n%sSEEKER WINS: %s%s\n%sGAMES PLAYED: %s",
|
message = message + String.format("%sTOTAL WINS: %s%s\n%sHIDER WINS: %s%s\n%sSEEKER WINS: %s%s\n%sGAMES PLAYED: %s",
|
||||||
ChatColor.YELLOW, ChatColor.WHITE, info.getSeekerWins() +info.getHiderWins(), ChatColor.GOLD, ChatColor.WHITE, info.getHiderWins(),
|
ChatColor.YELLOW, ChatColor.WHITE, info.getSeekerWins() +info.getHiderWins(), ChatColor.GOLD, ChatColor.WHITE, info.getHiderWins(),
|
|
@ -1,17 +1,16 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.location;
|
package dev.tylerm.khs.command.location;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author bobby29831
|
* @author bobby29831
|
||||||
*/
|
*/
|
||||||
|
@ -20,12 +19,12 @@ public class LocationUtils {
|
||||||
public static void setLocation(@NotNull Player player, @NotNull Locations place, String mapName, @NotNull Consumer<Map> consumer) {
|
public static void setLocation(@NotNull Player player, @NotNull Locations place, String mapName, @NotNull Consumer<Map> consumer) {
|
||||||
|
|
||||||
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
||||||
player.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
|
player.sendMessage(Config.errorPrefix + Localization.message("GAME_INPROGRESS"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player.getLocation().getBlockX() == 0 || player.getLocation().getBlockZ() == 0 || player.getLocation().getBlockY() == 0){
|
if (player.getLocation().getBlockX() == 0 || player.getLocation().getBlockZ() == 0 || player.getLocation().getBlockY() == 0){
|
||||||
player.sendMessage(errorPrefix + message("NOT_AT_ZERO"));
|
player.sendMessage(Config.errorPrefix + Localization.message("NOT_AT_ZERO"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,7 +32,7 @@ public class LocationUtils {
|
||||||
if(mapName != null) {
|
if(mapName != null) {
|
||||||
map = Maps.getMap(mapName);
|
map = Maps.getMap(mapName);
|
||||||
if (map == null) {
|
if (map == null) {
|
||||||
player.sendMessage(errorPrefix + message("INVALID_MAP"));
|
player.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,13 +40,13 @@ public class LocationUtils {
|
||||||
try {
|
try {
|
||||||
consumer.accept(map);
|
consumer.accept(map);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
player.sendMessage(errorPrefix + e.getMessage());
|
player.sendMessage(Config.errorPrefix + e.getMessage());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(map != null)
|
if(map != null)
|
||||||
Maps.setMap(mapName, map);
|
Maps.setMap(mapName, map);
|
||||||
player.sendMessage(messagePrefix + message(place.message()));
|
player.sendMessage(Config.messagePrefix + Localization.message(place.message()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.location;
|
package dev.tylerm.khs.command.location;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author bobby29831
|
* @author bobby29831
|
|
@ -1,35 +1,33 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map;
|
package dev.tylerm.khs.command.map;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.messagePrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Add implements ICommand {
|
public class Add implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
||||||
sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("GAME_INPROGRESS"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Map map = Maps.getMap(args[0]);
|
Map map = Maps.getMap(args[0]);
|
||||||
if(map != null) {
|
if(map != null) {
|
||||||
sender.sendMessage(errorPrefix + message("MAP_ALREADY_EXISTS"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("MAP_ALREADY_EXISTS"));
|
||||||
} else if(!args[0].matches("[a-zA-Z0-9]*") || args[0].length() < 1) {
|
} else if(!args[0].matches("[a-zA-Z0-9]*") || args[0].length() < 1) {
|
||||||
sender.sendMessage(errorPrefix + message("INVALID_MAP_NAME"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP_NAME"));
|
||||||
} else {
|
} else {
|
||||||
Maps.setMap(args[0], new Map(args[0]));
|
Maps.setMap(args[0], new Map(args[0]));
|
||||||
sender.sendMessage(messagePrefix + message("MAP_CREATED").addAmount(args[0]));
|
sender.sendMessage(Config.messagePrefix + Localization.message("MAP_CREATED").addAmount(args[0]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map;
|
package dev.tylerm.khs.command.map;
|
||||||
|
|
||||||
import com.cryptomorin.xseries.XMaterial;
|
import com.cryptomorin.xseries.XMaterial;
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.game.PlayerLoader;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
import dev.tylerm.khs.game.PlayerLoader;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -20,46 +22,43 @@ import java.util.Map;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Debug implements ICommand {
|
public class Debug implements ICommand {
|
||||||
|
|
||||||
private static final Map<Player, Map<Integer, Consumer<Player>>> debugMenuFunctions = new HashMap<>();
|
private static final Map<Player, Map<Integer, Consumer<Player>>> debugMenuFunctions = new HashMap<>();
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
net.tylermurphy.hideAndSeek.configuration.Map map = Maps.getMap(args[0]);
|
dev.tylerm.khs.configuration.Map map = Maps.getMap(args[0]);
|
||||||
if(map == null) {
|
if(map == null) {
|
||||||
sender.sendMessage(errorPrefix + message("INVALID_MAP"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Inventory debugMenu = createMenu(map, sender);
|
Inventory debugMenu = createMenu(map, sender);
|
||||||
sender.openInventory(debugMenu);
|
sender.openInventory(debugMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Inventory createMenu(net.tylermurphy.hideAndSeek.configuration.Map map, Player sender){
|
private Inventory createMenu(dev.tylerm.khs.configuration.Map map, Player sender){
|
||||||
Map<Integer, Consumer<Player>> functions = new HashMap<>();
|
Map<Integer, Consumer<Player>> functions = new HashMap<>();
|
||||||
Inventory debugMenu = Main.getInstance().getServer().createInventory(null, 9, "Debug Menu");
|
Inventory debugMenu = Main.getInstance().getServer().createInventory(null, 9, "Debug Menu");
|
||||||
debugMenu.setItem(0, createOption(functions, 0, XMaterial.LEATHER_CHESTPLATE.parseMaterial(), "&6Become a &lHider", 1, player -> {
|
debugMenu.setItem(0, createOption(functions, 0, XMaterial.LEATHER_CHESTPLATE.parseMaterial(), "&6Become a &lHider", 1, player -> {
|
||||||
if(mapSaveEnabled) {
|
if(Config.mapSaveEnabled) {
|
||||||
if(map.getGameSpawn().getWorld() == null) map.getWorldLoader().loadMap();
|
if(map.getGameSpawn().getWorld() == null) map.getWorldLoader().loadMap();
|
||||||
}
|
}
|
||||||
Main.getInstance().getBoard().addHider(player);
|
Main.getInstance().getBoard().addHider(player);
|
||||||
PlayerLoader.loadHider(player, map);
|
PlayerLoader.loadHider(player, map);
|
||||||
if(Main.getInstance().getGame().getStatus() != Status.STARTING)
|
if(Main.getInstance().getGame().getStatus() != dev.tylerm.khs.game.util.Status.STARTING)
|
||||||
PlayerLoader.resetPlayer(player, Main.getInstance().getBoard());
|
PlayerLoader.resetPlayer(player, Main.getInstance().getBoard());
|
||||||
}));
|
}));
|
||||||
debugMenu.setItem(1, createOption(functions, 1, XMaterial.GOLDEN_CHESTPLATE.parseMaterial(), "&cBecome a &lSeeker", 1, player -> {
|
debugMenu.setItem(1, createOption(functions, 1, XMaterial.GOLDEN_CHESTPLATE.parseMaterial(), "&cBecome a &lSeeker", 1, player -> {
|
||||||
if(mapSaveEnabled) {
|
if(Config.mapSaveEnabled) {
|
||||||
if(map.getGameSpawn().getWorld() == null) map.getWorldLoader().loadMap();
|
if(map.getGameSpawn().getWorld() == null) map.getWorldLoader().loadMap();
|
||||||
}
|
}
|
||||||
Main.getInstance().getBoard().addSeeker(player);
|
Main.getInstance().getBoard().addSeeker(player);
|
||||||
PlayerLoader.loadSeeker(player, map);
|
PlayerLoader.loadSeeker(player, map);
|
||||||
if(Main.getInstance().getGame().getStatus() != Status.STARTING)
|
if(Main.getInstance().getGame().getStatus() != dev.tylerm.khs.game.util.Status.STARTING)
|
||||||
PlayerLoader.resetPlayer(player, Main.getInstance().getBoard());
|
PlayerLoader.resetPlayer(player, Main.getInstance().getBoard());
|
||||||
}));
|
}));
|
||||||
debugMenu.setItem(2, createOption(functions, 2, XMaterial.IRON_CHESTPLATE.parseMaterial(), "&8Become a &lSpectator", 1, player -> {
|
debugMenu.setItem(2, createOption(functions, 2, XMaterial.IRON_CHESTPLATE.parseMaterial(), "&8Become a &lSpectator", 1, player -> {
|
||||||
if(mapSaveEnabled) {
|
if(Config.mapSaveEnabled) {
|
||||||
if(map.getGameSpawn().getWorld() == null) map.getWorldLoader().loadMap();
|
if(map.getGameSpawn().getWorld() == null) map.getWorldLoader().loadMap();
|
||||||
}
|
}
|
||||||
Main.getInstance().getBoard().addSpectator(player);
|
Main.getInstance().getBoard().addSpectator(player);
|
||||||
|
@ -68,7 +67,7 @@ public class Debug implements ICommand {
|
||||||
debugMenu.setItem(3, createOption(functions, 3, XMaterial.BARRIER.parseMaterial(), "&cUnload from Game", 1, player -> {
|
debugMenu.setItem(3, createOption(functions, 3, XMaterial.BARRIER.parseMaterial(), "&cUnload from Game", 1, player -> {
|
||||||
Main.getInstance().getBoard().remove(player);
|
Main.getInstance().getBoard().remove(player);
|
||||||
PlayerLoader.unloadPlayer(player);
|
PlayerLoader.unloadPlayer(player);
|
||||||
exitPosition.teleport(player);
|
Config.exitPosition.teleport(player);
|
||||||
}));
|
}));
|
||||||
debugMenu.setItem(4, createOption(functions, 4, XMaterial.BARRIER.parseMaterial(), "&cDie In Game", 2, player -> {
|
debugMenu.setItem(4, createOption(functions, 4, XMaterial.BARRIER.parseMaterial(), "&cDie In Game", 2, player -> {
|
||||||
if((Main.getInstance().getBoard().isSeeker(player) || Main.getInstance().getBoard().isHider(player)) && Main.getInstance().getGame().getStatus() == Status.PLAYING){
|
if((Main.getInstance().getBoard().isSeeker(player) || Main.getInstance().getBoard().isHider(player)) && Main.getInstance().getGame().getStatus() == Status.PLAYING){
|
||||||
|
@ -115,7 +114,7 @@ public class Debug implements ICommand {
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(dev.tylerm.khs.configuration.Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
|
@ -1,8 +1,10 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map;
|
package dev.tylerm.khs.command.map;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
@ -10,19 +12,16 @@ import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class GoTo implements ICommand {
|
public class GoTo implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
Map map = Maps.getMap(args[0]);
|
Map map = Maps.getMap(args[0]);
|
||||||
if(map == null) {
|
if(map == null) {
|
||||||
sender.sendMessage(errorPrefix + message("INVALID_MAP"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (map.isNotSetup()) {
|
if (map.isNotSetup()) {
|
||||||
sender.sendMessage(errorPrefix + message("MAP_NOT_SETUP").addAmount(map.getName()));
|
sender.sendMessage(Config.errorPrefix + Localization.message("MAP_NOT_SETUP").addAmount(map.getName()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
switch (args[1].toLowerCase()) {
|
switch (args[1].toLowerCase()) {
|
||||||
|
@ -33,9 +32,9 @@ public class GoTo implements ICommand {
|
||||||
case "seekerlobby":
|
case "seekerlobby":
|
||||||
map.getSeekerLobby().teleport(sender); break;
|
map.getSeekerLobby().teleport(sender); break;
|
||||||
case "exit":
|
case "exit":
|
||||||
exitPosition.teleport(sender); break;
|
Config.exitPosition.teleport(sender); break;
|
||||||
default:
|
default:
|
||||||
sender.sendMessage(errorPrefix + message("COMMAND_INVALID_ARG").addAmount(args[1].toLowerCase()));
|
sender.sendMessage(Config.errorPrefix + Localization.message("COMMAND_INVALID_ARG").addAmount(args[1].toLowerCase()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +52,7 @@ public class GoTo implements ICommand {
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(Map::getName).collect(Collectors.toList());
|
||||||
} else if(parameter.equals("spawn")) {
|
} else if(parameter.equals("spawn")) {
|
||||||
return Arrays.asList("spawn","lobby","seekerlobby","exit");
|
return Arrays.asList("spawn","lobby","seekerlobby","exit");
|
||||||
}
|
}
|
|
@ -1,27 +1,25 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map;
|
package dev.tylerm.khs.command.map;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.messagePrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class List implements ICommand {
|
public class List implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
Collection<Map> maps = Maps.getAllMaps();
|
Collection<Map> maps = Maps.getAllMaps();
|
||||||
if(maps.size() < 1) {
|
if(maps.size() < 1) {
|
||||||
sender.sendMessage(errorPrefix + message("NO_MAPS"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("NO_MAPS"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
StringBuilder response = new StringBuilder(messagePrefix + message("LIST_MAPS"));
|
StringBuilder response = new StringBuilder(Config.messagePrefix + Localization.message("LIST_MAPS"));
|
||||||
for(Map map : maps) {
|
for(Map map : maps) {
|
||||||
response.append("\n ").append(map.getName()).append(": ").append(map.isNotSetup() ? ChatColor.RED + "NOT SETUP" : ChatColor.GREEN + "SETUP").append(ChatColor.WHITE);
|
response.append("\n ").append(map.getName()).append(": ").append(map.isNotSetup() ? ChatColor.RED + "NOT SETUP" : ChatColor.GREEN + "SETUP").append(ChatColor.WHITE);
|
||||||
}
|
}
|
52
src/main/java/dev/tylerm/khs/command/map/Remove.java
Normal file
52
src/main/java/dev/tylerm/khs/command/map/Remove.java
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
package dev.tylerm.khs.command.map;
|
||||||
|
|
||||||
|
import dev.tylerm.khs.Main;
|
||||||
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
|
import dev.tylerm.khs.configuration.Config;
|
||||||
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
public class Remove implements ICommand {
|
||||||
|
|
||||||
|
public void execute(Player sender, String[] args) {
|
||||||
|
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
||||||
|
sender.sendMessage(Config.errorPrefix + Localization.message("GAME_INPROGRESS"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Map map = Maps.getMap(args[0]);
|
||||||
|
if(map == null) {
|
||||||
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP"));
|
||||||
|
} else if(!Maps.removeMap(args[0])){
|
||||||
|
sender.sendMessage(Config.errorPrefix + Localization.message("MAP_FAIL_DELETE").addAmount(args[0]));
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(Config.messagePrefix + Localization.message("MAP_DELETED").addAmount(args[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLabel() {
|
||||||
|
return "remove";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUsage() {
|
||||||
|
return "<map>";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return "Remove a map from the plugin!";
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
|
if(parameter.equals("map")) {
|
||||||
|
return Maps.getAllMaps().stream().map(Map::getName).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,10 +1,12 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map;
|
package dev.tylerm.khs.command.map;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
@ -13,40 +15,37 @@ import org.jetbrains.annotations.NotNull;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Save implements ICommand {
|
public class Save implements ICommand {
|
||||||
|
|
||||||
public static boolean runningBackup = false;
|
public static boolean runningBackup = false;
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
if (!mapSaveEnabled) {
|
if (!Config.mapSaveEnabled) {
|
||||||
sender.sendMessage(errorPrefix + message("MAPSAVE_DISABLED"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("MAPSAVE_DISABLED"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
||||||
sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("GAME_INPROGRESS"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Map map = Maps.getMap(args[0]);
|
Map map = Maps.getMap(args[0]);
|
||||||
if(map == null) {
|
if(map == null) {
|
||||||
sender.sendMessage(errorPrefix + message("INVALID_MAP"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (map.getSpawn().isNotSetup()) {
|
if (map.getSpawn().isNotSetup()) {
|
||||||
sender.sendMessage(errorPrefix + message("ERROR_GAME_SPAWN"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("ERROR_GAME_SPAWN"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (map.isBoundsNotSetup()) {
|
if (map.isBoundsNotSetup()) {
|
||||||
sender.sendMessage(errorPrefix + message("ERROR_MAP_BOUNDS"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("ERROR_MAP_BOUNDS"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sender.sendMessage(messagePrefix + message("MAPSAVE_START"));
|
sender.sendMessage(Config.messagePrefix + Localization.message("MAPSAVE_START"));
|
||||||
sender.sendMessage(warningPrefix + message("MAPSAVE_WARNING"));
|
sender.sendMessage(Config.warningPrefix + Localization.message("MAPSAVE_WARNING"));
|
||||||
World world = map.getSpawn().load();
|
World world = map.getSpawn().load();
|
||||||
if (world == null) {
|
if (world == null) {
|
||||||
sender.sendMessage(warningPrefix + message("MAPSAVE_FAIL_WORLD"));
|
sender.sendMessage(Config.warningPrefix + Localization.message("MAPSAVE_FAIL_WORLD"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
world.save();
|
world.save();
|
||||||
|
@ -76,7 +75,7 @@ public class Save implements ICommand {
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
|
@ -1,58 +1,57 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map;
|
package dev.tylerm.khs.command.map;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Status implements ICommand {
|
public class Status implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
|
|
||||||
String msg = message("SETUP").toString();
|
String msg = Localization.message("SETUP").toString();
|
||||||
int count = 0;
|
int count = 0;
|
||||||
Map map = Maps.getMap(args[0]);
|
Map map = Maps.getMap(args[0]);
|
||||||
if(map == null) {
|
if(map == null) {
|
||||||
sender.sendMessage(errorPrefix + message("INVALID_MAP"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (map.getSpawn().getBlockX() == 0 && map.getSpawn().getBlockY() == 0 && map.getSpawn().getBlockZ() == 0 || !map.getSpawn().exists()) {
|
if (map.getSpawn().getBlockX() == 0 && map.getSpawn().getBlockY() == 0 && map.getSpawn().getBlockZ() == 0 || !map.getSpawn().exists()) {
|
||||||
msg = msg + "\n" + message("SETUP_GAME");
|
msg = msg + "\n" + Localization.message("SETUP_GAME");
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
if (map.getLobby().getBlockX() == 0 && map.getLobby().getBlockY() == 0 && map.getLobby().getBlockZ() == 0 || !map.getLobby().exists()) {
|
if (map.getLobby().getBlockX() == 0 && map.getLobby().getBlockY() == 0 && map.getLobby().getBlockZ() == 0 || !map.getLobby().exists()) {
|
||||||
msg = msg + "\n" + message("SETUP_LOBBY");
|
msg = msg + "\n" + Localization.message("SETUP_LOBBY");
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
if (map.getSeekerLobby().getBlockX() == 0 && map.getSeekerLobby().getBlockY() == 0 && map.getSeekerLobby().getBlockZ() == 0 || !map.getSeekerLobby().exists()) {
|
if (map.getSeekerLobby().getBlockX() == 0 && map.getSeekerLobby().getBlockY() == 0 && map.getSeekerLobby().getBlockZ() == 0 || !map.getSeekerLobby().exists()) {
|
||||||
msg = msg + "\n" + message("SETUP_SEEKER_LOBBY");
|
msg = msg + "\n" + Localization.message("SETUP_SEEKER_LOBBY");
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
if (exitPosition.getBlockX() == 0 && exitPosition.getBlockY() == 0 && exitPosition.getBlockZ() == 0 || !exitPosition.exists()) {
|
if (Config.exitPosition.getBlockX() == 0 && Config.exitPosition.getBlockY() == 0 && Config.exitPosition.getBlockZ() == 0 || !Config.exitPosition.exists()) {
|
||||||
msg = msg + "\n" + message("SETUP_EXIT");
|
msg = msg + "\n" + Localization.message("SETUP_EXIT");
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
if (map.isBoundsNotSetup()) {
|
if (map.isBoundsNotSetup()) {
|
||||||
msg = msg + "\n" + message("SETUP_BOUNDS");
|
msg = msg + "\n" + Localization.message("SETUP_BOUNDS");
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
if (mapSaveEnabled && !map.getGameSpawn().exists()) {
|
if (Config.mapSaveEnabled && !map.getGameSpawn().exists()) {
|
||||||
msg = msg + "\n" + message("SETUP_SAVEMAP");
|
msg = msg + "\n" + Localization.message("SETUP_SAVEMAP");
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
if (map.isBlockHuntEnabled() && map.getBlockHunt().isEmpty()) {
|
if (map.isBlockHuntEnabled() && map.getBlockHunt().isEmpty()) {
|
||||||
msg = msg + "\n" + message("SETUP_BLOCKHUNT");
|
msg = msg + "\n" + Localization.message("SETUP_BLOCKHUNT");
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
if (count < 1) {
|
if (count < 1) {
|
||||||
sender.sendMessage(messagePrefix + message("SETUP_COMPLETE"));
|
sender.sendMessage(Config.messagePrefix + Localization.message("SETUP_COMPLETE"));
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage(msg);
|
sender.sendMessage(msg);
|
||||||
}
|
}
|
||||||
|
@ -72,7 +71,7 @@ public class Status implements ICommand {
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
|
@ -1,10 +1,12 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map.blockhunt;
|
package dev.tylerm.khs.command.map.blockhunt;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -13,30 +15,26 @@ import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.messagePrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Enabled implements ICommand {
|
public class Enabled implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
if (!Main.getInstance().supports(9)) {
|
if (!Main.getInstance().supports(9)) {
|
||||||
sender.sendMessage(errorPrefix + message("BLOCKHUNT_UNSUPPORTED"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("BLOCKHUNT_UNSUPPORTED"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
||||||
sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("GAME_INPROGRESS"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Map map = Maps.getMap(args[0]);
|
Map map = Maps.getMap(args[0]);
|
||||||
if(map == null) {
|
if(map == null) {
|
||||||
sender.sendMessage(errorPrefix + message("INVALID_MAP"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean bool = Boolean.parseBoolean(args[1]);
|
boolean bool = Boolean.parseBoolean(args[1]);
|
||||||
map.setBlockhunt(bool, map.getBlockHunt());
|
map.setBlockhunt(bool, map.getBlockHunt());
|
||||||
Maps.setMap(map.getName(), map);
|
Maps.setMap(map.getName(), map);
|
||||||
sender.sendMessage(messagePrefix + message("BLOCKHUNT_SET_TO")
|
sender.sendMessage(Config.messagePrefix + Localization.message("BLOCKHUNT_SET_TO")
|
||||||
.addAmount(bool ? ChatColor.GREEN + "true" : ChatColor.RED + "false") + ChatColor.WHITE);
|
.addAmount(bool ? ChatColor.GREEN + "true" : ChatColor.RED + "false") + ChatColor.WHITE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,7 +52,7 @@ public class Enabled implements ICommand {
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
if(parameter.equals("bool")) {
|
if(parameter.equals("bool")) {
|
||||||
return Arrays.asList("true", "false");
|
return Arrays.asList("true", "false");
|
|
@ -1,10 +1,12 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map.blockhunt.blocks;
|
package dev.tylerm.khs.command.map.blockhunt.blocks;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -13,40 +15,36 @@ import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.messagePrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Add implements ICommand {
|
public class Add implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
if (!Main.getInstance().supports(9)) {
|
if (!Main.getInstance().supports(9)) {
|
||||||
sender.sendMessage(errorPrefix + message("BLOCKHUNT_UNSUPPORTED"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("BLOCKHUNT_UNSUPPORTED"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
||||||
sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("GAME_INPROGRESS"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Map map = Maps.getMap(args[0]);
|
Map map = Maps.getMap(args[0]);
|
||||||
if(map == null) {
|
if(map == null) {
|
||||||
sender.sendMessage(errorPrefix + message("INVALID_MAP"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Material block;
|
Material block;
|
||||||
try { block = Material.valueOf(args[1]); }
|
try { block = Material.valueOf(args[1]); }
|
||||||
catch (IllegalArgumentException e) {
|
catch (IllegalArgumentException e) {
|
||||||
sender.sendMessage(errorPrefix + message("COMMAND_INVALID_ARG").addAmount(args[1]));
|
sender.sendMessage(Config.errorPrefix + Localization.message("COMMAND_INVALID_ARG").addAmount(args[1]));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<Material> blocks = map.getBlockHunt();
|
List<Material> blocks = map.getBlockHunt();
|
||||||
if(blocks.contains(block)) {
|
if(blocks.contains(block)) {
|
||||||
sender.sendMessage(errorPrefix + message("BLOCKHUNT_BLOCK_EXISTS").addAmount(args[1]));
|
sender.sendMessage(Config.errorPrefix + Localization.message("BLOCKHUNT_BLOCK_EXISTS").addAmount(args[1]));
|
||||||
}
|
}
|
||||||
blocks.add(block);
|
blocks.add(block);
|
||||||
map.setBlockhunt(map.isBlockHuntEnabled(), blocks);
|
map.setBlockhunt(map.isBlockHuntEnabled(), blocks);
|
||||||
Maps.setMap(map.getName(), map);
|
Maps.setMap(map.getName(), map);
|
||||||
sender.sendMessage(messagePrefix + message("BLOCKHUNT_BLOCK_ADDED").addAmount(args[1]));
|
sender.sendMessage(Config.messagePrefix + Localization.message("BLOCKHUNT_BLOCK_ADDED").addAmount(args[1]));
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLabel() {
|
public String getLabel() {
|
||||||
|
@ -63,7 +61,7 @@ public class Add implements ICommand {
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(Map::getName).collect(Collectors.toList());
|
||||||
} else if(parameter.equals("block")) {
|
} else if(parameter.equals("block")) {
|
||||||
return Arrays.stream(Material.values())
|
return Arrays.stream(Material.values())
|
||||||
.filter(Material::isBlock)
|
.filter(Material::isBlock)
|
|
@ -1,9 +1,11 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map.blockhunt.blocks;
|
package dev.tylerm.khs.command.map.blockhunt.blocks;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -11,28 +13,24 @@ import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.messagePrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class List implements ICommand {
|
public class List implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
if (!Main.getInstance().supports(9)) {
|
if (!Main.getInstance().supports(9)) {
|
||||||
sender.sendMessage(errorPrefix + message("BLOCKHUNT_UNSUPPORTED"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("BLOCKHUNT_UNSUPPORTED"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Map map = Maps.getMap(args[0]);
|
Map map = Maps.getMap(args[0]);
|
||||||
if(map == null) {
|
if(map == null) {
|
||||||
sender.sendMessage(errorPrefix + message("INVALID_MAP"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
java.util.List<Material> blocks = map.getBlockHunt();
|
java.util.List<Material> blocks = map.getBlockHunt();
|
||||||
if(blocks.isEmpty()) {
|
if(blocks.isEmpty()) {
|
||||||
sender.sendMessage(errorPrefix + message("NO_BLOCKS"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("NO_BLOCKS"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
StringBuilder response = new StringBuilder(messagePrefix + message("BLOCKHUNT_LIST_BLOCKS"));
|
StringBuilder response = new StringBuilder(Config.messagePrefix + Localization.message("BLOCKHUNT_LIST_BLOCKS"));
|
||||||
for(int i = 0; i < blocks.size(); i++) {
|
for(int i = 0; i < blocks.size(); i++) {
|
||||||
response.append(String.format("\n%s. %s", i, blocks.get(i).toString()));
|
response.append(String.format("\n%s. %s", i, blocks.get(i).toString()));
|
||||||
}
|
}
|
||||||
|
@ -53,7 +51,7 @@ public class List implements ICommand {
|
||||||
|
|
||||||
public java.util.List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
public java.util.List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
|
@ -1,10 +1,12 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map.blockhunt.blocks;
|
package dev.tylerm.khs.command.map.blockhunt.blocks;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -13,40 +15,36 @@ import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.messagePrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Remove implements ICommand {
|
public class Remove implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
if (!Main.getInstance().supports(9)) {
|
if (!Main.getInstance().supports(9)) {
|
||||||
sender.sendMessage(errorPrefix + message("BLOCKHUNT_UNSUPPORTED"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("BLOCKHUNT_UNSUPPORTED"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
||||||
sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("GAME_INPROGRESS"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Map map = Maps.getMap(args[0]);
|
Map map = Maps.getMap(args[0]);
|
||||||
if(map == null) {
|
if(map == null) {
|
||||||
sender.sendMessage(errorPrefix + message("INVALID_MAP"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Material block;
|
Material block;
|
||||||
try { block = Material.valueOf(args[1]); }
|
try { block = Material.valueOf(args[1]); }
|
||||||
catch (IllegalArgumentException e) {
|
catch (IllegalArgumentException e) {
|
||||||
sender.sendMessage(errorPrefix + message("COMMAND_INVALID_ARG").addAmount(args[1]));
|
sender.sendMessage(Config.errorPrefix + Localization.message("COMMAND_INVALID_ARG").addAmount(args[1]));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
java.util.List<Material> blocks = map.getBlockHunt();
|
java.util.List<Material> blocks = map.getBlockHunt();
|
||||||
if(!blocks.contains(block)) {
|
if(!blocks.contains(block)) {
|
||||||
sender.sendMessage(errorPrefix + message("BLOCKHUNT_BLOCK_DOESNT_EXIT").addAmount(args[1]));
|
sender.sendMessage(Config.errorPrefix + Localization.message("BLOCKHUNT_BLOCK_DOESNT_EXIT").addAmount(args[1]));
|
||||||
}
|
}
|
||||||
blocks.remove(block);
|
blocks.remove(block);
|
||||||
map.setBlockhunt(map.isBlockHuntEnabled(), blocks);
|
map.setBlockhunt(map.isBlockHuntEnabled(), blocks);
|
||||||
Maps.setMap(map.getName(), map);
|
Maps.setMap(map.getName(), map);
|
||||||
sender.sendMessage(messagePrefix + message("BLOCKHUNT_BLOCK_REMOVED").addAmount(args[1]));
|
sender.sendMessage(Config.messagePrefix + Localization.message("BLOCKHUNT_BLOCK_REMOVED").addAmount(args[1]));
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLabel() {
|
public String getLabel() {
|
||||||
|
@ -63,7 +61,7 @@ public class Remove implements ICommand {
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(Map::getName).collect(Collectors.toList());
|
||||||
} else if(parameter.equals("block")) {
|
} else if(parameter.equals("block")) {
|
||||||
return Arrays.stream(Material.values())
|
return Arrays.stream(Material.values())
|
||||||
.filter(Material::isBlock)
|
.filter(Material::isBlock)
|
86
src/main/java/dev/tylerm/khs/command/map/set/Border.java
Normal file
86
src/main/java/dev/tylerm/khs/command/map/set/Border.java
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
package dev.tylerm.khs.command.map.set;
|
||||||
|
|
||||||
|
import dev.tylerm.khs.Main;
|
||||||
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
|
import dev.tylerm.khs.configuration.Config;
|
||||||
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
public class Border implements ICommand {
|
||||||
|
|
||||||
|
public void execute(Player sender, String[] args) {
|
||||||
|
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
||||||
|
sender.sendMessage(Config.errorPrefix + Localization.message("GAME_INPROGRESS"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Map map = Maps.getMap(args[0]);
|
||||||
|
if(map == null) {
|
||||||
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (map.getSpawn().isNotSetup()) {
|
||||||
|
sender.sendMessage(Config.errorPrefix + Localization.message("ERROR_GAME_SPAWN"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int num,delay,change;
|
||||||
|
try { num = Integer.parseInt(args[1]); } catch (Exception e) {
|
||||||
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLDBORDER_INVALID_INPUT").addAmount(args[0]));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try { delay = Integer.parseInt(args[2]); } catch (Exception e) {
|
||||||
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLDBORDER_INVALID_INPUT").addAmount(args[1]));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try { change = Integer.parseInt(args[3]); } catch (Exception e) {
|
||||||
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLDBORDER_INVALID_INPUT").addAmount(args[2]));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (num < 100) {
|
||||||
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLDBORDER_MIN_SIZE"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (change < 1) {
|
||||||
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLDBORDER_CHANGE_SIZE"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
map.setWorldBorderData(
|
||||||
|
sender.getLocation().getBlockX(),
|
||||||
|
sender.getLocation().getBlockZ(),
|
||||||
|
num,
|
||||||
|
delay,
|
||||||
|
change
|
||||||
|
);
|
||||||
|
Maps.setMap(map.getName(), map);
|
||||||
|
sender.sendMessage(Config.messagePrefix + Localization.message("WORLDBORDER_ENABLE").addAmount(num).addAmount(delay).addAmount(change));
|
||||||
|
map.getWorldBorder().resetWorldBorder();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLabel() {
|
||||||
|
return "border";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUsage() {
|
||||||
|
return "<map> <size> <delay> <move>";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return "Sets a maps world border information";
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
|
if(parameter.equals("map")) {
|
||||||
|
return Maps.getAllMaps().stream().map(Map::getName).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
return Collections.singletonList(parameter);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,46 +1,45 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map.set;
|
package dev.tylerm.khs.command.map.set;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
import net.tylermurphy.hideAndSeek.util.Location;
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
|
import dev.tylerm.khs.util.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Bounds implements ICommand {
|
public class Bounds implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
||||||
sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("GAME_INPROGRESS"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Map map = Maps.getMap(args[0]);
|
Map map = Maps.getMap(args[0]);
|
||||||
if(map == null) {
|
if(map == null) {
|
||||||
sender.sendMessage(errorPrefix + message("INVALID_MAP"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (map.getSpawn().isNotSetup()) {
|
if (map.getSpawn().isNotSetup()) {
|
||||||
sender.sendMessage(errorPrefix + message("ERROR_GAME_SPAWN"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("ERROR_GAME_SPAWN"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (map.getSeekerLobby().isNotSetup()) {
|
if (map.getSeekerLobby().isNotSetup()) {
|
||||||
sender.sendMessage(errorPrefix + message("ERROR_GAME_SEEKER_SPAWN"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("ERROR_GAME_SEEKER_SPAWN"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!sender.getWorld().getName().equals(map.getSpawnName())) {
|
if (!sender.getWorld().getName().equals(map.getSpawnName())) {
|
||||||
sender.sendMessage(errorPrefix + message("BOUNDS_WRONG_WORLD"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("BOUNDS_WRONG_WORLD"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (sender.getLocation().getBlockX() == 0 || sender.getLocation().getBlockZ() == 0) {
|
if (sender.getLocation().getBlockX() == 0 || sender.getLocation().getBlockZ() == 0) {
|
||||||
sender.sendMessage(errorPrefix + message("NOT_AT_ZERO"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("NOT_AT_ZERO"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean first = true;
|
boolean first = true;
|
||||||
|
@ -77,18 +76,18 @@ public class Bounds implements ICommand {
|
||||||
if(!map.getSpawn().isNotSetup()) {
|
if(!map.getSpawn().isNotSetup()) {
|
||||||
if(map.getSpawn().isNotInBounds(bxs, bxl, bzs, bzl)) {
|
if(map.getSpawn().isNotInBounds(bxs, bxl, bzs, bzl)) {
|
||||||
map.setSpawn(Location.getDefault());
|
map.setSpawn(Location.getDefault());
|
||||||
sender.sendMessage(warningPrefix + message("WARN_SPAWN_RESET"));
|
sender.sendMessage(Config.warningPrefix + Localization.message("WARN_SPAWN_RESET"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!map.getSeekerLobby().isNotSetup()) {
|
if(!map.getSeekerLobby().isNotSetup()) {
|
||||||
if(map.getSeekerLobby().isNotInBounds(bxs, bxl, bzs, bzl)) {
|
if(map.getSeekerLobby().isNotInBounds(bxs, bxl, bzs, bzl)) {
|
||||||
map.setSeekerLobby(Location.getDefault());
|
map.setSeekerLobby(Location.getDefault());
|
||||||
sender.sendMessage(warningPrefix + message("WARN_SEEKER_SPAWN_RESET"));
|
sender.sendMessage(Config.warningPrefix + Localization.message("WARN_SEEKER_SPAWN_RESET"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Maps.setMap(map.getName(), map);
|
Maps.setMap(map.getName(), map);
|
||||||
sender.sendMessage(messagePrefix + message("BOUNDS").addAmount(first ? 1 : 2));
|
sender.sendMessage(Config.messagePrefix + Localization.message("BOUNDS").addAmount(first ? 1 : 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLabel() {
|
public String getLabel() {
|
||||||
|
@ -105,7 +104,7 @@ public class Bounds implements ICommand {
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
|
@ -1,10 +1,11 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map.set;
|
package dev.tylerm.khs.command.map.set;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.location.LocationUtils;
|
||||||
import net.tylermurphy.hideAndSeek.command.location.LocationUtils;
|
import dev.tylerm.khs.command.location.Locations;
|
||||||
import net.tylermurphy.hideAndSeek.command.location.Locations;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
import net.tylermurphy.hideAndSeek.util.Location;
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
import dev.tylerm.khs.util.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
@ -33,7 +34,7 @@ public class Lobby implements ICommand {
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
|
@ -1,10 +1,11 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map.set;
|
package dev.tylerm.khs.command.map.set;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.location.LocationUtils;
|
||||||
import net.tylermurphy.hideAndSeek.command.location.LocationUtils;
|
import dev.tylerm.khs.command.location.Locations;
|
||||||
import net.tylermurphy.hideAndSeek.command.location.Locations;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.*;
|
||||||
import net.tylermurphy.hideAndSeek.util.Location;
|
import dev.tylerm.khs.util.Location;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -12,25 +13,22 @@ import org.jetbrains.annotations.NotNull;
|
||||||
import java.util.List;;
|
import java.util.List;;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.warningPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class SeekerLobby implements ICommand {
|
public class SeekerLobby implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
LocationUtils.setLocation(sender, Locations.SEEKER, args[0], map -> {
|
LocationUtils.setLocation(sender, Locations.SEEKER, args[0], map -> {
|
||||||
if(map.getSpawn().isNotSetup()) {
|
if(map.getSpawn().isNotSetup()) {
|
||||||
throw new RuntimeException(message("GAME_SPAWN_NEEDED").toString());
|
throw new RuntimeException(Localization.message("GAME_SPAWN_NEEDED").toString());
|
||||||
}
|
}
|
||||||
if(!map.getSpawnName().equals(sender.getLocation().getWorld().getName())) {
|
if(!map.getSpawnName().equals(sender.getLocation().getWorld().getName())) {
|
||||||
throw new RuntimeException(message("SEEKER_LOBBY_INVALID").toString());
|
throw new RuntimeException(Localization.message("SEEKER_LOBBY_INVALID").toString());
|
||||||
}
|
}
|
||||||
map.setSeekerLobby(Location.from(sender));
|
map.setSeekerLobby(Location.from(sender));
|
||||||
if(!map.isBoundsNotSetup()) {
|
if(!map.isBoundsNotSetup()) {
|
||||||
Vector boundsMin = map.getBoundsMin();
|
Vector boundsMin = map.getBoundsMin();
|
||||||
Vector boundsMax = map.getBoundsMax();
|
Vector boundsMax = map.getBoundsMax();
|
||||||
if(map.getSeekerLobby().isNotInBounds(boundsMin.getBlockX(), boundsMax.getBlockX(), boundsMin.getBlockZ(), boundsMax.getBlockZ())) {
|
if(map.getSeekerLobby().isNotInBounds(boundsMin.getBlockX(), boundsMax.getBlockX(), boundsMin.getBlockZ(), boundsMax.getBlockZ())) {
|
||||||
sender.sendMessage(warningPrefix + message("WARN_MAP_BOUNDS"));
|
sender.sendMessage(Config.warningPrefix + Localization.message("WARN_MAP_BOUNDS"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -50,7 +48,7 @@ public class SeekerLobby implements ICommand {
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
|
@ -1,10 +1,11 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map.set;
|
package dev.tylerm.khs.command.map.set;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.location.LocationUtils;
|
||||||
import net.tylermurphy.hideAndSeek.command.location.LocationUtils;
|
import dev.tylerm.khs.command.location.Locations;
|
||||||
import net.tylermurphy.hideAndSeek.command.location.Locations;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.*;
|
||||||
import net.tylermurphy.hideAndSeek.util.Location;
|
import dev.tylerm.khs.util.Location;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
@ -12,9 +13,6 @@ import org.jetbrains.annotations.NotNull;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Spawn implements ICommand {
|
public class Spawn implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
|
@ -22,7 +20,7 @@ public class Spawn implements ICommand {
|
||||||
|
|
||||||
if (map.isWorldBorderEnabled() &&
|
if (map.isWorldBorderEnabled() &&
|
||||||
new Vector(sender.getLocation().getX(), 0, sender.getLocation().getZ()).distance(map.getWorldBorderPos()) > 100) {
|
new Vector(sender.getLocation().getX(), 0, sender.getLocation().getZ()).distance(map.getWorldBorderPos()) > 100) {
|
||||||
sender.sendMessage(errorPrefix + message("WORLDBORDER_POSITION"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLDBORDER_POSITION"));
|
||||||
throw new RuntimeException("World border not enabled or not in valid position!");
|
throw new RuntimeException("World border not enabled or not in valid position!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,16 +30,16 @@ public class Spawn implements ICommand {
|
||||||
Vector boundsMin = map.getBoundsMin();
|
Vector boundsMin = map.getBoundsMin();
|
||||||
Vector boundsMax = map.getBoundsMax();
|
Vector boundsMax = map.getBoundsMax();
|
||||||
if(map.getSpawn().isNotInBounds(boundsMin.getBlockX(), boundsMax.getBlockX(), boundsMin.getBlockZ(), boundsMax.getBlockZ())) {
|
if(map.getSpawn().isNotInBounds(boundsMin.getBlockX(), boundsMax.getBlockX(), boundsMin.getBlockZ(), boundsMax.getBlockZ())) {
|
||||||
sender.sendMessage(warningPrefix + message("WARN_MAP_BOUNDS"));
|
sender.sendMessage(Config.warningPrefix + Localization.message("WARN_MAP_BOUNDS"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(map.getSeekerLobby().getWorld() != null && !map.getSeekerLobby().getWorld().equals(sender.getLocation().getWorld().getName())) {
|
if(map.getSeekerLobby().getWorld() != null && !map.getSeekerLobby().getWorld().equals(sender.getLocation().getWorld().getName())) {
|
||||||
sender.sendMessage(warningPrefix + message("SEEKER_LOBBY_SPAWN_RESET"));
|
sender.sendMessage(Config.warningPrefix + Localization.message("SEEKER_LOBBY_SPAWN_RESET"));
|
||||||
map.setSeekerLobby(Location.getDefault());
|
map.setSeekerLobby(Location.getDefault());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sender.getLocation().getWorld().getName().equals(map.getSpawnName()) && mapSaveEnabled) {
|
if (!sender.getLocation().getWorld().getName().equals(map.getSpawnName()) && Config.mapSaveEnabled) {
|
||||||
map.getWorldLoader().unloadMap();
|
map.getWorldLoader().unloadMap();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -61,7 +59,7 @@ public class Spawn implements ICommand {
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
if(parameter.equals("map")) {
|
if(parameter.equals("map")) {
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
return Maps.getAllMaps().stream().map(Map::getName).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
58
src/main/java/dev/tylerm/khs/command/map/unset/Border.java
Normal file
58
src/main/java/dev/tylerm/khs/command/map/unset/Border.java
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
package dev.tylerm.khs.command.map.unset;
|
||||||
|
|
||||||
|
import dev.tylerm.khs.Main;
|
||||||
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
|
import dev.tylerm.khs.configuration.Config;
|
||||||
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
public class Border implements ICommand {
|
||||||
|
|
||||||
|
public void execute(Player sender, String[] args) {
|
||||||
|
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
||||||
|
sender.sendMessage(Config.errorPrefix + Localization.message("GAME_INPROGRESS"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Map map = Maps.getMap(args[0]);
|
||||||
|
if(map == null) {
|
||||||
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_MAP"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (map.getSpawn().isNotSetup()) {
|
||||||
|
sender.sendMessage(Config.errorPrefix + Localization.message("ERROR_GAME_SPAWN"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
map.setWorldBorderData(0, 0, 0, 0, 0);
|
||||||
|
Config.addToConfig("worldBorder.enabled",false);
|
||||||
|
Config.saveConfig();
|
||||||
|
sender.sendMessage(Config.messagePrefix + Localization.message("WORLDBORDER_DISABLE"));
|
||||||
|
map.getWorldBorder().resetWorldBorder();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLabel() {
|
||||||
|
return "border";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUsage() {
|
||||||
|
return "<map>";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return "Removes a maps world border information";
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
||||||
|
if(parameter.equals("map")) {
|
||||||
|
return Maps.getAllMaps().stream().map(Map::getName).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,8 +1,10 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.util;
|
package dev.tylerm.khs.command.util;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.command.map.Save;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.util.Pair;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
import net.tylermurphy.hideAndSeek.util.Tuple;
|
import dev.tylerm.khs.util.Pair;
|
||||||
|
import dev.tylerm.khs.util.Tuple;
|
||||||
|
import dev.tylerm.khs.command.map.Save;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
@ -10,10 +12,6 @@ import org.jetbrains.annotations.Nullable;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.permissionsRequired;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class CommandGroup {
|
public class CommandGroup {
|
||||||
|
|
||||||
private final Map<String, Object> commandRegister;
|
private final Map<String, Object> commandRegister;
|
||||||
|
@ -51,7 +49,7 @@ public class CommandGroup {
|
||||||
|
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
player.sendMessage(
|
player.sendMessage(
|
||||||
String.format("%s%sKenshin's Hide and Seek %s(%s1.7.4%s)\n", ChatColor.AQUA, ChatColor.BOLD, ChatColor.GRAY, ChatColor.WHITE, ChatColor.GRAY) +
|
String.format("%s%sKenshin's Hide and Seek %s(%s1.7.5%s)\n", ChatColor.AQUA, ChatColor.BOLD, ChatColor.GRAY, ChatColor.WHITE, ChatColor.GRAY) +
|
||||||
String.format("%sAuthor: %s[KenshinEto]\n", ChatColor.GRAY, ChatColor.WHITE) +
|
String.format("%sAuthor: %s[KenshinEto]\n", ChatColor.GRAY, ChatColor.WHITE) +
|
||||||
String.format("%sHelp Command: %s/hs %shelp", ChatColor.GRAY, ChatColor.AQUA, ChatColor.WHITE)
|
String.format("%sHelp Command: %s/hs %shelp", ChatColor.GRAY, ChatColor.AQUA, ChatColor.WHITE)
|
||||||
);
|
);
|
||||||
|
@ -63,25 +61,25 @@ public class CommandGroup {
|
||||||
String[] parameters = data.getRight();
|
String[] parameters = data.getRight();
|
||||||
|
|
||||||
if (Save.runningBackup) {
|
if (Save.runningBackup) {
|
||||||
player.sendMessage(errorPrefix + message("MAPSAVE_INPROGRESS"));
|
player.sendMessage(Config.errorPrefix + Localization.message("MAPSAVE_INPROGRESS"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (permissionsRequired && !player.hasPermission(permission)) {
|
if (Config.permissionsRequired && !player.hasPermission(permission)) {
|
||||||
player.sendMessage(errorPrefix + message("COMMAND_NOT_ALLOWED"));
|
player.sendMessage(Config.errorPrefix + Localization.message("COMMAND_NOT_ALLOWED"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int parameterCount = (int) Arrays.stream(command.getUsage().split(" ")).filter(p -> p.startsWith("<") && !p.startsWith("<*")).count();
|
int parameterCount = (int) Arrays.stream(command.getUsage().split(" ")).filter(p -> p.startsWith("<") && !p.startsWith("<*")).count();
|
||||||
if(parameters.length < parameterCount) {
|
if(parameters.length < parameterCount) {
|
||||||
player.sendMessage(errorPrefix + message("ARGUMENT_COUNT"));
|
player.sendMessage(Config.errorPrefix + Localization.message("ARGUMENT_COUNT"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
command.execute(player, parameters);
|
command.execute(player, parameters);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
player.sendMessage(errorPrefix + "An error has occurred.");
|
player.sendMessage(Config.errorPrefix + "An error has occurred.");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -122,10 +120,10 @@ public class CommandGroup {
|
||||||
Object object = commandRegister.get(handle);
|
Object object = commandRegister.get(handle);
|
||||||
if (object instanceof ICommand) {
|
if (object instanceof ICommand) {
|
||||||
ICommand command = (ICommand) object;
|
ICommand command = (ICommand) object;
|
||||||
return !permissionsRequired || player.hasPermission(permission + "." + command.getLabel());
|
return !Config.permissionsRequired || player.hasPermission(permission + "." + command.getLabel());
|
||||||
} else if (object instanceof CommandGroup) {
|
} else if (object instanceof CommandGroup) {
|
||||||
CommandGroup group = (CommandGroup) object;
|
CommandGroup group = (CommandGroup) object;
|
||||||
return !permissionsRequired || group.hasPermission(player, permission + "." + group.getLabel());
|
return !Config.permissionsRequired || group.hasPermission(player, permission + "." + group.getLabel());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
})
|
})
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.util;
|
package dev.tylerm.khs.command.util;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
|
@ -1,8 +1,10 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.world;
|
package dev.tylerm.khs.command.world;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.util.Location;
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
|
import dev.tylerm.khs.util.Location;
|
||||||
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.WorldType;
|
import org.bukkit.WorldType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -12,16 +14,12 @@ import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.messagePrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Create implements ICommand {
|
public class Create implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
List<String> worlds = Main.getInstance().getWorlds();
|
List<String> worlds = Main.getInstance().getWorlds();
|
||||||
if(worlds.contains(args[0])) {
|
if(worlds.contains(args[0])) {
|
||||||
sender.sendMessage(errorPrefix + message("WORLD_EXISTS").addAmount(args[0]));
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLD_EXISTS").addAmount(args[0]));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
WorldType type;
|
WorldType type;
|
||||||
|
@ -44,16 +42,16 @@ public class Create implements ICommand {
|
||||||
environment = World.Environment.THE_END;
|
environment = World.Environment.THE_END;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
sender.sendMessage(errorPrefix + message("INVALID_WORLD_TYPE").addAmount(args[1]));
|
sender.sendMessage(Config.errorPrefix + Localization.message("INVALID_WORLD_TYPE").addAmount(args[1]));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Location temp = new Location(args[0], 0, 0, 0);
|
Location temp = new Location(args[0], 0, 0, 0);
|
||||||
|
|
||||||
if (temp.load(type, environment) == null) {
|
if (temp.load(type, environment) == null) {
|
||||||
sender.sendMessage(errorPrefix + message("WORLD_ADDED_FAILED"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLD_ADDED_FAILED"));
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage(messagePrefix + message("WORLD_ADDED").addAmount(args[0]));
|
sender.sendMessage(Config.messagePrefix + Localization.message("WORLD_ADDED").addAmount(args[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,9 +1,11 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.world;
|
package dev.tylerm.khs.command.world;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.Confirm;
|
import dev.tylerm.khs.command.Confirm;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.world.WorldLoader;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
|
import dev.tylerm.khs.world.WorldLoader;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -12,46 +14,42 @@ import org.jetbrains.annotations.NotNull;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.messagePrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Delete implements ICommand {
|
public class Delete implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
java.util.List<String> worlds = Main.getInstance().getWorlds();
|
java.util.List<String> worlds = Main.getInstance().getWorlds();
|
||||||
if(!worlds.contains(args[0])) {
|
if(!worlds.contains(args[0])) {
|
||||||
sender.sendMessage(errorPrefix + message("WORLD_DOESNT_EXIST").addAmount(args[0]));
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLD_DOESNT_EXIST").addAmount(args[0]));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Confirm.Confirmation confirmation = new Confirm.Confirmation(args[0], world -> {
|
Confirm.Confirmation confirmation = new Confirm.Confirmation(args[0], world -> {
|
||||||
java.util.List<String> worlds_now = Main.getInstance().getWorlds();
|
java.util.List<String> worlds_now = Main.getInstance().getWorlds();
|
||||||
if(!worlds_now.contains(world)) {
|
if(!worlds_now.contains(world)) {
|
||||||
sender.sendMessage(errorPrefix + message("WORLD_DOESNT_EXIST").addAmount(world));
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLD_DOESNT_EXIST").addAmount(world));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
World bukkit_world = Bukkit.getWorld(world);
|
World bukkit_world = Bukkit.getWorld(world);
|
||||||
if(bukkit_world != null && bukkit_world.getPlayers().size() > 0) {
|
if(bukkit_world != null && bukkit_world.getPlayers().size() > 0) {
|
||||||
sender.sendMessage(errorPrefix + message("WORLD_NOT_EMPTY"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLD_NOT_EMPTY"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String path = Main.getInstance().getWorldContainer().getPath() + File.separator + world;
|
String path = Main.getInstance().getWorldContainer().getPath() + File.separator + world;
|
||||||
if (!Bukkit.getServer().unloadWorld(world, false)) {
|
if (!Bukkit.getServer().unloadWorld(world, false)) {
|
||||||
sender.sendMessage(errorPrefix + message("WORLD_REMOVED_FAILED"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLD_REMOVED_FAILED"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
WorldLoader.deleteDirectory(new File(path));
|
WorldLoader.deleteDirectory(new File(path));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
sender.sendMessage(errorPrefix + message("WORLD_REMOVED_FAILED"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLD_REMOVED_FAILED"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sender.sendMessage(messagePrefix + message("WORLD_REMOVED").addAmount(world));
|
sender.sendMessage(Config.messagePrefix + Localization.message("WORLD_REMOVED").addAmount(world));
|
||||||
});
|
});
|
||||||
|
|
||||||
Confirm.confirmations.put(sender.getUniqueId(), confirmation);
|
Confirm.confirmations.put(sender.getUniqueId(), confirmation);
|
||||||
sender.sendMessage(messagePrefix + message("CONFIRMATION"));
|
sender.sendMessage(Config.messagePrefix + Localization.message("CONFIRMATION"));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +1,23 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.world;
|
package dev.tylerm.khs.command.world;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.messagePrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class List implements ICommand {
|
public class List implements ICommand {
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
java.util.List<String> worlds = Main.getInstance().getWorlds();
|
java.util.List<String> worlds = Main.getInstance().getWorlds();
|
||||||
if(worlds.isEmpty()) {
|
if(worlds.isEmpty()) {
|
||||||
sender.sendMessage(errorPrefix + message("NO_WORLDS"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("NO_WORLDS"));
|
||||||
} else {
|
} else {
|
||||||
StringBuilder response = new StringBuilder(messagePrefix + message("LIST_WORLDS"));
|
StringBuilder response = new StringBuilder(Config.messagePrefix + Localization.message("LIST_WORLDS"));
|
||||||
for (String world : worlds) {
|
for (String world : worlds) {
|
||||||
String status = ChatColor.GRAY + "NOT LOADED";
|
String status = ChatColor.GRAY + "NOT LOADED";
|
||||||
World bukkit_world = Bukkit.getWorld(world);
|
World bukkit_world = Bukkit.getWorld(world);
|
|
@ -1,27 +1,26 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.world;
|
package dev.tylerm.khs.command.world;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
import dev.tylerm.khs.command.util.ICommand;
|
||||||
import net.tylermurphy.hideAndSeek.util.Location;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
|
import dev.tylerm.khs.configuration.Localization;
|
||||||
|
import dev.tylerm.khs.util.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Tp implements ICommand {
|
public class Tp implements ICommand {
|
||||||
public void execute(Player sender, String[] args) {
|
public void execute(Player sender, String[] args) {
|
||||||
Location test = new Location(args[0], 0, 0,0);
|
Location test = new Location(args[0], 0, 0,0);
|
||||||
if(!test.exists()) {
|
if(!test.exists()) {
|
||||||
sender.sendMessage(errorPrefix + message("WORLD_DOESNT_EXIT"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLD_DOESNT_EXIT"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
World world = test.load();
|
World world = test.load();
|
||||||
if(world == null) {
|
if(world == null) {
|
||||||
sender.sendMessage(errorPrefix + message("WORLD_LOAD_FAILED"));
|
sender.sendMessage(Config.errorPrefix + Localization.message("WORLD_LOAD_FAILED"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Location loc = new Location(world.getName(), world.getSpawnLocation());
|
Location loc = new Location(world.getName(), world.getSpawnLocation());
|
|
@ -1,11 +1,11 @@
|
||||||
package net.tylermurphy.hideAndSeek.configuration;
|
package dev.tylerm.khs.configuration;
|
||||||
|
|
||||||
import com.cryptomorin.xseries.XItemStack;
|
import com.cryptomorin.xseries.XItemStack;
|
||||||
import com.cryptomorin.xseries.XMaterial;
|
import com.cryptomorin.xseries.XMaterial;
|
||||||
import com.cryptomorin.xseries.XSound;
|
import com.cryptomorin.xseries.XSound;
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.CountdownDisplay;
|
import dev.tylerm.khs.game.util.CountdownDisplay;
|
||||||
import net.tylermurphy.hideAndSeek.util.Location;
|
import dev.tylerm.khs.util.Location;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
@ -62,8 +62,12 @@ public class Config {
|
||||||
allowNaturalCauses,
|
allowNaturalCauses,
|
||||||
saveInventory,
|
saveInventory,
|
||||||
delayedRespawn,
|
delayedRespawn,
|
||||||
|
dontRewardQuit,
|
||||||
spawnPatch,
|
spawnPatch,
|
||||||
dropItems,
|
dropItems,
|
||||||
|
respawnAsSpectator,
|
||||||
|
waitTillNoneLeft,
|
||||||
|
gameOverTitle,
|
||||||
regenHealth;
|
regenHealth;
|
||||||
|
|
||||||
public static int
|
public static int
|
||||||
|
@ -82,7 +86,10 @@ public class Config {
|
||||||
lobbyItemStartPosition,
|
lobbyItemStartPosition,
|
||||||
flightToggleItemPosition,
|
flightToggleItemPosition,
|
||||||
teleportItemPosition,
|
teleportItemPosition,
|
||||||
delayedRespawnDelay;
|
startingSeekerCount,
|
||||||
|
delayedRespawnDelay,
|
||||||
|
hidingTimer,
|
||||||
|
endGameDelay;
|
||||||
|
|
||||||
public static float
|
public static float
|
||||||
seekerPingLeadingVolume,
|
seekerPingLeadingVolume,
|
||||||
|
@ -154,7 +161,9 @@ public class Config {
|
||||||
}
|
}
|
||||||
|
|
||||||
//Lobby
|
//Lobby
|
||||||
minPlayers = Math.max(2, config.getInt("minPlayers"));
|
startingSeekerCount = Math.max(1, config.getInt("startingSeekerCount"));
|
||||||
|
waitTillNoneLeft = config.getBoolean("waitTillNoneLeft");
|
||||||
|
minPlayers = Math.max(1 + startingSeekerCount + (waitTillNoneLeft ? 0 : 1), config.getInt("minPlayers"));
|
||||||
countdown = Math.max(10, config.getInt("lobby.countdown"));
|
countdown = Math.max(10, config.getInt("lobby.countdown"));
|
||||||
changeCountdown = Math.max(minPlayers, config.getInt("lobby.changeCountdown"));
|
changeCountdown = Math.max(minPlayers, config.getInt("lobby.changeCountdown"));
|
||||||
lobbyMin = Math.max(minPlayers, config.getInt("lobby.min"));
|
lobbyMin = Math.max(minPlayers, config.getInt("lobby.min"));
|
||||||
|
@ -188,6 +197,12 @@ public class Config {
|
||||||
placeholderError = config.getString("placeholder.incorrect");
|
placeholderError = config.getString("placeholder.incorrect");
|
||||||
placeholderNoData = config.getString("placeholder.noData");
|
placeholderNoData = config.getString("placeholder.noData");
|
||||||
saveInventory = config.getBoolean("saveInventory");
|
saveInventory = config.getBoolean("saveInventory");
|
||||||
|
respawnAsSpectator = config.getBoolean("respawnAsSpectator");
|
||||||
|
dontRewardQuit = config.getBoolean("dontRewardQuit");
|
||||||
|
endGameDelay = Math.max(0,config.getInt("endGameDelay"));
|
||||||
|
gameOverTitle = config.getBoolean("gameOverTitle");
|
||||||
|
hidingTimer = Math.max(10, config.getInt("hidingTimer"));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
countdownDisplay = CountdownDisplay.valueOf(config.getString("hideCountdownDisplay"));
|
countdownDisplay = CountdownDisplay.valueOf(config.getString("hideCountdownDisplay"));
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
|
@ -1,6 +1,6 @@
|
||||||
package net.tylermurphy.hideAndSeek.configuration;
|
package dev.tylerm.khs.configuration;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.configuration.InvalidConfigurationException;
|
import org.bukkit.configuration.InvalidConfigurationException;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
|
@ -1,7 +1,7 @@
|
||||||
package net.tylermurphy.hideAndSeek.configuration;
|
package dev.tylerm.khs.configuration;
|
||||||
|
|
||||||
import com.cryptomorin.xseries.XItemStack;
|
import com.cryptomorin.xseries.XItemStack;
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
@ -16,6 +16,12 @@ import java.util.List;
|
||||||
public class Items {
|
public class Items {
|
||||||
|
|
||||||
public static List<ItemStack> HIDER_ITEMS, SEEKER_ITEMS;
|
public static List<ItemStack> HIDER_ITEMS, SEEKER_ITEMS;
|
||||||
|
public static ItemStack
|
||||||
|
HIDER_HELM, SEEKER_HELM,
|
||||||
|
HIDER_CHEST, SEEKER_CHEST,
|
||||||
|
HIDER_LEGS, SEEKER_LEGS,
|
||||||
|
HIDER_BOOTS, SEEKER_BOOTS;
|
||||||
|
|
||||||
public static List<PotionEffect> HIDER_EFFECTS, SEEKER_EFFECTS;
|
public static List<PotionEffect> HIDER_EFFECTS, SEEKER_EFFECTS;
|
||||||
|
|
||||||
public static void loadItems() {
|
public static void loadItems() {
|
||||||
|
@ -23,29 +29,109 @@ public class Items {
|
||||||
ConfigManager manager = ConfigManager.create("items.yml");
|
ConfigManager manager = ConfigManager.create("items.yml");
|
||||||
|
|
||||||
SEEKER_ITEMS = new ArrayList<>();
|
SEEKER_ITEMS = new ArrayList<>();
|
||||||
|
SEEKER_HELM = null;
|
||||||
|
SEEKER_CHEST = null;
|
||||||
|
SEEKER_LEGS = null;
|
||||||
|
SEEKER_BOOTS = null;
|
||||||
|
|
||||||
ConfigurationSection SeekerItems = manager.getConfigurationSection("items.seeker");
|
ConfigurationSection SeekerItems = manager.getConfigurationSection("items.seeker");
|
||||||
int i = 1;
|
|
||||||
while (true) {
|
for (int i = 0; i < 9; i++) {
|
||||||
ConfigurationSection section = SeekerItems.getConfigurationSection(String.valueOf(i));
|
ConfigurationSection section = SeekerItems.getConfigurationSection(String.valueOf(i));
|
||||||
if (section == null) break;
|
if (section == null) {
|
||||||
|
SEEKER_ITEMS.add(null);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ItemStack item = createItem(section);
|
ItemStack item = createItem(section);
|
||||||
if (item != null) SEEKER_ITEMS.add(item);
|
SEEKER_ITEMS.add(item);
|
||||||
i++;
|
}
|
||||||
|
|
||||||
|
ConfigurationSection SeekerHelmet = SeekerItems.getConfigurationSection("helmet");
|
||||||
|
if (SeekerHelmet != null) {
|
||||||
|
ItemStack item = createItem(SeekerHelmet);
|
||||||
|
if (item != null) {
|
||||||
|
SEEKER_HELM = item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigurationSection SeekerChestplate = SeekerItems.getConfigurationSection("chestplate");
|
||||||
|
if (SeekerChestplate != null) {
|
||||||
|
ItemStack item = createItem(SeekerChestplate);
|
||||||
|
if (item != null) {
|
||||||
|
SEEKER_CHEST = item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigurationSection SeekerLeggings = SeekerItems.getConfigurationSection("leggings");
|
||||||
|
if (SeekerLeggings != null) {
|
||||||
|
ItemStack item = createItem(SeekerLeggings);
|
||||||
|
if (item != null) {
|
||||||
|
SEEKER_LEGS = item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigurationSection SeekerBoots = SeekerItems.getConfigurationSection("boots");
|
||||||
|
if (SeekerBoots != null) {
|
||||||
|
ItemStack item = createItem(SeekerBoots);
|
||||||
|
if (item != null) {
|
||||||
|
SEEKER_BOOTS = item;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
HIDER_ITEMS = new ArrayList<>();
|
HIDER_ITEMS = new ArrayList<>();
|
||||||
|
HIDER_HELM = null;
|
||||||
|
HIDER_CHEST = null;
|
||||||
|
HIDER_LEGS = null;
|
||||||
|
HIDER_BOOTS = null;
|
||||||
|
|
||||||
ConfigurationSection HiderItems = manager.getConfigurationSection("items.hider");
|
ConfigurationSection HiderItems = manager.getConfigurationSection("items.hider");
|
||||||
i = 1;
|
|
||||||
while (true) {
|
for (int i = 0; i < 9; i++) {
|
||||||
ConfigurationSection section = HiderItems.getConfigurationSection(String.valueOf(i));
|
ConfigurationSection section = HiderItems.getConfigurationSection(String.valueOf(i));
|
||||||
if (section == null) break;
|
if (section == null) {
|
||||||
|
HIDER_ITEMS.add(null);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ItemStack item = createItem(section);
|
ItemStack item = createItem(section);
|
||||||
if (item != null) HIDER_ITEMS.add(item);
|
HIDER_ITEMS.add(item);
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ConfigurationSection HiderHelmet = HiderItems.getConfigurationSection("helmet");
|
||||||
|
if (HiderHelmet != null) {
|
||||||
|
ItemStack item = createItem(HiderHelmet);
|
||||||
|
if (item != null) {
|
||||||
|
HIDER_HELM = item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigurationSection HiderChestplate = HiderItems.getConfigurationSection("chestplate");
|
||||||
|
if (HiderChestplate != null) {
|
||||||
|
ItemStack item = createItem(HiderChestplate);
|
||||||
|
if (item != null) {
|
||||||
|
HIDER_CHEST = item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigurationSection HiderLeggings = HiderItems.getConfigurationSection("leggings");
|
||||||
|
if (HiderLeggings != null) {
|
||||||
|
ItemStack item = createItem(HiderLeggings);
|
||||||
|
if (item != null) {
|
||||||
|
HIDER_LEGS = item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigurationSection HiderBoots = HiderItems.getConfigurationSection("boots");
|
||||||
|
if (HiderBoots != null) {
|
||||||
|
ItemStack item = createItem(HiderBoots);
|
||||||
|
if (item != null) {
|
||||||
|
HIDER_BOOTS = item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SEEKER_EFFECTS = new ArrayList<>();
|
SEEKER_EFFECTS = new ArrayList<>();
|
||||||
ConfigurationSection SeekerEffects = manager.getConfigurationSection("effects.seeker");
|
ConfigurationSection SeekerEffects = manager.getConfigurationSection("effects.seeker");
|
||||||
i = 1;
|
|
||||||
|
int i = 1;
|
||||||
while (true) {
|
while (true) {
|
||||||
ConfigurationSection section = SeekerEffects.getConfigurationSection(String.valueOf(i));
|
ConfigurationSection section = SeekerEffects.getConfigurationSection(String.valueOf(i));
|
||||||
if (section == null) break;
|
if (section == null) break;
|
||||||
|
@ -64,7 +150,6 @@ public class Items {
|
||||||
if (effect != null) HIDER_EFFECTS.add(effect);
|
if (effect != null) HIDER_EFFECTS.add(effect);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ItemStack createItem(ConfigurationSection item) {
|
private static ItemStack createItem(ConfigurationSection item) {
|
||||||
|
@ -94,7 +179,9 @@ public class Items {
|
||||||
if (material.equalsIgnoreCase("POTION") || material.equalsIgnoreCase("SPLASH_POTION") || material.equalsIgnoreCase("LINGERING_POTION"))
|
if (material.equalsIgnoreCase("POTION") || material.equalsIgnoreCase("SPLASH_POTION") || material.equalsIgnoreCase("LINGERING_POTION"))
|
||||||
config.set("base-effect", String.format("%s,%s,%s", item.getString("type"), false, splash));
|
config.set("base-effect", String.format("%s,%s,%s", item.getString("type"), false, splash));
|
||||||
ItemStack stack = XItemStack.deserialize(config);
|
ItemStack stack = XItemStack.deserialize(config);
|
||||||
stack.setAmount(item.getInt("amount"));
|
int amt = item.getInt("amount");
|
||||||
|
if (amt < 1) amt = 1;
|
||||||
|
stack.setAmount(amt);
|
||||||
if (stack.getData().getItemType() == Material.AIR) return null;
|
if (stack.getData().getItemType() == Material.AIR) return null;
|
||||||
return stack;
|
return stack;
|
||||||
}
|
}
|
||||||
|
@ -121,7 +208,7 @@ public class Items {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean equals(ItemStack a, ItemStack b) {
|
private static boolean equals(ItemStack a, ItemStack b) {
|
||||||
if (a == null) {
|
if (a == null || b == null) {
|
||||||
return false;
|
return false;
|
||||||
} else if (a == b) {
|
} else if (a == b) {
|
||||||
return true;
|
return true;
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.configuration;
|
package dev.tylerm.khs.configuration;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.configuration;
|
package dev.tylerm.khs.configuration;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
|
@ -15,12 +15,14 @@ public class Localization {
|
||||||
put("en-US", new String[][]{
|
put("en-US", new String[][]{
|
||||||
{"WORLDBORDER_DECREASING"},
|
{"WORLDBORDER_DECREASING"},
|
||||||
{"START","TAUNTED"},
|
{"START","TAUNTED"},
|
||||||
{"GAME_SETUP", "SETUP_GAME", "SETUP_LOBBY", "SETUP_SEEKER_LOBBY", "SETUP_EXIT", "SETUP_SAVEMAP", "SETUP_BOUNDS"}
|
{"GAME_SETUP", "SETUP_GAME", "SETUP_LOBBY", "SETUP_SEEKER_LOBBY", "SETUP_EXIT", "SETUP_SAVEMAP", "SETUP_BOUNDS"},
|
||||||
|
{"GAME_PLAYER_FOUND", "GAME_PLAYER_FOUND_BY"}
|
||||||
});
|
});
|
||||||
put("de-DE", new String[][]{
|
put("de-DE", new String[][]{
|
||||||
{},
|
{},
|
||||||
{"TAUNTED"},
|
{"TAUNTED"},
|
||||||
{"GAME_SETUP", "SETUP_GAME", "SETUP_LOBBY", "SETUP_SEEKER_LOBBY", "SETUP_EXIT", "SETUP_SAVEMAP", "SETUP_BOUNDS"}
|
{"GAME_SETUP", "SETUP_GAME", "SETUP_LOBBY", "SETUP_SEEKER_LOBBY", "SETUP_EXIT", "SETUP_SAVEMAP", "SETUP_BOUNDS"},
|
||||||
|
{"GAME_PLAYER_FOUND", "GAME_PLAYER_FOUND_BY"}
|
||||||
});
|
});
|
||||||
}};
|
}};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.configuration;
|
package dev.tylerm.khs.configuration;
|
||||||
|
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
|
|
|
@ -1,26 +1,26 @@
|
||||||
package net.tylermurphy.hideAndSeek.configuration;
|
package dev.tylerm.khs.configuration;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.game.events.Border;
|
import dev.tylerm.khs.game.events.Border;
|
||||||
import net.tylermurphy.hideAndSeek.world.WorldLoader;
|
import dev.tylerm.khs.util.Location;
|
||||||
import net.tylermurphy.hideAndSeek.util.Location;
|
import dev.tylerm.khs.world.WorldLoader;
|
||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
import static dev.tylerm.khs.configuration.Config.*;
|
||||||
|
|
||||||
public class Map {
|
public class Map {
|
||||||
|
|
||||||
private final String name;
|
private final String name;
|
||||||
|
|
||||||
private Location
|
private dev.tylerm.khs.util.Location
|
||||||
spawnPosition = Location.getDefault(),
|
spawnPosition = dev.tylerm.khs.util.Location.getDefault(),
|
||||||
lobbyPosition = Location.getDefault(),
|
lobbyPosition = dev.tylerm.khs.util.Location.getDefault(),
|
||||||
seekerLobbyPosition = Location.getDefault();
|
seekerLobbyPosition = dev.tylerm.khs.util.Location.getDefault();
|
||||||
|
|
||||||
private int
|
private int
|
||||||
xBoundMin = 0,
|
xBoundMin = 0,
|
||||||
|
@ -51,15 +51,15 @@ public class Map {
|
||||||
this.worldLoader = new WorldLoader(this);
|
this.worldLoader = new WorldLoader(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSpawn(Location pos) {
|
public void setSpawn(dev.tylerm.khs.util.Location pos) {
|
||||||
this.spawnPosition = pos;
|
this.spawnPosition = pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLobby(Location pos) {
|
public void setLobby(dev.tylerm.khs.util.Location pos) {
|
||||||
this.lobbyPosition = pos;
|
this.lobbyPosition = pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSeekerLobby(Location pos) {
|
public void setSeekerLobby(dev.tylerm.khs.util.Location pos) {
|
||||||
this.seekerLobbyPosition = pos;
|
this.seekerLobbyPosition = pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ public class Map {
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public Location getGameSpawn() {
|
public dev.tylerm.khs.util.Location getGameSpawn() {
|
||||||
if(mapSaveEnabled) {
|
if(mapSaveEnabled) {
|
||||||
return spawnPosition.changeWorld("hs_"+name);
|
return spawnPosition.changeWorld("hs_"+name);
|
||||||
} else {
|
} else {
|
||||||
|
@ -117,7 +117,7 @@ public class Map {
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public Location getSpawn() {
|
public dev.tylerm.khs.util.Location getSpawn() {
|
||||||
return spawnPosition;
|
return spawnPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ public class Map {
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public Location getLobby() {
|
public dev.tylerm.khs.util.Location getLobby() {
|
||||||
return lobbyPosition;
|
return lobbyPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,7 +137,7 @@ public class Map {
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public Location getSeekerLobby() {
|
public dev.tylerm.khs.util.Location getSeekerLobby() {
|
||||||
return seekerLobbyPosition;
|
return seekerLobbyPosition;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package net.tylermurphy.hideAndSeek.configuration;
|
package dev.tylerm.khs.configuration;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.util.Location;
|
import dev.tylerm.khs.util.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
|
@ -1,6 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.database;
|
package dev.tylerm.khs.database;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.databaseType;
|
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -13,10 +11,11 @@ import java.util.UUID;
|
||||||
|
|
||||||
import com.google.common.io.ByteStreams;
|
import com.google.common.io.ByteStreams;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.database.connections.DatabaseConnection;
|
import dev.tylerm.khs.configuration.Config;
|
||||||
import net.tylermurphy.hideAndSeek.database.connections.MySQLConnection;
|
import dev.tylerm.khs.database.connections.DatabaseConnection;
|
||||||
import net.tylermurphy.hideAndSeek.database.connections.SQLiteConnection;
|
import dev.tylerm.khs.database.connections.MySQLConnection;
|
||||||
|
import dev.tylerm.khs.database.connections.SQLiteConnection;
|
||||||
|
|
||||||
public class Database {
|
public class Database {
|
||||||
|
|
||||||
|
@ -27,14 +26,14 @@ public class Database {
|
||||||
|
|
||||||
public Database(){
|
public Database(){
|
||||||
|
|
||||||
if(databaseType.equalsIgnoreCase("SQLITE")) {
|
if(Config.databaseType.equalsIgnoreCase("SQLITE")) {
|
||||||
Main.getInstance().getLogger().info("SQLITE database chosen");
|
Main.getInstance().getLogger().info("SQLITE database chosen");
|
||||||
connection = new SQLiteConnection();
|
connection = new SQLiteConnection();
|
||||||
} else if(databaseType.equalsIgnoreCase("MYSQL")) {
|
} else if(Config.databaseType.equalsIgnoreCase("MYSQL")) {
|
||||||
Main.getInstance().getLogger().info("MYSQL database chosen");
|
Main.getInstance().getLogger().info("MYSQL database chosen");
|
||||||
connection = new MySQLConnection();
|
connection = new MySQLConnection();
|
||||||
} else {
|
} else {
|
||||||
throw new IllegalArgumentException("Invalid database type: " + databaseType);
|
throw new IllegalArgumentException("Invalid database type: " + Config.databaseType);
|
||||||
}
|
}
|
||||||
|
|
||||||
playerInfo = new GameDataTable(this);
|
playerInfo = new GameDataTable(this);
|
|
@ -17,12 +17,12 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.database;
|
package dev.tylerm.khs.database;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.database.util.PlayerInfo;
|
import dev.tylerm.khs.database.util.PlayerInfo;
|
||||||
import net.tylermurphy.hideAndSeek.game.Board;
|
import dev.tylerm.khs.game.Board;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.WinType;
|
import dev.tylerm.khs.game.util.WinType;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
@ -79,7 +79,6 @@ public class GameDataTable {
|
||||||
rs.getInt("seeker_deaths")
|
rs.getInt("seeker_deaths")
|
||||||
);
|
);
|
||||||
rs.close();
|
rs.close();
|
||||||
connection.close();
|
|
||||||
CACHE.put(uuid, info);
|
CACHE.put(uuid, info);
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
@ -111,7 +110,6 @@ public class GameDataTable {
|
||||||
rs.getInt("seeker_deaths")
|
rs.getInt("seeker_deaths")
|
||||||
);
|
);
|
||||||
rs.close();
|
rs.close();
|
||||||
connection.close();
|
|
||||||
CACHE.put(uuid, info);
|
CACHE.put(uuid, info);
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
@ -145,7 +143,6 @@ public class GameDataTable {
|
||||||
infoList.add(info);
|
infoList.add(info);
|
||||||
}
|
}
|
||||||
rs.close();
|
rs.close();
|
||||||
connection.close();
|
|
||||||
return infoList;
|
return infoList;
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
Main.getInstance().getLogger().severe("SQL Error: " + e.getMessage());
|
Main.getInstance().getLogger().severe("SQL Error: " + e.getMessage());
|
||||||
|
@ -190,8 +187,8 @@ public class GameDataTable {
|
||||||
database.encodeUUID(info.getUniqueId()),
|
database.encodeUUID(info.getUniqueId()),
|
||||||
info.getHiderWins() + (winners.contains(uuid) && type == WinType.HIDER_WIN ? 1 : 0),
|
info.getHiderWins() + (winners.contains(uuid) && type == WinType.HIDER_WIN ? 1 : 0),
|
||||||
info.getSeekerWins() + (winners.contains(uuid) && type == WinType.SEEKER_WIN ? 1 : 0),
|
info.getSeekerWins() + (winners.contains(uuid) && type == WinType.SEEKER_WIN ? 1 : 0),
|
||||||
info.getHiderGames() + (board.isHider(uuid) || (board.isSeeker(uuid) && !board.getFirstSeeker().getUniqueId().equals(uuid)) ? 1 : 0),
|
info.getHiderGames() + (board.isHider(uuid) || (board.isSeeker(uuid) && winners.contains(uuid)) ? 1 : 0),
|
||||||
info.getSeekerGames() + (board.getFirstSeeker().getUniqueId().equals(uuid) ? 1 : 0),
|
info.getSeekerGames() + (board.isSeeker(uuid) && winners.contains(uuid) ? 1 : 0),
|
||||||
info.getHiderKills() + hider_kills.getOrDefault(uuid, 0),
|
info.getHiderKills() + hider_kills.getOrDefault(uuid, 0),
|
||||||
info.getSeekerKills() + seeker_kills.getOrDefault(uuid, 0),
|
info.getSeekerKills() + seeker_kills.getOrDefault(uuid, 0),
|
||||||
info.getHiderDeaths() + hider_deaths.getOrDefault(uuid, 0),
|
info.getHiderDeaths() + hider_deaths.getOrDefault(uuid, 0),
|
|
@ -1,6 +1,6 @@
|
||||||
package net.tylermurphy.hideAndSeek.database;
|
package dev.tylerm.khs.database;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.util.io.BukkitObjectInputStream;
|
import org.bukkit.util.io.BukkitObjectInputStream;
|
||||||
import org.bukkit.util.io.BukkitObjectOutputStream;
|
import org.bukkit.util.io.BukkitObjectOutputStream;
|
|
@ -17,9 +17,9 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.database;
|
package dev.tylerm.khs.database;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.database.util.LegacyPlayerInfo;
|
import dev.tylerm.khs.database.util.LegacyPlayerInfo;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
|
@ -17,9 +17,9 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.database;
|
package dev.tylerm.khs.database;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
|
@ -17,7 +17,7 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.database.connections;
|
package dev.tylerm.khs.database.connections;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
|
@ -17,17 +17,15 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.database.connections;
|
package dev.tylerm.khs.database.connections;
|
||||||
|
|
||||||
import com.zaxxer.hikari.HikariConfig;
|
import com.zaxxer.hikari.HikariConfig;
|
||||||
import com.zaxxer.hikari.HikariDataSource;
|
import com.zaxxer.hikari.HikariDataSource;
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
|
import dev.tylerm.khs.configuration.Config;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Statement;
|
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
|
||||||
|
|
||||||
public class MySQLConnection implements DatabaseConnection {
|
public class MySQLConnection implements DatabaseConnection {
|
||||||
|
|
||||||
|
@ -37,20 +35,20 @@ public class MySQLConnection implements DatabaseConnection {
|
||||||
|
|
||||||
HikariConfig config = new HikariConfig();
|
HikariConfig config = new HikariConfig();
|
||||||
|
|
||||||
Main.getInstance().getLogger().info("Database host: " + databaseHost);
|
Main.getInstance().getLogger().info("Database host: " + Config.databaseHost);
|
||||||
Main.getInstance().getLogger().info("Database port: " + databasePort);
|
Main.getInstance().getLogger().info("Database port: " + Config.databasePort);
|
||||||
Main.getInstance().getLogger().info("Database user: " + databaseUser);
|
Main.getInstance().getLogger().info("Database user: " + Config.databaseUser);
|
||||||
Main.getInstance().getLogger().info("Database pass: xxxxxxxxxxx");
|
Main.getInstance().getLogger().info("Database pass: xxxxxxxxxxx");
|
||||||
Main.getInstance().getLogger().info("Database name: " + databaseName);
|
Main.getInstance().getLogger().info("Database name: " + Config.databaseName);
|
||||||
|
|
||||||
|
|
||||||
config.setDriverClassName(org.mariadb.jdbc.Driver.class.getName());
|
config.setDriverClassName(org.mariadb.jdbc.Driver.class.getName());
|
||||||
config.setJdbcUrl("jdbc:mariadb://"+databaseHost+":"+databasePort+"/"+databaseName.trim());
|
config.setJdbcUrl("jdbc:mariadb://"+ Config.databaseHost+":"+ Config.databasePort+"/"+ Config.databaseName.trim());
|
||||||
config.addDataSourceProperty("cachePrepStmts", "true");
|
config.addDataSourceProperty("cachePrepStmts", "true");
|
||||||
config.addDataSourceProperty("prepStmtCacheSize", "250");
|
config.addDataSourceProperty("prepStmtCacheSize", "250");
|
||||||
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
|
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
|
||||||
config.addDataSourceProperty("user", databaseUser);
|
config.addDataSourceProperty("user", Config.databaseUser);
|
||||||
config.addDataSourceProperty("password",databasePass);
|
config.addDataSourceProperty("password", Config.databasePass);
|
||||||
config.addDataSourceProperty("autoCommit", "true");
|
config.addDataSourceProperty("autoCommit", "true");
|
||||||
config.setAutoCommit(true);
|
config.setAutoCommit(true);
|
||||||
config.setMaximumPoolSize(20);
|
config.setMaximumPoolSize(20);
|
|
@ -17,9 +17,9 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.database.connections;
|
package dev.tylerm.khs.database.connections;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import org.sqlite.SQLiteConfig;
|
import org.sqlite.SQLiteConfig;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -52,7 +52,7 @@ public class SQLiteConnection implements DatabaseConnection {
|
||||||
public Connection connect() {
|
public Connection connect() {
|
||||||
Connection conn = null;
|
Connection conn = null;
|
||||||
try {
|
try {
|
||||||
String url = "jdbc:sqlite:"+databaseFile;
|
String url = "jdbc:sqlite:"+databaseFile.getPath();
|
||||||
conn = DriverManager.getConnection(url, config.toProperties());
|
conn = DriverManager.getConnection(url, config.toProperties());
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
Main.getInstance().getLogger().severe(e.getMessage());
|
Main.getInstance().getLogger().severe(e.getMessage());
|
|
@ -17,7 +17,7 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.database.util;
|
package dev.tylerm.khs.database.util;
|
||||||
|
|
||||||
public class LegacyPlayerInfo {
|
public class LegacyPlayerInfo {
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.database.util;
|
package dev.tylerm.khs.database.util;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package net.tylermurphy.hideAndSeek.game;
|
package dev.tylerm.khs.game;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.game.events.Border;
|
||||||
import net.tylermurphy.hideAndSeek.game.events.Border;
|
import dev.tylerm.khs.game.events.Glow;
|
||||||
import net.tylermurphy.hideAndSeek.game.events.Glow;
|
import dev.tylerm.khs.game.events.Taunt;
|
||||||
import net.tylermurphy.hideAndSeek.game.events.Taunt;
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.Main;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -13,9 +13,9 @@ import org.bukkit.scoreboard.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
import static dev.tylerm.khs.configuration.Config.*;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Leaderboard.*;
|
import static dev.tylerm.khs.configuration.Leaderboard.*;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class Board {
|
public class Board {
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public class Board {
|
||||||
SPECTATOR,
|
SPECTATOR,
|
||||||
}
|
}
|
||||||
|
|
||||||
private UUID initialSeeker = null;
|
private List<UUID> initialSeekers = null;
|
||||||
private final Map<UUID, Type> Players = new HashMap<>();
|
private final Map<UUID, Type> Players = new HashMap<>();
|
||||||
private final Map<UUID, CustomBoard> customBoards = new HashMap<>();
|
private final Map<UUID, CustomBoard> customBoards = new HashMap<>();
|
||||||
private final Map<UUID, Integer> hider_kills = new HashMap<>(), seeker_kills = new HashMap<>(), hider_deaths = new HashMap<>(), seeker_deaths = new HashMap<>();
|
private final Map<UUID, Integer> hider_kills = new HashMap<>(), seeker_kills = new HashMap<>(), hider_deaths = new HashMap<>(), seeker_deaths = new HashMap<>();
|
||||||
|
@ -34,6 +34,10 @@ public class Board {
|
||||||
return Players.containsKey(player.getUniqueId());
|
return Players.containsKey(player.getUniqueId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean containsUUID(UUID uuid) {
|
||||||
|
return Players.containsKey(uuid);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isHider(Player player) {
|
public boolean isHider(Player player) {
|
||||||
return isHider(player.getUniqueId());
|
return isHider(player.getUniqueId());
|
||||||
}
|
}
|
||||||
|
@ -104,9 +108,15 @@ public class Board {
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Player getFirstSeeker() {
|
public void setInitialSeekers(List<UUID> seekers) {
|
||||||
if(initialSeeker == null) return null;
|
initialSeekers = seekers;
|
||||||
return Bukkit.getPlayer(initialSeeker);
|
}
|
||||||
|
|
||||||
|
public List<Player> getInitialSeekers() {
|
||||||
|
if(initialSeekers == null) return null;
|
||||||
|
return initialSeekers.stream().map(u -> {
|
||||||
|
return Bukkit.getPlayer(u);
|
||||||
|
}).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Player getPlayer(UUID uuid) {
|
public Player getPlayer(UUID uuid) {
|
||||||
|
@ -121,9 +131,6 @@ public class Board {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addSeeker(Player player) {
|
public void addSeeker(Player player) {
|
||||||
if(initialSeeker == null) {
|
|
||||||
initialSeeker = player.getUniqueId();
|
|
||||||
}
|
|
||||||
Players.put(player.getUniqueId(), Type.SEEKER);
|
Players.put(player.getUniqueId(), Type.SEEKER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -223,7 +230,7 @@ public class Board {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getMapName() {
|
public String getMapName() {
|
||||||
net.tylermurphy.hideAndSeek.configuration.Map map = Main.getInstance().getGame().getCurrentMap();
|
dev.tylerm.khs.configuration.Map map = Main.getInstance().getGame().getCurrentMap();
|
||||||
if(map == null) return "Invalid";
|
if(map == null) return "Invalid";
|
||||||
else return map.getName();
|
else return map.getName();
|
||||||
}
|
}
|
||||||
|
@ -347,7 +354,7 @@ public class Board {
|
||||||
|
|
||||||
public void cleanup() {
|
public void cleanup() {
|
||||||
Players.clear();;
|
Players.clear();;
|
||||||
initialSeeker = null;
|
initialSeekers = null;
|
||||||
customBoards.clear();
|
customBoards.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -415,13 +422,8 @@ class CustomBoard {
|
||||||
seekerTeam.setNameTagVisibility(NameTagVisibility.NEVER);
|
seekerTeam.setNameTagVisibility(NameTagVisibility.NEVER);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (Main.getInstance().supports(12)) {
|
hiderTeam.setPrefix(message("HIDER_TEAM_NAME").toString() + " " + ChatColor.RESET);
|
||||||
hiderTeam.setColor(ChatColor.GOLD);
|
seekerTeam.setPrefix(message("SEEKER_TEAM_NAME").toString() + " " + ChatColor.RESET);
|
||||||
seekerTeam.setColor(ChatColor.RED);
|
|
||||||
} else {
|
|
||||||
hiderTeam.setPrefix(ChatColor.translateAlternateColorCodes('&', "&6"));
|
|
||||||
seekerTeam.setPrefix(ChatColor.translateAlternateColorCodes('&', "&c"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLine(String key, String message) {
|
public void setLine(String key, String message) {
|
|
@ -1,10 +1,10 @@
|
||||||
package net.tylermurphy.hideAndSeek.game;
|
package dev.tylerm.khs.game;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
import static dev.tylerm.khs.configuration.Config.*;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.game.util.Disguise;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Disguise;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.game;
|
package dev.tylerm.khs.game;
|
||||||
|
|
||||||
import static com.comphenix.protocol.PacketType.Play.Server.*;
|
import static com.comphenix.protocol.PacketType.Play.Server.*;
|
||||||
|
|
|
@ -17,19 +17,21 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.game;
|
package dev.tylerm.khs.game;
|
||||||
|
|
||||||
import com.cryptomorin.xseries.messages.ActionBar;
|
import com.cryptomorin.xseries.messages.ActionBar;
|
||||||
import com.cryptomorin.xseries.messages.Titles;
|
import com.cryptomorin.xseries.messages.Titles;
|
||||||
import com.google.common.io.ByteArrayDataOutput;
|
import com.google.common.io.ByteArrayDataOutput;
|
||||||
import com.google.common.io.ByteStreams;
|
import com.google.common.io.ByteStreams;
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.game.events.Glow;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.game.events.Taunt;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.game.listener.RespawnHandler;
|
||||||
import net.tylermurphy.hideAndSeek.game.events.Glow;
|
import dev.tylerm.khs.game.util.CountdownDisplay;
|
||||||
import net.tylermurphy.hideAndSeek.game.events.Taunt;
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import net.tylermurphy.hideAndSeek.game.listener.RespawnHandler;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.*;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
|
import dev.tylerm.khs.game.util.WinType;
|
||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
@ -38,8 +40,8 @@ import org.bukkit.inventory.ItemStack;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
import static dev.tylerm.khs.configuration.Config.*;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class Game {
|
public class Game {
|
||||||
|
|
||||||
|
@ -58,6 +60,8 @@ public class Game {
|
||||||
private int gameTimer;
|
private int gameTimer;
|
||||||
private boolean hiderLeft;
|
private boolean hiderLeft;
|
||||||
|
|
||||||
|
private Random random;
|
||||||
|
|
||||||
public Game(Map map, Board board) {
|
public Game(Map map, Board board) {
|
||||||
|
|
||||||
this.currentMap = map;
|
this.currentMap = map;
|
||||||
|
@ -74,6 +78,8 @@ public class Game {
|
||||||
this.startingTimer = -1;
|
this.startingTimer = -1;
|
||||||
this.gameTimer = 0;
|
this.gameTimer = 0;
|
||||||
this.hiderLeft = false;
|
this.hiderLeft = false;
|
||||||
|
|
||||||
|
this.random = new Random();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Status getStatus(){
|
public Status getStatus(){
|
||||||
|
@ -97,22 +103,28 @@ public class Game {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void start() {
|
public void start() {
|
||||||
Player seeker;
|
List<Player> seekers = new ArrayList<>(startingSeekerCount);
|
||||||
try {
|
List<Player> pool = board.getPlayers();
|
||||||
int rand = (int) (Math.random() * board.getPlayers().size());
|
for (int i = 0; i < startingSeekerCount; i++) {
|
||||||
seeker = board.getPlayers().get(rand);
|
try {
|
||||||
} catch (Exception e){
|
int rand = random.nextInt(0, pool.size());
|
||||||
Main.getInstance().getLogger().warning("Failed to select random seeker.");
|
seekers.add(pool.remove(rand));
|
||||||
return;
|
} catch (Exception e){
|
||||||
}
|
Main.getInstance().getLogger().warning("Failed to select random seeker.");
|
||||||
start(seeker);
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
start(seekers);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void start(Player seeker) {
|
public void start(List<Player> seekers) {
|
||||||
if (mapSaveEnabled) currentMap.getWorldLoader().rollback();
|
if (mapSaveEnabled) currentMap.getWorldLoader().rollback();
|
||||||
board.reload();
|
board.reload();
|
||||||
board.addSeeker(seeker);
|
board.setInitialSeekers(seekers.stream().map(Player::getUniqueId).collect(Collectors.toList()));
|
||||||
PlayerLoader.loadSeeker(seeker, currentMap);
|
seekers.forEach(seeker -> {
|
||||||
|
board.addSeeker(seeker);
|
||||||
|
PlayerLoader.loadSeeker(seeker, currentMap);
|
||||||
|
});
|
||||||
board.getPlayers().forEach(player -> {
|
board.getPlayers().forEach(player -> {
|
||||||
if(board.isSeeker(player)) return;
|
if(board.isSeeker(player)) return;
|
||||||
board.addHider(player);
|
board.addHider(player);
|
||||||
|
@ -122,7 +134,7 @@ public class Game {
|
||||||
currentMap.getWorldBorder().resetWorldBorder();
|
currentMap.getWorldBorder().resetWorldBorder();
|
||||||
if (gameLength > 0) gameTimer = gameLength;
|
if (gameLength > 0) gameTimer = gameLength;
|
||||||
status = Status.STARTING;
|
status = Status.STARTING;
|
||||||
startingTimer = 30;
|
startingTimer = hidingTimer;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void stop(WinType type) {
|
private void stop(WinType type) {
|
||||||
|
@ -133,10 +145,15 @@ public class Game {
|
||||||
Main.getInstance().getDatabase().getGameData().addWins(board, players, winners, board.getHiderKills(), board.getHiderDeaths(), board.getSeekerKills(), board.getSeekerDeaths(), type);
|
Main.getInstance().getDatabase().getGameData().addWins(board, players, winners, board.getHiderKills(), board.getHiderDeaths(), board.getSeekerKills(), board.getSeekerDeaths(), type);
|
||||||
} else if (type == WinType.SEEKER_WIN) {
|
} else if (type == WinType.SEEKER_WIN) {
|
||||||
List<UUID> winners = new ArrayList<>();
|
List<UUID> winners = new ArrayList<>();
|
||||||
winners.add(board.getFirstSeeker().getUniqueId());
|
board.getInitialSeekers().forEach(p -> {
|
||||||
|
winners.add(p.getUniqueId());
|
||||||
|
});
|
||||||
|
if (!waitTillNoneLeft && board.getHiders().size() == 1) {
|
||||||
|
winners.add(board.getHiders().get(0).getUniqueId());
|
||||||
|
}
|
||||||
Main.getInstance().getDatabase().getGameData().addWins(board, players, winners, board.getHiderKills(), board.getHiderDeaths(), board.getSeekerKills(), board.getSeekerDeaths(), type);
|
Main.getInstance().getDatabase().getGameData().addWins(board, players, winners, board.getHiderKills(), board.getHiderDeaths(), board.getSeekerKills(), board.getSeekerDeaths(), type);
|
||||||
}
|
}
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(), this::end, 5*20);
|
Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(), this::end, endGameDelay*20);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void end() {
|
public void end() {
|
||||||
|
@ -332,6 +349,12 @@ public class Game {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void broadcastTitle(String title, String subtitle) {
|
||||||
|
for (Player player : board.getPlayers()) {
|
||||||
|
Titles.sendTitle(player, 10, 70, 20, title, subtitle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isCurrentMapValid() {
|
public boolean isCurrentMapValid() {
|
||||||
return currentMap != null && !currentMap.isNotSetup();
|
return currentMap != null && !currentMap.isNotSetup();
|
||||||
}
|
}
|
||||||
|
@ -351,23 +374,35 @@ public class Game {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkWinConditions() {
|
private void checkWinConditions() {
|
||||||
if (board.sizeHider() < 1) {
|
int hiderCount = board.sizeHider();
|
||||||
if (hiderLeft) {
|
if (hiderCount < 1 || (!waitTillNoneLeft && hiderCount < 2)) {
|
||||||
|
if (hiderLeft && dontRewardQuit) {
|
||||||
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_QUIT"));
|
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_QUIT"));
|
||||||
else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_QUIT"));
|
else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_QUIT"));
|
||||||
|
if (gameOverTitle) broadcastTitle(message("GAME_TITLE_NO_WIN").toString(), message("GAME_GAMEOVER_HIDERS_QUIT").toString());
|
||||||
stop(WinType.NONE);
|
stop(WinType.NONE);
|
||||||
} else {
|
} else {
|
||||||
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND"));
|
if (hiderCount < 1 || waitTillNoneLeft) {
|
||||||
else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND"));
|
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND"));
|
||||||
|
else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND"));
|
||||||
|
if (gameOverTitle) broadcastTitle(message("GAME_TITLE_SEEKERS_WIN").toString(), message("GAME_GAMEOVER_HIDERS_FOUND").toString());
|
||||||
|
} else {
|
||||||
|
Player hider = board.getHiders().get(0);
|
||||||
|
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_LAST_HIDER").addPlayer(hider));
|
||||||
|
else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_LAST_HIDER").addPlayer(hider));
|
||||||
|
if (gameOverTitle) broadcastTitle(message("GAME_TITLE_SINGLE_HIDER_WIN").addPlayer(hider).toString(), message("GAME_SUBTITLE_SINGLE_HIDER_WIN").addPlayer(hider).toString());
|
||||||
|
}
|
||||||
stop(WinType.SEEKER_WIN);
|
stop(WinType.SEEKER_WIN);
|
||||||
}
|
}
|
||||||
} else if (board.sizeSeeker() < 1) {
|
} else if (board.sizeSeeker() < 1) {
|
||||||
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(abortPrefix + message("GAME_GAMEOVER_SEEKERS_QUIT"));
|
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(abortPrefix + message("GAME_GAMEOVER_SEEKERS_QUIT"));
|
||||||
else broadcastMessage(abortPrefix + message("GAME_GAMEOVER_SEEKERS_QUIT"));
|
else broadcastMessage(abortPrefix + message("GAME_GAMEOVER_SEEKERS_QUIT"));
|
||||||
stop(WinType.NONE);
|
if (gameOverTitle) broadcastTitle(message("GAME_TITLE_NO_WIN").toString(), message("GAME_GAMEOVER_SEEKERS_QUIT").toString());
|
||||||
|
stop(dontRewardQuit ? WinType.NONE : WinType.HIDER_WIN);
|
||||||
} else if (gameTimer < 1) {
|
} else if (gameTimer < 1) {
|
||||||
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_TIME"));
|
if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_TIME"));
|
||||||
else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_TIME"));
|
else broadcastMessage(gameOverPrefix + message("GAME_GAMEOVER_TIME"));
|
||||||
|
if (gameOverTitle) broadcastTitle(message("GAME_TITLE_HIDERS_WIN").toString(), message("GAME_GAMEOVER_TIME").toString());
|
||||||
stop(WinType.HIDER_WIN);
|
stop(WinType.HIDER_WIN);
|
||||||
}
|
}
|
||||||
hiderLeft = false;
|
hiderLeft = false;
|
|
@ -17,13 +17,13 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.game;
|
package dev.tylerm.khs.game;
|
||||||
|
|
||||||
import com.cryptomorin.xseries.messages.Titles;
|
import com.cryptomorin.xseries.messages.Titles;
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Items;
|
import dev.tylerm.khs.configuration.Items;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.attribute.Attribute;
|
import org.bukkit.attribute.Attribute;
|
||||||
import org.bukkit.attribute.AttributeInstance;
|
import org.bukkit.attribute.AttributeInstance;
|
||||||
|
@ -33,8 +33,10 @@ import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
import static dev.tylerm.khs.configuration.Config.*;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Items.HIDER_ITEMS;
|
||||||
|
import static dev.tylerm.khs.configuration.Items.SEEKER_ITEMS;
|
||||||
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public class PlayerLoader {
|
public class PlayerLoader {
|
||||||
|
@ -67,19 +69,52 @@ public class PlayerLoader {
|
||||||
Titles.sendTitle(player, 10, 70, 20, ChatColor.GRAY + "" + ChatColor.BOLD + "SPECTATING", ChatColor.WHITE + message("SPECTATOR_SUBTITLE").toString());
|
Titles.sendTitle(player, 10, 70, 20, ChatColor.GRAY + "" + ChatColor.BOLD + "SPECTATING", ChatColor.WHITE + message("SPECTATOR_SUBTITLE").toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void loadDeadHiderSpectator(Player player, Map map) {
|
||||||
|
map.getGameSpawn().teleport(player);
|
||||||
|
loadPlayer(player);
|
||||||
|
player.setAllowFlight(true);
|
||||||
|
player.setFlying(true);
|
||||||
|
player.setFallDistance(0.0F);
|
||||||
|
player.getInventory().setItem(flightToggleItemPosition, flightToggleItem);
|
||||||
|
player.getInventory().setItem(teleportItemPosition, teleportItem);
|
||||||
|
Main.getInstance().getBoard().getPlayers().forEach(otherPlayer -> otherPlayer.hidePlayer(player));
|
||||||
|
}
|
||||||
|
|
||||||
public static void resetPlayer(Player player, Board board){
|
public static void resetPlayer(Player player, Board board){
|
||||||
if(board.isSpectator(player)) return;
|
if(board.isSpectator(player)) return;
|
||||||
loadPlayer(player);
|
loadPlayer(player);
|
||||||
if (board.isSeeker(player)) {
|
if (board.isSeeker(player)) {
|
||||||
if (pvpEnabled)
|
if (pvpEnabled) {
|
||||||
for(ItemStack item : Items.SEEKER_ITEMS)
|
for(int i = 0; i < 9; i++) {
|
||||||
player.getInventory().addItem(item);
|
if (SEEKER_ITEMS.get(i) == null) continue;
|
||||||
|
player.getInventory().setItem(i, SEEKER_ITEMS.get(i));
|
||||||
|
}
|
||||||
|
if (Items.SEEKER_HELM != null)
|
||||||
|
player.getInventory().setHelmet(Items.SEEKER_HELM);
|
||||||
|
if (Items.SEEKER_CHEST != null)
|
||||||
|
player.getInventory().setChestplate(Items.SEEKER_CHEST);
|
||||||
|
if (Items.SEEKER_LEGS != null)
|
||||||
|
player.getInventory().setLeggings(Items.SEEKER_LEGS);
|
||||||
|
if (Items.SEEKER_BOOTS != null)
|
||||||
|
player.getInventory().setBoots(Items.SEEKER_BOOTS);
|
||||||
|
}
|
||||||
for(PotionEffect effect : Items.SEEKER_EFFECTS)
|
for(PotionEffect effect : Items.SEEKER_EFFECTS)
|
||||||
player.addPotionEffect(effect);
|
player.addPotionEffect(effect);
|
||||||
} else if (board.isHider(player)) {
|
} else if (board.isHider(player)) {
|
||||||
if (pvpEnabled)
|
if (pvpEnabled) {
|
||||||
for(ItemStack item : Items.HIDER_ITEMS)
|
for(int i = 0; i < 9; i++) {
|
||||||
player.getInventory().addItem(item);
|
if (HIDER_ITEMS.get(i) == null) continue;
|
||||||
|
player.getInventory().setItem(i, HIDER_ITEMS.get(i));
|
||||||
|
}
|
||||||
|
if (Items.HIDER_HELM != null)
|
||||||
|
player.getInventory().setHelmet(Items.HIDER_HELM);
|
||||||
|
if (Items.HIDER_CHEST != null)
|
||||||
|
player.getInventory().setChestplate(Items.HIDER_CHEST);
|
||||||
|
if (Items.HIDER_LEGS != null)
|
||||||
|
player.getInventory().setLeggings(Items.HIDER_LEGS);
|
||||||
|
if (Items.HIDER_BOOTS != null)
|
||||||
|
player.getInventory().setBoots(Items.HIDER_BOOTS);
|
||||||
|
}
|
||||||
for(PotionEffect effect : Items.HIDER_EFFECTS)
|
for(PotionEffect effect : Items.HIDER_EFFECTS)
|
||||||
player.addPotionEffect(effect);
|
player.addPotionEffect(effect);
|
||||||
if (glowEnabled) {
|
if (glowEnabled) {
|
|
@ -1,10 +1,10 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.events;
|
package dev.tylerm.khs.game.events;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
import static dev.tylerm.khs.configuration.Config.*;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class Border {
|
public class Border {
|
||||||
|
|
|
@ -1,17 +1,12 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.events;
|
package dev.tylerm.khs.game.events;
|
||||||
|
|
||||||
import com.comphenix.protocol.PacketType;
|
|
||||||
import com.comphenix.protocol.ProtocolLibrary;
|
import com.comphenix.protocol.ProtocolLibrary;
|
||||||
import com.comphenix.protocol.ProtocolManager;
|
import com.comphenix.protocol.ProtocolManager;
|
||||||
import com.comphenix.protocol.events.PacketContainer;
|
import dev.tylerm.khs.util.packet.EntityMetadataPacket;
|
||||||
import com.comphenix.protocol.wrappers.WrappedDataWatcher;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
|
||||||
import net.tylermurphy.hideAndSeek.util.packet.EntityMetadataPacket;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import static dev.tylerm.khs.configuration.Config.*;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
|
||||||
|
|
||||||
public class Glow {
|
public class Glow {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.events;
|
package dev.tylerm.khs.game.events;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.FireworkEffect;
|
import org.bukkit.FireworkEffect;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
@ -13,9 +13,9 @@ import java.util.Optional;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
import static dev.tylerm.khs.configuration.Config.*;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.tauntDelay;
|
import static dev.tylerm.khs.configuration.Config.tauntDelay;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class Taunt {
|
public class Taunt {
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.listener;
|
package dev.tylerm.khs.game.listener;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.blockedCommands;
|
import static dev.tylerm.khs.configuration.Config.blockedCommands;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
import static dev.tylerm.khs.configuration.Config.errorPrefix;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class BlockedCommandHandler implements Listener {
|
public class BlockedCommandHandler implements Listener {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.listener;
|
package dev.tylerm.khs.game.listener;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
|
@ -9,7 +9,7 @@ import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
|
|
||||||
public class ChatHandler implements Listener {
|
public class ChatHandler implements Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onChat(AsyncPlayerChatEvent event) {
|
public void onChat(AsyncPlayerChatEvent event) {
|
||||||
if (Main.getInstance().getBoard().isSpectator(event.getPlayer())) {
|
if (Main.getInstance().getBoard().isSpectator(event.getPlayer())) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
|
@ -1,11 +1,11 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.listener;
|
package dev.tylerm.khs.game.listener;
|
||||||
|
|
||||||
import com.cryptomorin.xseries.XSound;
|
import com.cryptomorin.xseries.XSound;
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.game.Board;
|
import dev.tylerm.khs.game.Board;
|
||||||
import net.tylermurphy.hideAndSeek.game.Game;
|
import dev.tylerm.khs.game.Game;
|
||||||
import net.tylermurphy.hideAndSeek.game.PlayerLoader;
|
import dev.tylerm.khs.game.PlayerLoader;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Projectile;
|
import org.bukkit.entity.Projectile;
|
||||||
|
@ -16,8 +16,8 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
import static dev.tylerm.khs.configuration.Config.*;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class DamageHandler implements Listener {
|
public class DamageHandler implements Listener {
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ public class DamageHandler implements Listener {
|
||||||
// Reveal player if they are disguised
|
// Reveal player if they are disguised
|
||||||
Main.getInstance().getDisguiser().reveal(player);
|
Main.getInstance().getDisguiser().reveal(player);
|
||||||
// Teleport player to seeker spawn
|
// Teleport player to seeker spawn
|
||||||
if(delayedRespawn){
|
if(delayedRespawn && !respawnAsSpectator){
|
||||||
game.getCurrentMap().getGameSeekerLobby().teleport(player);
|
game.getCurrentMap().getGameSeekerLobby().teleport(player);
|
||||||
player.sendMessage(messagePrefix + message("RESPAWN_NOTICE").addAmount(delayedRespawnDelay));
|
player.sendMessage(messagePrefix + message("RESPAWN_NOTICE").addAmount(delayedRespawnDelay));
|
||||||
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.getInstance(), () -> {
|
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.getInstance(), () -> {
|
||||||
|
@ -117,10 +117,14 @@ public class DamageHandler implements Listener {
|
||||||
} else {
|
} else {
|
||||||
game.broadcastMessage(message("GAME_PLAYER_FOUND_BY").addPlayer(player).addPlayer(attacker).toString());
|
game.broadcastMessage(message("GAME_PLAYER_FOUND_BY").addPlayer(player).addPlayer(attacker).toString());
|
||||||
}
|
}
|
||||||
board.addSeeker(player);
|
if (respawnAsSpectator) {
|
||||||
|
board.addSpectator(player);
|
||||||
|
PlayerLoader.loadDeadHiderSpectator(player, game.getCurrentMap());
|
||||||
|
} else {
|
||||||
|
board.addSeeker(player);
|
||||||
|
PlayerLoader.resetPlayer(player, board);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//Reload player
|
|
||||||
PlayerLoader.resetPlayer(player, board);
|
|
||||||
board.reloadBoardTeams();
|
board.reloadBoardTeams();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.listener;
|
package dev.tylerm.khs.game.listener;
|
||||||
|
|
||||||
import static com.comphenix.protocol.PacketType.Play.Client.*;
|
import static com.comphenix.protocol.PacketType.Play.Client.*;
|
||||||
|
|
||||||
|
@ -8,15 +8,11 @@ import com.comphenix.protocol.events.PacketAdapter;
|
||||||
import com.comphenix.protocol.events.PacketContainer;
|
import com.comphenix.protocol.events.PacketContainer;
|
||||||
import com.comphenix.protocol.events.PacketEvent;
|
import com.comphenix.protocol.events.PacketEvent;
|
||||||
import com.comphenix.protocol.wrappers.EnumWrappers;
|
import com.comphenix.protocol.wrappers.EnumWrappers;
|
||||||
import com.comphenix.protocol.wrappers.WrappedEnumEntityUseAction;
|
|
||||||
import com.comphenix.protocol.wrappers.EnumWrappers.EntityUseAction;
|
import com.comphenix.protocol.wrappers.EnumWrappers.EntityUseAction;
|
||||||
import com.cryptomorin.xseries.XSound;
|
import dev.tylerm.khs.Main;
|
||||||
import com.cryptomorin.xseries.messages.ActionBar;
|
import dev.tylerm.khs.game.util.Disguise;
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Disguise;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.attribute.Attribute;
|
import org.bukkit.attribute.Attribute;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
|
@ -1,9 +1,10 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.listener;
|
package dev.tylerm.khs.game.listener;
|
||||||
|
|
||||||
import com.cryptomorin.xseries.XMaterial;
|
import com.cryptomorin.xseries.XMaterial;
|
||||||
import com.cryptomorin.xseries.messages.ActionBar;
|
import com.cryptomorin.xseries.messages.ActionBar;
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.game.Board;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
@ -13,14 +14,15 @@ import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.bukkit.inventory.meta.SkullMeta;
|
import org.bukkit.inventory.meta.SkullMeta;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
import static dev.tylerm.khs.configuration.Config.*;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.glowPowerupItem;
|
import static dev.tylerm.khs.configuration.Config.glowPowerupItem;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public class InteractHandler implements Listener {
|
public class InteractHandler implements Listener {
|
||||||
|
@ -94,17 +96,82 @@ public class InteractHandler implements Listener {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(temp.isSimilar(teleportItem)){
|
if(temp.isSimilar(teleportItem)){
|
||||||
int amount = Main.getInstance().getBoard().getHiders().size() + Main.getInstance().getBoard().getSeekers().size();
|
// int amount = Main.getInstance().getBoard().getHiders().size() + Main.getInstance().getBoard().getSeekers().size();
|
||||||
Inventory teleportMenu = Main.getInstance().getServer().createInventory(null, 9*(((amount-1)/9)+1), ChatColor.stripColor(teleportItem.getItemMeta().getDisplayName()));
|
// Inventory teleportMenu = Main.getInstance().getServer().createInventory(null, 9*(((amount-1)/9)+1), ChatColor.stripColor(teleportItem.getItemMeta().getDisplayName()));
|
||||||
List<String> hider_lore = new ArrayList<>(); hider_lore.add(message("HIDER_TEAM_NAME").toString());
|
// List<String> hider_lore = new ArrayList<>(); hider_lore.add(message("HIDER_TEAM_NAME").toString());
|
||||||
Main.getInstance().getBoard().getHiders().forEach(hider -> teleportMenu.addItem(getSkull(hider, hider_lore)));
|
// Main.getInstance().getBoard().getHiders().forEach(hider -> teleportMenu.addItem(getSkull(hider, hider_lore)));
|
||||||
List<String> seeker_lore = new ArrayList<>(); seeker_lore.add(message("SEEKER_TEAM_NAME").toString());
|
// List<String> seeker_lore = new ArrayList<>(); seeker_lore.add(message("SEEKER_TEAM_NAME").toString());
|
||||||
Main.getInstance().getBoard().getSeekers().forEach(seeker -> teleportMenu.addItem(getSkull(seeker, seeker_lore)));
|
// Main.getInstance().getBoard().getSeekers().forEach(seeker -> teleportMenu.addItem(getSkull(seeker, seeker_lore)));
|
||||||
event.getPlayer().openInventory(teleportMenu);
|
// event.getPlayer().openInventory(teleportMenu);
|
||||||
|
createSpectatorTeleportPage(event.getPlayer(), 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private ItemStack getSkull(Player player, List<String> lore){
|
public static void createSpectatorTeleportPage(Player player, int page) {
|
||||||
|
|
||||||
|
if (page < 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final Board board = Main.getInstance().getBoard();
|
||||||
|
List<Player> players = new ArrayList<>();
|
||||||
|
players.addAll(board.getHiders());
|
||||||
|
players.addAll(board.getSeekers());
|
||||||
|
|
||||||
|
final int page_size = 9 * 5;
|
||||||
|
final int amount = players.size();
|
||||||
|
final int start = page * page_size;
|
||||||
|
|
||||||
|
int page_amount = amount - start;
|
||||||
|
|
||||||
|
if (page_amount < 1) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean next = false, prev = true;
|
||||||
|
|
||||||
|
if (page_amount > page_size) {
|
||||||
|
page_amount = page_size;
|
||||||
|
next = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (page == 0) {
|
||||||
|
prev = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
final int rows = ((amount - 1) / 9) + 2;
|
||||||
|
|
||||||
|
final Inventory teleportMenu = Main.getInstance().getServer().createInventory(null, 9 * rows, ChatColor.stripColor(teleportItem.getItemMeta().getDisplayName()));
|
||||||
|
|
||||||
|
final List<String> hider_lore = new ArrayList<>(); hider_lore.add(message("HIDER_TEAM_NAME").toString());
|
||||||
|
final List<String> seeker_lore = new ArrayList<>(); seeker_lore.add(message("SEEKER_TEAM_NAME").toString());
|
||||||
|
|
||||||
|
for (int i = 0; i < page_amount; i++) {
|
||||||
|
Player plr = players.get(i);
|
||||||
|
teleportMenu.addItem(getSkull(plr, board.isHider(plr) ? hider_lore : seeker_lore));
|
||||||
|
}
|
||||||
|
|
||||||
|
final int lastRow = (rows - 1) * 9;
|
||||||
|
if (prev) {
|
||||||
|
teleportMenu.setItem(lastRow, getPageItem(page - 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (next) {
|
||||||
|
teleportMenu.setItem(lastRow + 8, getPageItem(page + 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
player.openInventory(teleportMenu);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ItemStack getPageItem(int page) {
|
||||||
|
ItemStack prevItem = new ItemStack(XMaterial.ENCHANTED_BOOK.parseMaterial(), page + 1);
|
||||||
|
ItemMeta meta = prevItem.getItemMeta();
|
||||||
|
meta.setDisplayName("Page " + (page+1));
|
||||||
|
prevItem.setItemMeta(meta);
|
||||||
|
return prevItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ItemStack getSkull(Player player, List<String> lore){
|
||||||
assert XMaterial.PLAYER_HEAD.parseMaterial() != null;
|
assert XMaterial.PLAYER_HEAD.parseMaterial() != null;
|
||||||
ItemStack playerHead = new ItemStack(XMaterial.PLAYER_HEAD.parseMaterial(), 1, (byte) 3);
|
ItemStack playerHead = new ItemStack(XMaterial.PLAYER_HEAD.parseMaterial(), 1, (byte) 3);
|
||||||
SkullMeta playerHeadMeta = (SkullMeta) playerHead.getItemMeta();
|
SkullMeta playerHeadMeta = (SkullMeta) playerHead.getItemMeta();
|
|
@ -17,14 +17,14 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.game.listener;
|
package dev.tylerm.khs.game.listener;
|
||||||
|
|
||||||
import com.cryptomorin.xseries.XMaterial;
|
import com.cryptomorin.xseries.XMaterial;
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.command.map.Debug;
|
import dev.tylerm.khs.command.map.Debug;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
import dev.tylerm.khs.configuration.Maps;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
@ -32,6 +32,8 @@ import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.bukkit.event.inventory.InventoryCloseEvent;
|
import org.bukkit.event.inventory.InventoryCloseEvent;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
public class InventoryHandler implements Listener {
|
public class InventoryHandler implements Listener {
|
||||||
|
|
||||||
|
@ -52,13 +54,30 @@ public class InventoryHandler implements Listener {
|
||||||
|
|
||||||
private void checkForSpectatorTeleportMenu(InventoryClickEvent event){
|
private void checkForSpectatorTeleportMenu(InventoryClickEvent event){
|
||||||
Player player = (Player) event.getWhoClicked();
|
Player player = (Player) event.getWhoClicked();
|
||||||
if (Main.getInstance().getBoard().isSpectator(player) && event.getCurrentItem().getType() == XMaterial.PLAYER_HEAD.parseMaterial()) {
|
|
||||||
event.setCancelled(true);
|
ItemStack item = event.getCurrentItem();
|
||||||
player.closeInventory();
|
ItemMeta meta = item.getItemMeta();
|
||||||
String name = event.getCurrentItem().getItemMeta().getDisplayName();
|
String name = meta.getDisplayName();
|
||||||
Player clicked = Main.getInstance().getServer().getPlayer(name);
|
|
||||||
if(clicked == null) return;
|
if (Main.getInstance().getBoard().isSpectator(player)) {
|
||||||
player.teleport(clicked);
|
if (XMaterial.PLAYER_HEAD.isSimilar(item)) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
player.closeInventory();
|
||||||
|
Player clicked = Main.getInstance().getServer().getPlayer(name);
|
||||||
|
if (clicked == null) return;
|
||||||
|
player.teleport(clicked);
|
||||||
|
} else if (XMaterial.ENCHANTED_BOOK.isSimilar(item)) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
player.closeInventory();
|
||||||
|
if (!name.startsWith("Page ")) return;
|
||||||
|
String number_str = name.substring(5);
|
||||||
|
try {
|
||||||
|
int page = Integer.parseInt(number_str);
|
||||||
|
InteractHandler.createSpectatorTeleportPage(player, page - 1);
|
||||||
|
} catch(Exception ignored) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.listener;
|
package dev.tylerm.khs.game.listener;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Items;
|
import dev.tylerm.khs.configuration.Items;
|
||||||
import net.tylermurphy.hideAndSeek.game.PlayerLoader;
|
import dev.tylerm.khs.game.PlayerLoader;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
@ -14,8 +14,8 @@ import org.bukkit.event.player.PlayerKickEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
import static dev.tylerm.khs.configuration.Config.*;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class JoinLeaveHandler implements Listener {
|
public class JoinLeaveHandler implements Listener {
|
||||||
|
|
||||||
|
@ -83,12 +83,16 @@ public class JoinLeaveHandler implements Listener {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeItems(Player player) {
|
private void removeItems(Player player) {
|
||||||
for(ItemStack si : Items.SEEKER_ITEMS)
|
for(ItemStack si : Items.SEEKER_ITEMS) {
|
||||||
for(ItemStack i : player.getInventory().getContents())
|
if (si == null) continue;
|
||||||
|
for (ItemStack i : player.getInventory().getContents())
|
||||||
if (si.isSimilar(i)) player.getInventory().remove(i);
|
if (si.isSimilar(i)) player.getInventory().remove(i);
|
||||||
for(ItemStack hi : Items.HIDER_ITEMS)
|
}
|
||||||
for(ItemStack i : player.getInventory().getContents())
|
for(ItemStack hi : Items.HIDER_ITEMS) {
|
||||||
|
if (hi == null) continue;
|
||||||
|
for (ItemStack i : player.getInventory().getContents())
|
||||||
if (hi.isSimilar(i)) player.getInventory().remove(i);
|
if (hi.isSimilar(i)) player.getInventory().remove(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,9 +1,9 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.listener;
|
package dev.tylerm.khs.game.listener;
|
||||||
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.game.listener.events.PlayerJumpEvent;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.game.listener.events.PlayerJumpEvent;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
|
@ -1,8 +1,8 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.listener;
|
package dev.tylerm.khs.game.listener;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Items;
|
import dev.tylerm.khs.configuration.Items;
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
import dev.tylerm.khs.game.util.Status;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
|
@ -13,8 +13,8 @@ import org.bukkit.event.entity.ItemSpawnEvent;
|
||||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.dropItems;
|
import static dev.tylerm.khs.configuration.Config.dropItems;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.regenHealth;
|
import static dev.tylerm.khs.configuration.Config.regenHealth;
|
||||||
|
|
||||||
public class PlayerHandler implements Listener {
|
public class PlayerHandler implements Listener {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.listener;
|
package dev.tylerm.khs.game.listener;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
|
@ -1,7 +1,7 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.listener;
|
package dev.tylerm.khs.game.listener;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.game.Board;
|
import dev.tylerm.khs.game.Board;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
|
@ -17,7 +17,7 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.game.listener.events;
|
package dev.tylerm.khs.game.listener.events;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Cancellable;
|
import org.bukkit.event.Cancellable;
|
|
@ -17,7 +17,7 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.tylermurphy.hideAndSeek.game.util;
|
package dev.tylerm.khs.game.util;
|
||||||
|
|
||||||
public enum CountdownDisplay {
|
public enum CountdownDisplay {
|
||||||
CHAT,
|
CHAT,
|
|
@ -1,10 +1,10 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.util;
|
package dev.tylerm.khs.game.util;
|
||||||
|
|
||||||
import com.cryptomorin.xseries.XSound;
|
import com.cryptomorin.xseries.XSound;
|
||||||
import com.cryptomorin.xseries.messages.ActionBar;
|
import com.cryptomorin.xseries.messages.ActionBar;
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.util.packet.BlockChangePacket;
|
||||||
import net.tylermurphy.hideAndSeek.util.packet.BlockChangePacket;
|
import dev.tylerm.khs.util.packet.EntityTeleportPacket;
|
||||||
import net.tylermurphy.hideAndSeek.util.packet.EntityTeleportPacket;
|
import dev.tylerm.khs.Main;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.util;
|
package dev.tylerm.khs.game.util;
|
||||||
|
|
||||||
public enum Status {
|
public enum Status {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.game.util;
|
package dev.tylerm.khs.game.util;
|
||||||
|
|
||||||
public enum WinType {
|
public enum WinType {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package net.tylermurphy.hideAndSeek.util;
|
package dev.tylerm.khs.util;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.world.VoidGenerator;
|
||||||
import net.tylermurphy.hideAndSeek.world.VoidGenerator;
|
import dev.tylerm.khs.Main;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.WorldCreator;
|
import org.bukkit.WorldCreator;
|
||||||
|
@ -11,7 +11,7 @@ import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.spawnPatch;
|
import static dev.tylerm.khs.configuration.Config.spawnPatch;
|
||||||
|
|
||||||
public class Location {
|
public class Location {
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
package net.tylermurphy.hideAndSeek.util;
|
package dev.tylerm.khs.util;
|
||||||
|
|
||||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.database.Database;
|
import dev.tylerm.khs.database.Database;
|
||||||
import net.tylermurphy.hideAndSeek.database.util.PlayerInfo;
|
import dev.tylerm.khs.database.util.PlayerInfo;
|
||||||
|
import dev.tylerm.khs.game.Board;
|
||||||
|
import dev.tylerm.khs.game.util.Status;
|
||||||
|
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
@ -11,8 +14,8 @@ import org.jetbrains.annotations.Nullable;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.placeholderError;
|
import static dev.tylerm.khs.configuration.Config.placeholderError;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.placeholderNoData;
|
import static dev.tylerm.khs.configuration.Config.placeholderNoData;
|
||||||
|
|
||||||
public class PAPIExpansion extends PlaceholderExpansion {
|
public class PAPIExpansion extends PlaceholderExpansion {
|
||||||
|
|
||||||
|
@ -28,7 +31,7 @@ public class PAPIExpansion extends PlaceholderExpansion {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull String getVersion() {
|
public @NotNull String getVersion() {
|
||||||
return "1.4.3";
|
return "1.7.5";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -41,8 +44,33 @@ public class PAPIExpansion extends PlaceholderExpansion {
|
||||||
public String onRequest(OfflinePlayer player, @NotNull String params) {
|
public String onRequest(OfflinePlayer player, @NotNull String params) {
|
||||||
Database database = Main.getInstance().getDatabase();
|
Database database = Main.getInstance().getDatabase();
|
||||||
String[] args = params.split("_");
|
String[] args = params.split("_");
|
||||||
|
Status status = Main.getInstance().getGame().getStatus();
|
||||||
|
Board board = Main.getInstance().getBoard();
|
||||||
|
|
||||||
|
System.out.println(args);
|
||||||
|
|
||||||
if (args.length < 1) return null;
|
if (args.length < 1) return null;
|
||||||
|
|
||||||
|
if (args.length == 1 && args[0].equals("hiders")) {
|
||||||
|
if (!board.containsUUID(player.getUniqueId())) {
|
||||||
|
return "-";
|
||||||
|
} else if (status == Status.PLAYING || status == Status.STARTING) {
|
||||||
|
return "" + Main.getInstance().getBoard().getHiders().size();
|
||||||
|
} else {
|
||||||
|
return "-";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.length == 1 && args[0].equals("seekers")) {
|
||||||
|
if (!board.containsUUID(player.getUniqueId())) {
|
||||||
|
return "-";
|
||||||
|
} else if (status == Status.PLAYING || status == Status.STARTING) {
|
||||||
|
return "" + Main.getInstance().getBoard().getSeekers().size();
|
||||||
|
} else {
|
||||||
|
return "-";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((args.length == 2 || args.length == 3) && (args[0].equals("stats") || args[0].equals("rank-place"))) {
|
if ((args.length == 2 || args.length == 3) && (args[0].equals("stats") || args[0].equals("rank-place"))) {
|
||||||
Optional<PlayerInfo> info = this.getPlayerInfo(args.length == 2 ? player.getUniqueId() : database.getNameData().getUUID(args[2]));
|
Optional<PlayerInfo> info = this.getPlayerInfo(args.length == 2 ? player.getUniqueId() : database.getNameData().getUUID(args[2]));
|
||||||
if (info.isPresent()) {
|
if (info.isPresent()) {
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.util;
|
package dev.tylerm.khs.util;
|
||||||
|
|
||||||
public class Pair<L, R> {
|
public class Pair<L, R> {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.util;
|
package dev.tylerm.khs.util;
|
||||||
|
|
||||||
public class Tuple<L, C, R> {
|
public class Tuple<L, C, R> {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.util.packet;
|
package dev.tylerm.khs.util.packet;
|
||||||
|
|
||||||
import com.comphenix.protocol.PacketType;
|
import com.comphenix.protocol.PacketType;
|
||||||
import com.comphenix.protocol.ProtocolLibrary;
|
import com.comphenix.protocol.ProtocolLibrary;
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.util.packet;
|
package dev.tylerm.khs.util.packet;
|
||||||
|
|
||||||
import com.comphenix.protocol.PacketType;
|
import com.comphenix.protocol.PacketType;
|
||||||
import com.comphenix.protocol.wrappers.BlockPosition;
|
import com.comphenix.protocol.wrappers.BlockPosition;
|
|
@ -1,11 +1,11 @@
|
||||||
package net.tylermurphy.hideAndSeek.util.packet;
|
package dev.tylerm.khs.util.packet;
|
||||||
|
|
||||||
import com.comphenix.protocol.PacketType;
|
import com.comphenix.protocol.PacketType;
|
||||||
import com.comphenix.protocol.wrappers.WrappedDataValue;
|
import com.comphenix.protocol.wrappers.WrappedDataValue;
|
||||||
import com.comphenix.protocol.wrappers.WrappedDataWatcher;
|
import com.comphenix.protocol.wrappers.WrappedDataWatcher;
|
||||||
import com.comphenix.protocol.wrappers.WrappedWatchableObject;
|
import com.comphenix.protocol.wrappers.WrappedWatchableObject;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
|
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.util.packet;
|
package dev.tylerm.khs.util.packet;
|
||||||
|
|
||||||
import com.comphenix.protocol.PacketType;
|
import com.comphenix.protocol.PacketType;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
|
@ -1,4 +1,4 @@
|
||||||
package net.tylermurphy.hideAndSeek.world;
|
package dev.tylerm.khs.world;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
|
@ -1,16 +1,17 @@
|
||||||
package net.tylermurphy.hideAndSeek.world;
|
package dev.tylerm.khs.world;
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
import dev.tylerm.khs.Main;
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
import dev.tylerm.khs.configuration.Map;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.GameRule;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.WorldCreator;
|
import org.bukkit.WorldCreator;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
import static dev.tylerm.khs.configuration.Config.*;
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
import static dev.tylerm.khs.configuration.Localization.message;
|
||||||
|
|
||||||
public class WorldLoader {
|
public class WorldLoader {
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
package net.tylermurphy.hideAndSeek.command;
|
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
|
||||||
import net.tylermurphy.hideAndSeek.command.location.LocationUtils;
|
|
||||||
import net.tylermurphy.hideAndSeek.command.location.Locations;
|
|
||||||
import net.tylermurphy.hideAndSeek.util.Location;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
|
||||||
|
|
||||||
public class SetExitLocation implements ICommand {
|
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
|
||||||
LocationUtils.setLocation(sender, Locations.EXIT, null, map -> {
|
|
||||||
addToConfig("exit.x", sender.getLocation().getBlockX());
|
|
||||||
addToConfig("exit.y", sender.getLocation().getBlockY());
|
|
||||||
addToConfig("exit.z", sender.getLocation().getBlockZ());
|
|
||||||
addToConfig("exit.world", sender.getLocation().getWorld().getName());
|
|
||||||
exitPosition = Location.from(sender);
|
|
||||||
saveConfig();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return "setexit";
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUsage() {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return "Sets the plugins exit location";
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,70 +0,0 @@
|
||||||
package net.tylermurphy.hideAndSeek.command;
|
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.minPlayers;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Start implements ICommand {
|
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
|
||||||
if (Main.getInstance().getGame().checkCurrentMap()) {
|
|
||||||
sender.sendMessage(errorPrefix + message("GAME_SETUP"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
|
||||||
sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!Main.getInstance().getBoard().contains(sender)) {
|
|
||||||
sender.sendMessage(errorPrefix + message("GAME_NOT_INGAME"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (Main.getInstance().getBoard().size() < minPlayers) {
|
|
||||||
sender.sendMessage(errorPrefix + message("START_MIN_PLAYERS").addAmount(minPlayers));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
String seekerName;
|
|
||||||
if (args.length < 1) {
|
|
||||||
Main.getInstance().getGame().start();
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
seekerName = args[0];
|
|
||||||
}
|
|
||||||
Player seeker = Bukkit.getPlayer(seekerName);
|
|
||||||
if (seeker == null || !Main.getInstance().getBoard().contains(seeker)) {
|
|
||||||
sender.sendMessage(errorPrefix + message("START_INVALID_NAME").addPlayer(seekerName));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Main.getInstance().getGame().start(seeker);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return "start";
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUsage() {
|
|
||||||
return "<*player>";
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return "Starts the game either with a random seeker or chosen one";
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
|
||||||
if(parameter.equals("player")) {
|
|
||||||
return Main.getInstance().getBoard().getPlayers().stream().map(Player::getName).collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map;
|
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.messagePrefix;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Remove implements ICommand {
|
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
|
||||||
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
|
||||||
sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Map map = Maps.getMap(args[0]);
|
|
||||||
if(map == null) {
|
|
||||||
sender.sendMessage(errorPrefix + message("INVALID_MAP"));
|
|
||||||
} else if(!Maps.removeMap(args[0])){
|
|
||||||
sender.sendMessage(errorPrefix + message("MAP_FAIL_DELETE").addAmount(args[0]));
|
|
||||||
} else {
|
|
||||||
sender.sendMessage(messagePrefix + message("MAP_DELETED").addAmount(args[0]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return "remove";
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUsage() {
|
|
||||||
return "<map>";
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return "Remove a map from the plugin!";
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
|
||||||
if(parameter.equals("map")) {
|
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,94 +0,0 @@
|
||||||
package net.tylermurphy.hideAndSeek.command.map.set;
|
|
||||||
|
|
||||||
import net.tylermurphy.hideAndSeek.Main;
|
|
||||||
import net.tylermurphy.hideAndSeek.command.util.ICommand;
|
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Map;
|
|
||||||
import net.tylermurphy.hideAndSeek.configuration.Maps;
|
|
||||||
import net.tylermurphy.hideAndSeek.game.util.Status;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Config.*;
|
|
||||||
import static net.tylermurphy.hideAndSeek.configuration.Localization.message;
|
|
||||||
|
|
||||||
public class Border implements ICommand {
|
|
||||||
|
|
||||||
public void execute(Player sender, String[] args) {
|
|
||||||
if (Main.getInstance().getGame().getStatus() != Status.STANDBY) {
|
|
||||||
sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Map map = Maps.getMap(args[0]);
|
|
||||||
if(map == null) {
|
|
||||||
sender.sendMessage(errorPrefix + message("INVALID_MAP"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (map.getSpawn().isNotSetup()) {
|
|
||||||
sender.sendMessage(errorPrefix + message("ERROR_GAME_SPAWN"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (args.length < 4) {
|
|
||||||
map.setWorldBorderData(0, 0, 0, 0, 0);
|
|
||||||
addToConfig("worldBorder.enabled",false);
|
|
||||||
saveConfig();
|
|
||||||
sender.sendMessage(messagePrefix + message("WORLDBORDER_DISABLE"));
|
|
||||||
map.getWorldBorder().resetWorldBorder();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
int num,delay,change;
|
|
||||||
try { num = Integer.parseInt(args[1]); } catch (Exception e) {
|
|
||||||
sender.sendMessage(errorPrefix + message("WORLDBORDER_INVALID_INPUT").addAmount(args[0]));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
try { delay = Integer.parseInt(args[2]); } catch (Exception e) {
|
|
||||||
sender.sendMessage(errorPrefix + message("WORLDBORDER_INVALID_INPUT").addAmount(args[1]));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
try { change = Integer.parseInt(args[3]); } catch (Exception e) {
|
|
||||||
sender.sendMessage(errorPrefix + message("WORLDBORDER_INVALID_INPUT").addAmount(args[2]));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (num < 100) {
|
|
||||||
sender.sendMessage(errorPrefix + message("WORLDBORDER_MIN_SIZE"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (change < 1) {
|
|
||||||
sender.sendMessage(errorPrefix + message("WORLDBORDER_CHANGE_SIZE"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
map.setWorldBorderData(
|
|
||||||
sender.getLocation().getBlockX(),
|
|
||||||
sender.getLocation().getBlockZ(),
|
|
||||||
num,
|
|
||||||
delay,
|
|
||||||
change
|
|
||||||
);
|
|
||||||
Maps.setMap(map.getName(), map);
|
|
||||||
sender.sendMessage(messagePrefix + message("WORLDBORDER_ENABLE").addAmount(num).addAmount(delay).addAmount(change));
|
|
||||||
map.getWorldBorder().resetWorldBorder();
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
|
||||||
return "border";
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUsage() {
|
|
||||||
return "<map> <*size> <*delay> <*move>";
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return "Sets a maps world border information";
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<String> autoComplete(@NotNull String parameter, @NotNull String typed) {
|
|
||||||
if(parameter.equals("map")) {
|
|
||||||
return Maps.getAllMaps().stream().map(net.tylermurphy.hideAndSeek.configuration.Map::getName).collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
return Collections.singletonList(parameter);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -15,6 +15,10 @@ spawnPatch: false
|
||||||
# default: 1200 aka 20min
|
# default: 1200 aka 20min
|
||||||
gameLength: 1200
|
gameLength: 1200
|
||||||
|
|
||||||
|
# How long in seconds will the initial hiding period last, minimum is 10 seconds
|
||||||
|
# default: 30
|
||||||
|
hidingTimer: 30
|
||||||
|
|
||||||
# Announce join/leave/game over messages to people not playing the game
|
# Announce join/leave/game over messages to people not playing the game
|
||||||
# default: true
|
# default: true
|
||||||
announceMessagesToNonPlayers: true
|
announceMessagesToNonPlayers: true
|
||||||
|
@ -48,6 +52,33 @@ permissionsRequired: true
|
||||||
# default: 2
|
# default: 2
|
||||||
minPlayers: 2
|
minPlayers: 2
|
||||||
|
|
||||||
|
# Amount of initial seekers when game starts
|
||||||
|
# default: 1
|
||||||
|
startingSeekerCount: 1
|
||||||
|
|
||||||
|
# By default, when a HIDER dies they will join the SEEKER team. If enabled they will instead become a spectator
|
||||||
|
# default: false
|
||||||
|
respawnAsSpectator: false
|
||||||
|
|
||||||
|
# If enabled, the game will go until no hiders are left. If the timer runs out all hiders left will be marked as winning.
|
||||||
|
# If disabled the game wll go until there is only one hider left. If the timer runs out, all hiders left win, if there is one
|
||||||
|
# hider left, all inital seekers win along with the last hider.
|
||||||
|
# default: true
|
||||||
|
waitTillNoneLeft: true
|
||||||
|
|
||||||
|
# By default, if the last hider or seeker quits the game, a win type of NONE is given, which doesnt mark anyone as winning. This can be
|
||||||
|
# used as a way to prevent players form quitting in a loop to get someone else points.
|
||||||
|
# default: true
|
||||||
|
dontRewardQuit: false
|
||||||
|
|
||||||
|
# The amount of seconds the game will wait until the players are teleported to the lobby after a game over
|
||||||
|
# default: 5
|
||||||
|
endGameDelay: 5
|
||||||
|
|
||||||
|
# Along with a chat message, display a title describing the gameover
|
||||||
|
# default: false
|
||||||
|
gameOverTitle: true
|
||||||
|
|
||||||
# This plugin by default functions as not tag to catch Hiders, but to pvp. All players are given weapons,
|
# This plugin by default functions as not tag to catch Hiders, but to pvp. All players are given weapons,
|
||||||
# and seekers slightly better weapons (this can be changed in items.yml). If you want, you can disable this
|
# and seekers slightly better weapons (this can be changed in items.yml). If you want, you can disable this
|
||||||
# entire pvp functionality, and make Hiders get found on a single hit. Hiders would also not be able to fight
|
# entire pvp functionality, and make Hiders get found on a single hit. Hiders would also not be able to fight
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
# If pvp is disabled in config.yml, only effects will be given to players.
|
# If pvp is disabled in config.yml, only effects will be given to players.
|
||||||
items:
|
items:
|
||||||
seeker:
|
seeker:
|
||||||
'1':
|
'0':
|
||||||
material: DIAMOND_SWORD
|
material: DIAMOND_SWORD
|
||||||
amount: 1
|
amount: 1
|
||||||
enchantments:
|
enchantments:
|
||||||
|
@ -13,7 +13,7 @@ items:
|
||||||
unbreakable: true
|
unbreakable: true
|
||||||
lore:
|
lore:
|
||||||
- 'This is the seeker sword'
|
- 'This is the seeker sword'
|
||||||
'2':
|
'1':
|
||||||
material: STICK
|
material: STICK
|
||||||
amount: 1
|
amount: 1
|
||||||
enchantments:
|
enchantments:
|
||||||
|
@ -22,8 +22,19 @@ items:
|
||||||
lore:
|
lore:
|
||||||
- 'It will launch people very far'
|
- 'It will launch people very far'
|
||||||
- 'Use wisely!'
|
- 'Use wisely!'
|
||||||
|
'helmet':
|
||||||
|
material: LEATHER_HELMET
|
||||||
|
'chestplate':
|
||||||
|
material: LEATHER_CHESTPLATE
|
||||||
|
'leggings':
|
||||||
|
material: LEATHER_LEGGINGS
|
||||||
|
'boots':
|
||||||
|
material: LEATHER_BOOTS
|
||||||
|
enchantments:
|
||||||
|
feather_falling: 4
|
||||||
|
|
||||||
hider:
|
hider:
|
||||||
'1':
|
'0':
|
||||||
material: STONE_SWORD
|
material: STONE_SWORD
|
||||||
amount: 1
|
amount: 1
|
||||||
enchantments:
|
enchantments:
|
||||||
|
@ -32,11 +43,11 @@ items:
|
||||||
unbreakable: true
|
unbreakable: true
|
||||||
lore:
|
lore:
|
||||||
- 'This is the hider sword'
|
- 'This is the hider sword'
|
||||||
'2':
|
'1':
|
||||||
material: SPLASH_POTION
|
material: SPLASH_POTION
|
||||||
amount: 1
|
amount: 1
|
||||||
type: REGEN
|
type: REGEN
|
||||||
'3':
|
'2':
|
||||||
material: POTION
|
material: POTION
|
||||||
amount: 2
|
amount: 2
|
||||||
type: INSTANT_HEAL
|
type: INSTANT_HEAL
|
||||||
|
@ -55,12 +66,6 @@ effects:
|
||||||
amplifier: 1
|
amplifier: 1
|
||||||
ambient: false
|
ambient: false
|
||||||
particles: false
|
particles: false
|
||||||
'3':
|
|
||||||
type: SLOW_FALLING
|
|
||||||
duration: 1000000
|
|
||||||
amplifier: 1
|
|
||||||
ambient: false
|
|
||||||
particles: false
|
|
||||||
'4':
|
'4':
|
||||||
type: WATER_BREATHING
|
type: WATER_BREATHING
|
||||||
duration: 1000000
|
duration: 1000000
|
||||||
|
|
|
@ -12,12 +12,18 @@ Localization:
|
||||||
COMMAND_ERROR: "Ein unbekannter Fehler ist aufgetreten."
|
COMMAND_ERROR: "Ein unbekannter Fehler ist aufgetreten."
|
||||||
COMMAND_INVALID_ARG: "Ungültiges Argument: {AMOUNT}"
|
COMMAND_INVALID_ARG: "Ungültiges Argument: {AMOUNT}"
|
||||||
GAME_PLAYER_DEATH: "&c{PLAYER}&f ist gestorben."
|
GAME_PLAYER_DEATH: "&c{PLAYER}&f ist gestorben."
|
||||||
GAME_PLAYER_FOUND: "&e{PLAYER}&f wurde gefunden und ist nun ein Seeker."
|
GAME_PLAYER_FOUND: "&e{PLAYER}&f wurde gefunden"
|
||||||
GAME_PLAYER_FOUND_BY: "&e{PLAYER}&f wurde von &c{PLAYER}&f gefunden und ist nun ein Seeker."
|
GAME_PLAYER_FOUND_BY: "&e{PLAYER}&f wurde von &c{PLAYER}&f gefunden"
|
||||||
GAME_GAMEOVER_HIDERS_FOUND: "Alle Hider wurden gefunden."
|
GAME_GAMEOVER_HIDERS_FOUND: "Alle Hider wurden gefunden."
|
||||||
|
GAME_GAMEOVER_LAST_HIDER: "Der letzte Hider, &e{PLAYER}&f, hat gewonnen!"
|
||||||
GAME_GAMEOVER_SEEKERS_QUIT: "All Seeker haben das Spiel verlassen."
|
GAME_GAMEOVER_SEEKERS_QUIT: "All Seeker haben das Spiel verlassen."
|
||||||
GAME_GAMEOVER_HIDERS_QUIT: "All Hider haben das Spiel verlassen."
|
GAME_GAMEOVER_HIDERS_QUIT: "All Hider haben das Spiel verlassen."
|
||||||
GAME_GAMEOVER_TIME: "Seekers haben keine Spielzeit mehr. Die Hiders haben gewonnen!"
|
GAME_GAMEOVER_TIME: "Seekers haben keine Spielzeit mehr. Die Hiders haben gewonnen!"
|
||||||
|
GAME_TITLE_HIDERS_WIN: "&aHiders haben gewonnen!"
|
||||||
|
GAME_TITLE_SINGLE_HIDER_WIN: "&a{PLAYER} haben gewonnen!"
|
||||||
|
GAME_TITLE_SEEKERS_WIN: "&cSeekers haben gewonnen!"
|
||||||
|
GAME_TITLE_NO_WIN: "&bSpiel ist aus"
|
||||||
|
GAME_SUBTITLE_SINGLE_HIDER_WIN: "{PLAYER} ist der letzte lebende Hider!"
|
||||||
GAME_SETUP: "Es gibt keine Setup-Karten! Führen Sie /hs map status auf einer Karte aus, um zu sehen, was Sie tun müssen."
|
GAME_SETUP: "Es gibt keine Setup-Karten! Führen Sie /hs map status auf einer Karte aus, um zu sehen, was Sie tun müssen."
|
||||||
GAME_INGAME: "Du bist bereits in der Lobby oder im Spiel."
|
GAME_INGAME: "Du bist bereits in der Lobby oder im Spiel."
|
||||||
GAME_NOT_INGAME: "Du bist weder in einer Lobby noch in einem Spiel."
|
GAME_NOT_INGAME: "Du bist weder in einer Lobby noch in einem Spiel."
|
||||||
|
@ -128,5 +134,5 @@ Localization:
|
||||||
CONFIRMATION: "Führen Sie /hs confirm innerhalb von 10s aus, um zu bestätigen."
|
CONFIRMATION: "Führen Sie /hs confirm innerhalb von 10s aus, um zu bestätigen."
|
||||||
|
|
||||||
# DO NOT EDIT IT OR IT MAY BREAK OR RESET FILE
|
# DO NOT EDIT IT OR IT MAY BREAK OR RESET FILE
|
||||||
version: 4
|
version: 5
|
||||||
type: "de-DE"
|
type: "de-DE"
|
||||||
|
|
|
@ -12,12 +12,18 @@ Localization:
|
||||||
COMMAND_ERROR: "An internal error has occurred."
|
COMMAND_ERROR: "An internal error has occurred."
|
||||||
COMMAND_INVALID_ARG: "Invalid argument: {AMOUNT}"
|
COMMAND_INVALID_ARG: "Invalid argument: {AMOUNT}"
|
||||||
GAME_PLAYER_DEATH: "&c{PLAYER}&f was killed."
|
GAME_PLAYER_DEATH: "&c{PLAYER}&f was killed."
|
||||||
GAME_PLAYER_FOUND: "&e{PLAYER}&f was found and became a seeker."
|
GAME_PLAYER_FOUND: "&e{PLAYER}&f was found"
|
||||||
GAME_PLAYER_FOUND_BY: "&e{PLAYER}&f was found by &c{PLAYER}&f and became a seeker."
|
GAME_PLAYER_FOUND_BY: "&e{PLAYER}&f was found by &c{PLAYER}&f"
|
||||||
GAME_GAMEOVER_HIDERS_FOUND: "All hiders have been found."
|
GAME_GAMEOVER_HIDERS_FOUND: "All hiders have been found."
|
||||||
|
GAME_GAMEOVER_LAST_HIDER: "The last hider, &e{PLAYER}&f, has won!"
|
||||||
GAME_GAMEOVER_SEEKERS_QUIT: "All seekers have quit."
|
GAME_GAMEOVER_SEEKERS_QUIT: "All seekers have quit."
|
||||||
GAME_GAMEOVER_HIDERS_QUIT: "All hiders have quit."
|
GAME_GAMEOVER_HIDERS_QUIT: "All hiders have quit."
|
||||||
GAME_GAMEOVER_TIME: "Seekers ran out of time. Hiders win!"
|
GAME_GAMEOVER_TIME: "Seekers ran out of time. Hiders win!"
|
||||||
|
GAME_TITLE_HIDERS_WIN: "&aHiders Win!"
|
||||||
|
GAME_TITLE_SINGLE_HIDER_WIN: "&a{PLAYER} Wins!"
|
||||||
|
GAME_TITLE_SEEKERS_WIN: "&cSeekers Win!"
|
||||||
|
GAME_TITLE_NO_WIN: "&bGame Over"
|
||||||
|
GAME_SUBTITLE_SINGLE_HIDER_WIN: "{PLAYER} is the last hider alive!"
|
||||||
GAME_SETUP: "There are no setup maps! Run /hs map status on a map to see what you need to do."
|
GAME_SETUP: "There are no setup maps! Run /hs map status on a map to see what you need to do."
|
||||||
GAME_INGAME: "You are already in the lobby/game."
|
GAME_INGAME: "You are already in the lobby/game."
|
||||||
GAME_NOT_INGAME: "You are not in a lobby/game."
|
GAME_NOT_INGAME: "You are not in a lobby/game."
|
||||||
|
@ -128,5 +134,5 @@ Localization:
|
||||||
CONFIRMATION: "Run /hs confirm within 10s to confirm."
|
CONFIRMATION: "Run /hs confirm within 10s to confirm."
|
||||||
|
|
||||||
# DO NOT EDIT IT OR IT MAY BREAK OR RESET FILE
|
# DO NOT EDIT IT OR IT MAY BREAK OR RESET FILE
|
||||||
version: 4
|
version: 5
|
||||||
type: "en-US"
|
type: "en-US"
|
|
@ -1,6 +1,6 @@
|
||||||
name: KenshinsHideAndSeek
|
name: KenshinsHideAndSeek
|
||||||
main: net.tylermurphy.hideAndSeek.Main
|
main: dev.tylerm.khs.Main
|
||||||
version: 1.7.4
|
version: 1.7.5
|
||||||
author: KenshinEto
|
author: KenshinEto
|
||||||
load: STARTUP
|
load: STARTUP
|
||||||
api-version: 1.13
|
api-version: 1.13
|
||||||
|
|
Loading…
Reference in a new issue