use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class TeleportCommand method onCommand.
@Override
public boolean onCommand(CommandSender sender, Minigame minigame, String label, String[] args) {
if (args != null) {
List<Player> plys = plugin.getServer().matchPlayer(args[0]);
MinigamePlayer ply = null;
if (!plys.isEmpty()) {
ply = plugin.pdata.getMinigamePlayer(plys.get(0));
} else {
sender.sendMessage(ChatColor.RED + "No player found by the name " + args[0] + "!");
return true;
}
if (args.length >= 4 && args[1].matches("~?(-?[0-9]+(.[0-9]+)?)|~") && args[2].matches("~?(-?[0-9]+(.[0-9]+)?)|~") && args[3].matches("~?(-?[0-9]+(.[0-9]+)?)|~")) {
double x = 0;
double y = 0;
double z = 0;
float yaw = ply.getLocation().getYaw();
float pitch = ply.getLocation().getPitch();
if (args[1].contains("~")) {
if (args[1].equals("~"))
x = ply.getPlayer().getLocation().getX();
else
x = ply.getPlayer().getLocation().getX() + Double.parseDouble(args[1].replace("~", ""));
} else {
x = Double.parseDouble(args[1]);
}
if (args[2].contains("~")) {
if (args[2].equals("~"))
y = ply.getPlayer().getLocation().getY();
else
y = ply.getPlayer().getLocation().getY() + Double.parseDouble(args[2].replace("~", ""));
} else {
y = Double.parseDouble(args[2]);
}
if (args[3].contains("~")) {
if (args[3].equals("~"))
z = ply.getPlayer().getLocation().getZ();
else
z = ply.getPlayer().getLocation().getZ() + Double.parseDouble(args[3].replace("~", ""));
} else {
z = Double.parseDouble(args[3]);
}
if (args.length == 6 && args[4].matches("~?(-?[0-9]+(.[0-9]+)?)|~") && args[5].matches("~?(-?[0-9]+(.[0-9]+)?)|~")) {
if (args[4].contains("~")) {
if (args[4].equals("~"))
yaw = ply.getPlayer().getLocation().getYaw();
else
yaw = ply.getPlayer().getLocation().getYaw() + Float.parseFloat(args[4].replace("~", ""));
} else {
yaw = Float.parseFloat(args[4]);
}
if (args[5].contains("~")) {
if (args[5].equals("~"))
pitch = ply.getPlayer().getLocation().getPitch();
else {
pitch = ply.getPlayer().getLocation().getPitch() + Float.parseFloat(args[5].replace("~", ""));
}
} else {
pitch = Float.parseFloat(args[5]);
}
if (pitch > 90) {
pitch = 90f;
} else if (pitch < -90) {
pitch = -90f;
}
}
sender.sendMessage(ChatColor.GRAY + "Teleported " + ply.getName() + " to assigned coordinates.");
ply.teleport(new Location(ply.getPlayer().getWorld(), x, y, z, yaw, pitch));
return true;
} else if (args.length >= 2 && args[1].equalsIgnoreCase("start")) {
if (ply.isInMinigame()) {
int pos = 0;
Team team = null;
if (args.length == 3)
team = TeamsModule.getMinigameModule(ply.getMinigame()).getTeam(TeamColor.matchColor(args[3]));
else if (ply.getTeam() != null)
team = ply.getTeam();
if (args.length >= 3 && args[2].matches("[0-9]+") && !args[2].equals("0"))
pos = Integer.parseInt(args[2]) - 1;
if (team == null && pos >= ply.getMinigame().getStartLocations().size())
pos = ply.getMinigame().getStartLocations().size() - 1;
else if (team != null && pos >= team.getStartLocations().size())
pos = team.getStartLocations().size() - 1;
if (team != null) {
ply.teleport(team.getStartLocations().get(pos));
sender.sendMessage(ChatColor.GRAY + "Teleported " + ply.getName() + " to " + team.getDisplayName() + " start position " + (pos + 1) + ".");
} else {
ply.teleport(ply.getMinigame().getStartLocations().get(pos));
sender.sendMessage(ChatColor.GRAY + "Teleported " + ply.getName() + " to start position " + (pos + 1) + ".");
}
} else {
sender.sendMessage(ChatColor.RED + ply.getName() + " is not in a Minigame!");
}
return true;
} else if (args.length == 2 && args[1].equalsIgnoreCase("checkpoint")) {
if (ply.isInMinigame()) {
ply.teleport(ply.getCheckpoint());
sender.sendMessage(ChatColor.GRAY + "Teleported " + ply.getName() + " to their checkpoint.");
} else {
sender.sendMessage(ChatColor.RED + ply.getName() + " is not in a Minigame!");
}
return true;
} else if (args.length == 2) {
plys = plugin.getServer().matchPlayer(args[1]);
MinigamePlayer ply2 = null;
if (!plys.isEmpty()) {
ply2 = plugin.pdata.getMinigamePlayer(plys.get(0));
} else {
sender.sendMessage(ChatColor.RED + "No player found by the name " + args[1] + "!");
return true;
}
ply.teleport(ply2.getPlayer().getLocation());
sender.sendMessage(ChatColor.GRAY + "Teleported " + ply.getName() + " to " + ply2.getName() + ".");
return true;
}
}
return false;
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class AddScoreAction method checkScore.
private void checkScore(MinigamePlayer player) {
if (player.getMinigame().getMaxScorePerPlayer() >= player.getScore() || player.getTeam().getScore() >= player.getMinigame().getMaxScore()) {
List<MinigamePlayer> w;
List<MinigamePlayer> l;
if (player.getMinigame().isTeamGame()) {
w = new ArrayList<>(player.getTeam().getPlayers());
l = new ArrayList<>(player.getMinigame().getPlayers().size() - player.getTeam().getPlayers().size());
for (Team t : TeamsModule.getMinigameModule(player.getMinigame()).getTeams()) {
if (t != player.getTeam())
l.addAll(t.getPlayers());
}
} else {
w = new ArrayList<>(1);
l = new ArrayList<>(player.getMinigame().getPlayers().size());
w.add(player);
l.addAll(player.getMinigame().getPlayers());
l.remove(player);
}
Minigames.plugin.pdata.endMinigame(player.getMinigame(), w, l);
}
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class BroadcastAction method execute.
private void execute(MinigamePlayer player, ScriptObject base) {
String type = "info";
if (redText.getFlag())
type = "error";
MinigamePlayer exclude = null;
if (excludeExecutor.getFlag())
exclude = player;
// Old replacement
String message = this.message.getFlag();
if (player != null) {
message = message.replace("%player%", player.getDisplayName(player.getMinigame().usePlayerDisplayNames()));
}
// New expression system
message = ExpressionParser.stringResolve(message, base, true, true);
Minigames.plugin.mdata.sendMinigameMessage(player.getMinigame(), message, type, exclude);
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class RegionEvents method playerMove.
@EventHandler(ignoreCancelled = true)
private void playerMove(PlayerMoveEvent event) {
MinigamePlayer ply = pdata.getMinigamePlayer(event.getPlayer());
if (ply == null)
return;
if (ply.isInMinigame()) {
Minigame mg = ply.getMinigame();
executeRegionChanges(mg, ply);
}
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class RegionEvents method itemPickupEvent.
@EventHandler(ignoreCancelled = true)
private void itemPickupEvent(PlayerDropItemEvent event) {
final MinigamePlayer ply = pdata.getMinigamePlayer(event.getPlayer());
if (ply == null)
return;
if (ply.isInMinigame()) {
final Trigger trig = Triggers.getTrigger("ITEM_DROP");
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
@Override
public void run() {
if (!ply.isInMinigame()) {
return;
}
for (Node node : getRegionModule(ply.getMinigame()).getNodes()) {
node.execute(trig, ply);
}
for (Region region : getRegionModule(ply.getMinigame()).getRegions()) {
if (region.hasPlayer(ply)) {
region.execute(trig, ply);
}
}
}
});
}
}
Aggregations