mirror of
https://github.com/kaboomserver/icontrolu.git
synced 2024-09-28 12:53:09 +00:00
Use spaces instead of tabs
This commit is contained in:
parent
34b0dbba0b
commit
0184867a61
96
pom.xml
96
pom.xml
|
@ -1,55 +1,55 @@
|
||||||
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>pw.kaboom</groupId>
|
<groupId>pw.kaboom</groupId>
|
||||||
<artifactId>iControlU</artifactId>
|
<artifactId>iControlU</artifactId>
|
||||||
<version>master</version>
|
<version>master</version>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<maven.compiler.source>1.8</maven.compiler.source>
|
<maven.compiler.source>1.8</maven.compiler.source>
|
||||||
<maven.compiler.target>1.8</maven.compiler.target>
|
<maven.compiler.target>1.8</maven.compiler.target>
|
||||||
<maven.test.skip>true</maven.test.skip>
|
<maven.test.skip>true</maven.test.skip>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.destroystokyo.paper</groupId>
|
<groupId>com.destroystokyo.paper</groupId>
|
||||||
<artifactId>paper-api</artifactId>
|
<artifactId>paper-api</artifactId>
|
||||||
<version>1.15.2-R0.1-SNAPSHOT</version>
|
<version>1.15.2-R0.1-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>papermc</id>
|
<id>papermc</id>
|
||||||
<url>https://papermc.io/repo/repository/maven-public/</url>
|
<url>https://papermc.io/repo/repository/maven-public/</url>
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<finalName>${project.artifactId}</finalName>
|
<finalName>${project.artifactId}</finalName>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-checkstyle-plugin</artifactId>
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
||||||
<version>3.1.2</version>
|
<version>3.1.2</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>checkstyle</id>
|
<id>checkstyle</id>
|
||||||
<phase>validate</phase>
|
<phase>validate</phase>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>check</goal>
|
<goal>check</goal>
|
||||||
</goals>
|
</goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
<suppressionsLocation>
|
<suppressionsLocation>
|
||||||
suppressions.xml
|
suppressions.xml
|
||||||
</suppressionsLocation>
|
</suppressionsLocation>
|
||||||
<failOnViolation>true</failOnViolation>
|
<failOnViolation>true</failOnViolation>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
|
|
|
@ -26,230 +26,230 @@ import org.bukkit.scoreboard.Team;
|
||||||
import pw.kaboom.icontrolu.utilities.PlayerList;
|
import pw.kaboom.icontrolu.utilities.PlayerList;
|
||||||
|
|
||||||
class Tick extends BukkitRunnable {
|
class Tick extends BukkitRunnable {
|
||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public void run() {
|
public void run() {
|
||||||
for (Player target: Bukkit.getOnlinePlayers()) {
|
for (Player target: Bukkit.getOnlinePlayers()) {
|
||||||
final Player controller = PlayerList.getController(target.getUniqueId());
|
final Player controller = PlayerList.getController(target.getUniqueId());
|
||||||
|
|
||||||
if (controller != null) {
|
if (controller != null) {
|
||||||
for (int i = 0; i < controller.getInventory().getSize(); i++) {
|
for (int i = 0; i < controller.getInventory().getSize(); i++) {
|
||||||
if (controller.getInventory().getItem(i) != null) {
|
if (controller.getInventory().getItem(i) != null) {
|
||||||
if (!controller.getInventory().getItem(i).equals(target.getInventory().getItem(i))) {
|
if (!controller.getInventory().getItem(i).equals(target.getInventory().getItem(i))) {
|
||||||
target.getInventory().setItem(i, controller.getInventory().getItem(i));
|
target.getInventory().setItem(i, controller.getInventory().getItem(i));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
target.getInventory().setItem(i, null);
|
target.getInventory().setItem(i, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (target.getHealth() > 0) {
|
if (target.getHealth() > 0) {
|
||||||
target.teleportAsync(controller.getLocation());
|
target.teleportAsync(controller.getLocation());
|
||||||
}
|
}
|
||||||
|
|
||||||
target.setAllowFlight(controller.getAllowFlight());
|
target.setAllowFlight(controller.getAllowFlight());
|
||||||
target.setExhaustion(controller.getExhaustion());
|
target.setExhaustion(controller.getExhaustion());
|
||||||
target.setFlying(controller.isFlying());
|
target.setFlying(controller.isFlying());
|
||||||
target.setFoodLevel(controller.getFoodLevel());
|
target.setFoodLevel(controller.getFoodLevel());
|
||||||
|
|
||||||
if (controller.getMaxHealth() > 0) {
|
if (controller.getMaxHealth() > 0) {
|
||||||
target.setMaxHealth(controller.getMaxHealth());
|
target.setMaxHealth(controller.getMaxHealth());
|
||||||
target.setHealth(controller.getHealth());
|
target.setHealth(controller.getHealth());
|
||||||
}
|
}
|
||||||
|
|
||||||
target.setLevel(controller.getLevel());
|
target.setLevel(controller.getLevel());
|
||||||
target.setSneaking(controller.isSneaking());
|
target.setSneaking(controller.isSneaking());
|
||||||
target.setSprinting(controller.isSprinting());
|
target.setSprinting(controller.isSprinting());
|
||||||
|
|
||||||
for (Player player: Bukkit.getOnlinePlayers()) {
|
for (Player player: Bukkit.getOnlinePlayers()) {
|
||||||
player.hidePlayer(JavaPlugin.getPlugin(Main.class), controller);
|
player.hidePlayer(JavaPlugin.getPlugin(Main.class), controller);
|
||||||
}
|
}
|
||||||
|
|
||||||
final Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
|
final Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
|
||||||
Team team = scoreboard.getTeam("icuCollision");
|
Team team = scoreboard.getTeam("icuCollision");
|
||||||
|
|
||||||
if (team == null) {
|
if (team == null) {
|
||||||
team = scoreboard.registerNewTeam("icuCollision");
|
team = scoreboard.registerNewTeam("icuCollision");
|
||||||
}
|
}
|
||||||
|
|
||||||
team.setCanSeeFriendlyInvisibles(false);
|
team.setCanSeeFriendlyInvisibles(false);
|
||||||
team.setOption(Team.Option.COLLISION_RULE, Team.OptionStatus.NEVER);
|
team.setOption(Team.Option.COLLISION_RULE, Team.OptionStatus.NEVER);
|
||||||
|
|
||||||
if (!team.hasEntry(controller.getName())) {
|
if (!team.hasEntry(controller.getName())) {
|
||||||
team.addEntry(controller.getName());
|
team.addEntry(controller.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
final int duration = 99999;
|
final int duration = 99999;
|
||||||
final int amplifier = 0;
|
final int amplifier = 0;
|
||||||
final boolean ambient = false;
|
final boolean ambient = false;
|
||||||
final boolean particles = false;
|
final boolean particles = false;
|
||||||
|
|
||||||
controller.addPotionEffect(
|
controller.addPotionEffect(
|
||||||
new PotionEffect(
|
new PotionEffect(
|
||||||
PotionEffectType.INVISIBILITY,
|
PotionEffectType.INVISIBILITY,
|
||||||
duration,
|
duration,
|
||||||
amplifier,
|
amplifier,
|
||||||
ambient,
|
ambient,
|
||||||
particles
|
particles
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class ControlPlayer implements Listener {
|
class ControlPlayer implements Listener {
|
||||||
@EventHandler
|
@EventHandler
|
||||||
private void onAsyncPlayerChat(final AsyncPlayerChatEvent event) {
|
private void onAsyncPlayerChat(final AsyncPlayerChatEvent event) {
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null) {
|
if (PlayerList.getController(player.getUniqueId()) != null) {
|
||||||
if (event.getMessage().startsWith("§iControlUChat§")) {
|
if (event.getMessage().startsWith("§iControlUChat§")) {
|
||||||
final int prefixLength = "§iControlUChat§".length();
|
final int prefixLength = "§iControlUChat§".length();
|
||||||
|
|
||||||
event.setMessage(
|
event.setMessage(
|
||||||
event.getMessage().substring(prefixLength)
|
event.getMessage().substring(prefixLength)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (PlayerList.getTarget(player.getUniqueId()) != null) {
|
} else if (PlayerList.getTarget(player.getUniqueId()) != null) {
|
||||||
final Player target = PlayerList.getTarget(player.getUniqueId());
|
final Player target = PlayerList.getTarget(player.getUniqueId());
|
||||||
|
|
||||||
new BukkitRunnable() {
|
new BukkitRunnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
target.chat("§iControlUChat§" + event.getMessage()); // Add prefix to prevent messages from being cancelled
|
target.chat("§iControlUChat§" + event.getMessage()); // Add prefix to prevent messages from being cancelled
|
||||||
}
|
}
|
||||||
}.runTask(JavaPlugin.getPlugin(Main.class));
|
}.runTask(JavaPlugin.getPlugin(Main.class));
|
||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
private void onEntityDamage(final EntityDamageEvent event) {
|
private void onEntityDamage(final EntityDamageEvent event) {
|
||||||
final Entity player = event.getEntity();
|
final Entity player = event.getEntity();
|
||||||
|
|
||||||
if (PlayerList.getTarget(player.getUniqueId()) != null) {
|
if (PlayerList.getTarget(player.getUniqueId()) != null) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
private void onPlayerAnimation(final PlayerAnimationEvent event) {
|
private void onPlayerAnimation(final PlayerAnimationEvent event) {
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null) {
|
if (PlayerList.getController(player.getUniqueId()) != null) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
private void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event) {
|
private void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event) {
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null) {
|
if (PlayerList.getController(player.getUniqueId()) != null) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
private void onPlayerDropItem(final PlayerDropItemEvent event) {
|
private void onPlayerDropItem(final PlayerDropItemEvent event) {
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null) {
|
if (PlayerList.getController(player.getUniqueId()) != null) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
private void onPlayerInteract(final PlayerInteractEvent event) {
|
private void onPlayerInteract(final PlayerInteractEvent event) {
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null) {
|
if (PlayerList.getController(player.getUniqueId()) != null) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|
||||||
} else if ((event.getAction() == Action.LEFT_CLICK_AIR
|
} else if ((event.getAction() == Action.LEFT_CLICK_AIR
|
||||||
|| event.getAction() == Action.LEFT_CLICK_BLOCK)
|
|| event.getAction() == Action.LEFT_CLICK_BLOCK)
|
||||||
&& PlayerList.getTarget(player.getUniqueId()) != null) {
|
&& PlayerList.getTarget(player.getUniqueId()) != null) {
|
||||||
final Player target = PlayerList.getTarget(player.getUniqueId());
|
final Player target = PlayerList.getTarget(player.getUniqueId());
|
||||||
|
|
||||||
if (event.getHand() == EquipmentSlot.HAND) {
|
if (event.getHand() == EquipmentSlot.HAND) {
|
||||||
target.swingMainHand();
|
target.swingMainHand();
|
||||||
} else if (event.getHand() == EquipmentSlot.OFF_HAND) {
|
} else if (event.getHand() == EquipmentSlot.OFF_HAND) {
|
||||||
target.swingOffHand();
|
target.swingOffHand();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
private void onPlayerMove(final PlayerMoveEvent event) {
|
private void onPlayerMove(final PlayerMoveEvent event) {
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null) {
|
if (PlayerList.getController(player.getUniqueId()) != null) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
private void onPlayerQuit(final PlayerQuitEvent event) {
|
private void onPlayerQuit(final PlayerQuitEvent event) {
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
for (Player otherPlayer: Bukkit.getOnlinePlayers()) {
|
for (Player otherPlayer: Bukkit.getOnlinePlayers()) {
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null
|
if (PlayerList.getController(player.getUniqueId()) != null
|
||||||
&& PlayerList.getController(player.getUniqueId()).equals(otherPlayer)) {
|
&& PlayerList.getController(player.getUniqueId()).equals(otherPlayer)) {
|
||||||
/*
|
/*
|
||||||
Target disconnects
|
Target disconnects
|
||||||
*/
|
*/
|
||||||
PlayerList.removeTarget(otherPlayer.getUniqueId());
|
PlayerList.removeTarget(otherPlayer.getUniqueId());
|
||||||
PlayerList.removeController(player.getUniqueId());
|
PlayerList.removeController(player.getUniqueId());
|
||||||
|
|
||||||
final Player controller = otherPlayer;
|
final Player controller = otherPlayer;
|
||||||
final int tickDelay = 200;
|
final int tickDelay = 200;
|
||||||
|
|
||||||
new BukkitRunnable() {
|
new BukkitRunnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
for (Player allPlayers: Bukkit.getOnlinePlayers()) {
|
for (Player allPlayers: Bukkit.getOnlinePlayers()) {
|
||||||
allPlayers.showPlayer(JavaPlugin.getPlugin(Main.class), controller);
|
allPlayers.showPlayer(JavaPlugin.getPlugin(Main.class), controller);
|
||||||
}
|
}
|
||||||
|
|
||||||
final Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
|
final Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
|
||||||
final Team team = scoreboard.getTeam("icuCollision");
|
final Team team = scoreboard.getTeam("icuCollision");
|
||||||
|
|
||||||
if (team != null
|
if (team != null
|
||||||
&& team.hasEntry(controller.getName())) {
|
&& team.hasEntry(controller.getName())) {
|
||||||
team.removeEntry(controller.getName());
|
team.removeEntry(controller.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
controller.removePotionEffect(PotionEffectType.INVISIBILITY);
|
controller.removePotionEffect(PotionEffectType.INVISIBILITY);
|
||||||
controller.sendMessage("You are now visible");
|
controller.sendMessage("You are now visible");
|
||||||
}
|
}
|
||||||
}.runTaskLater(JavaPlugin.getPlugin(Main.class), tickDelay);
|
}.runTaskLater(JavaPlugin.getPlugin(Main.class), tickDelay);
|
||||||
|
|
||||||
otherPlayer.sendMessage("The player you were controlling has disconnected. You are invisible for 10 seconds.");
|
otherPlayer.sendMessage("The player you were controlling has disconnected. You are invisible for 10 seconds.");
|
||||||
|
|
||||||
} else if (PlayerList.getTarget(player.getUniqueId()) != null
|
} else if (PlayerList.getTarget(player.getUniqueId()) != null
|
||||||
&& PlayerList.getTarget(player.getUniqueId()).equals(otherPlayer)) {
|
&& PlayerList.getTarget(player.getUniqueId()).equals(otherPlayer)) {
|
||||||
/*
|
/*
|
||||||
Controller disconnects
|
Controller disconnects
|
||||||
*/
|
*/
|
||||||
PlayerList.removeTarget(player.getUniqueId());
|
PlayerList.removeTarget(player.getUniqueId());
|
||||||
PlayerList.removeController(otherPlayer.getUniqueId());
|
PlayerList.removeController(otherPlayer.getUniqueId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
private void onPlayerRespawn(final PlayerRespawnEvent event) {
|
private void onPlayerRespawn(final PlayerRespawnEvent event) {
|
||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
|
|
||||||
if (PlayerList.getController(player.getUniqueId()) != null) {
|
if (PlayerList.getController(player.getUniqueId()) != null) {
|
||||||
final Player controller = PlayerList.getController(player.getUniqueId());
|
final Player controller = PlayerList.getController(player.getUniqueId());
|
||||||
|
|
||||||
controller.teleportAsync(player.getLocation());
|
controller.teleportAsync(player.getLocation());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,42 +11,42 @@ import pw.kaboom.icontrolu.commands.CommandIcu;
|
||||||
import pw.kaboom.icontrolu.utilities.PlayerList;
|
import pw.kaboom.icontrolu.utilities.PlayerList;
|
||||||
|
|
||||||
public final class Main extends JavaPlugin {
|
public final class Main extends JavaPlugin {
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
/* Setup scoreboard team to prevent player collisions */
|
/* Setup scoreboard team to prevent player collisions */
|
||||||
final Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
|
final Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
|
||||||
final Team team = scoreboard.getTeam("icuCollision");
|
final Team team = scoreboard.getTeam("icuCollision");
|
||||||
if (team != null) {
|
if (team != null) {
|
||||||
team.unregister();
|
team.unregister();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Commands */
|
/* Commands */
|
||||||
this.getCommand("icu").setExecutor(new CommandIcu());
|
this.getCommand("icu").setExecutor(new CommandIcu());
|
||||||
|
|
||||||
new Tick().runTaskTimer(this, 0, 1);
|
new Tick().runTaskTimer(this, 0, 1);
|
||||||
this.getServer().getPluginManager().registerEvents(new ControlPlayer(), this);
|
this.getServer().getPluginManager().registerEvents(new ControlPlayer(), this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
for (Player controller: Bukkit.getOnlinePlayers()) {
|
for (Player controller: Bukkit.getOnlinePlayers()) {
|
||||||
final Player target = PlayerList.getTarget(controller.getUniqueId());
|
final Player target = PlayerList.getTarget(controller.getUniqueId());
|
||||||
|
|
||||||
if (target != null) {
|
if (target != null) {
|
||||||
for (Player player: Bukkit.getOnlinePlayers()) {
|
for (Player player: Bukkit.getOnlinePlayers()) {
|
||||||
player.showPlayer(this, controller);
|
player.showPlayer(this, controller);
|
||||||
}
|
}
|
||||||
|
|
||||||
final Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
|
final Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
|
||||||
final Team team = scoreboard.getTeam("icuCollision");
|
final Team team = scoreboard.getTeam("icuCollision");
|
||||||
|
|
||||||
if (team != null) {
|
if (team != null) {
|
||||||
team.unregister();
|
team.unregister();
|
||||||
}
|
}
|
||||||
|
|
||||||
controller.removePotionEffect(PotionEffectType.INVISIBILITY);
|
controller.removePotionEffect(PotionEffectType.INVISIBILITY);
|
||||||
controller.sendMessage("You are no longer controlling \"" + target.getName() + "\" due to server reload");
|
controller.sendMessage("You are no longer controlling \"" + target.getName() + "\" due to server reload");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,94 +19,94 @@ import pw.kaboom.icontrolu.Main;
|
||||||
import pw.kaboom.icontrolu.utilities.PlayerList;
|
import pw.kaboom.icontrolu.utilities.PlayerList;
|
||||||
|
|
||||||
public final class CommandIcu implements CommandExecutor {
|
public final class CommandIcu implements CommandExecutor {
|
||||||
private void controlCommand(final Player controller, final String label, final String[] args) {
|
private void controlCommand(final Player controller, final String label, final String[] args) {
|
||||||
if (args.length == 1) {
|
if (args.length == 1) {
|
||||||
controller.sendMessage(ChatColor.RED + "Usage: /" + label + " control <player>");
|
controller.sendMessage(ChatColor.RED + "Usage: /" + label + " control <player>");
|
||||||
} else {
|
} else {
|
||||||
Player target = Bukkit.getPlayer(args[1]);
|
Player target = Bukkit.getPlayer(args[1]);
|
||||||
|
|
||||||
if (target == null && args[1].matches("([a-f0-9]{8}(-[a-f0-9]{4}){4}[a-f0-9]{8})")) {
|
if (target == null && args[1].matches("([a-f0-9]{8}(-[a-f0-9]{4}){4}[a-f0-9]{8})")) {
|
||||||
target = Bukkit.getPlayer(UUID.fromString(args[1]));
|
target = Bukkit.getPlayer(UUID.fromString(args[1]));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (target != null) {
|
if (target != null) {
|
||||||
if (target == controller) {
|
if (target == controller) {
|
||||||
controller.sendMessage("You are already controlling yourself");
|
controller.sendMessage("You are already controlling yourself");
|
||||||
} else if (PlayerList.getTarget(controller.getUniqueId()) != null) {
|
} else if (PlayerList.getTarget(controller.getUniqueId()) != null) {
|
||||||
controller.sendMessage("You are already controlling \"" + target.getName() + "\"");
|
controller.sendMessage("You are already controlling \"" + target.getName() + "\"");
|
||||||
} else if (PlayerList.getController(target.getUniqueId()) != null) {
|
} else if (PlayerList.getController(target.getUniqueId()) != null) {
|
||||||
controller.sendMessage("Player \"" + target.getName() + "\" is already being controlled");
|
controller.sendMessage("Player \"" + target.getName() + "\" is already being controlled");
|
||||||
} else if (PlayerList.getTarget(target.getUniqueId()) != null) {
|
} else if (PlayerList.getTarget(target.getUniqueId()) != null) {
|
||||||
controller.sendMessage("Player \"" + target.getName() + "\" is already controlling another player");
|
controller.sendMessage("Player \"" + target.getName() + "\" is already controlling another player");
|
||||||
} else if (!controller.canSee(target)) {
|
} else if (!controller.canSee(target)) {
|
||||||
controller.sendMessage("You may not control this player");
|
controller.sendMessage("You may not control this player");
|
||||||
} else {
|
} else {
|
||||||
controller.teleportAsync(target.getLocation());
|
controller.teleportAsync(target.getLocation());
|
||||||
|
|
||||||
controller.getInventory().setContents(target.getInventory().getContents());
|
controller.getInventory().setContents(target.getInventory().getContents());
|
||||||
|
|
||||||
PlayerList.setTarget(controller.getUniqueId(), target);
|
PlayerList.setTarget(controller.getUniqueId(), target);
|
||||||
PlayerList.setController(target.getUniqueId(), controller);
|
PlayerList.setController(target.getUniqueId(), controller);
|
||||||
|
|
||||||
controller.sendMessage("You are now controlling \"" + target.getName() + "\"");
|
controller.sendMessage("You are now controlling \"" + target.getName() + "\"");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
controller.sendMessage("Player \"" + args[1] + "\" not found");
|
controller.sendMessage("Player \"" + args[1] + "\" not found");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void stopCommand(final Player controller) {
|
private void stopCommand(final Player controller) {
|
||||||
final Player target = PlayerList.getTarget(controller.getUniqueId());
|
final Player target = PlayerList.getTarget(controller.getUniqueId());
|
||||||
|
|
||||||
if (target != null) {
|
if (target != null) {
|
||||||
PlayerList.removeTarget(controller.getUniqueId());
|
PlayerList.removeTarget(controller.getUniqueId());
|
||||||
PlayerList.removeController(target.getUniqueId());
|
PlayerList.removeController(target.getUniqueId());
|
||||||
|
|
||||||
final int tickDelay = 200;
|
final int tickDelay = 200;
|
||||||
|
|
||||||
new BukkitRunnable() {
|
new BukkitRunnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
for (Player player: Bukkit.getOnlinePlayers()) {
|
for (Player player: Bukkit.getOnlinePlayers()) {
|
||||||
player.showPlayer(JavaPlugin.getPlugin(Main.class), controller);
|
player.showPlayer(JavaPlugin.getPlugin(Main.class), controller);
|
||||||
}
|
}
|
||||||
|
|
||||||
Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
|
Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
|
||||||
Team team = scoreboard.getTeam("icuCollision");
|
Team team = scoreboard.getTeam("icuCollision");
|
||||||
if (team != null && team.hasEntry(controller.getName())) {
|
if (team != null && team.hasEntry(controller.getName())) {
|
||||||
team.removeEntry(controller.getName());
|
team.removeEntry(controller.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
controller.removePotionEffect(PotionEffectType.INVISIBILITY);
|
controller.removePotionEffect(PotionEffectType.INVISIBILITY);
|
||||||
controller.sendMessage("You are now visible");
|
controller.sendMessage("You are now visible");
|
||||||
}
|
}
|
||||||
}.runTaskLater(JavaPlugin.getPlugin(Main.class), tickDelay);
|
}.runTaskLater(JavaPlugin.getPlugin(Main.class), tickDelay);
|
||||||
|
|
||||||
final int seconds = tickDelay / 20;
|
final int seconds = tickDelay / 20;
|
||||||
|
|
||||||
controller.sendMessage("You are no longer controlling \"" + target.getName() + "\". You are invisible for " + seconds + " seconds.");
|
controller.sendMessage("You are no longer controlling \"" + target.getName() + "\". You are invisible for " + seconds + " seconds.");
|
||||||
} else {
|
} else {
|
||||||
controller.sendMessage("You are not controlling anyone at the moment");
|
controller.sendMessage("You are not controlling anyone at the moment");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) {
|
public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) {
|
||||||
if (sender instanceof ConsoleCommandSender) {
|
if (sender instanceof ConsoleCommandSender) {
|
||||||
sender.sendMessage("Command has to be run by a player");
|
sender.sendMessage("Command has to be run by a player");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Player controller = (Player) sender;
|
final Player controller = (Player) sender;
|
||||||
|
|
||||||
if (args.length == 0) {
|
if (args.length == 0) {
|
||||||
controller.sendMessage(ChatColor.RED + "Usage: /" + label + " <control|stop>");
|
controller.sendMessage(ChatColor.RED + "Usage: /" + label + " <control|stop>");
|
||||||
} else if (args[0].equalsIgnoreCase("control")) {
|
} else if (args[0].equalsIgnoreCase("control")) {
|
||||||
controlCommand(controller, label, args);
|
controlCommand(controller, label, args);
|
||||||
} else if (args[0].equalsIgnoreCase("stop")) {
|
} else if (args[0].equalsIgnoreCase("stop")) {
|
||||||
stopCommand(controller);
|
stopCommand(controller);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,33 +6,33 @@ import java.util.UUID;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public final class PlayerList {
|
public final class PlayerList {
|
||||||
private PlayerList() {
|
private PlayerList() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static HashMap<UUID, Player> controllerFor = new HashMap<UUID, Player>();
|
private static HashMap<UUID, Player> controllerFor = new HashMap<UUID, Player>();
|
||||||
private static HashMap<UUID, Player> targetFor = new HashMap<UUID, Player>();
|
private static HashMap<UUID, Player> targetFor = new HashMap<UUID, Player>();
|
||||||
|
|
||||||
public static Player getController(final UUID playerUuid) {
|
public static Player getController(final UUID playerUuid) {
|
||||||
return controllerFor.get(playerUuid);
|
return controllerFor.get(playerUuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Player getTarget(final UUID playerUuid) {
|
public static Player getTarget(final UUID playerUuid) {
|
||||||
return targetFor.get(playerUuid);
|
return targetFor.get(playerUuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void removeController(final UUID playerUuid) {
|
public static void removeController(final UUID playerUuid) {
|
||||||
controllerFor.remove(playerUuid);
|
controllerFor.remove(playerUuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void removeTarget(final UUID playerUuid) {
|
public static void removeTarget(final UUID playerUuid) {
|
||||||
targetFor.remove(playerUuid);
|
targetFor.remove(playerUuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setController(final UUID playerUuid, final Player player) {
|
public static void setController(final UUID playerUuid, final Player player) {
|
||||||
controllerFor.put(playerUuid, player);
|
controllerFor.put(playerUuid, player);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setTarget(final UUID playerUuid, final Player player) {
|
public static void setTarget(final UUID playerUuid, final Player player) {
|
||||||
targetFor.put(playerUuid, player);
|
targetFor.put(playerUuid, player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
<!DOCTYPE suppressions PUBLIC
|
<!DOCTYPE suppressions PUBLIC
|
||||||
"-//Puppy Crawl//DTD Suppressions 1.0//EN"
|
"-//Puppy Crawl//DTD Suppressions 1.0//EN"
|
||||||
"http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
|
"http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">
|
||||||
|
|
||||||
<suppressions>
|
<suppressions>
|
||||||
<suppress checks="FileTabCharacter" files="."/>
|
<suppress checks="Javadoc" files="."/>
|
||||||
<suppress checks="Javadoc" files="."/>
|
<suppress checks="LineLength" files="."/>
|
||||||
<suppress checks="LineLength" files="."/>
|
|
||||||
</suppressions>
|
</suppressions>
|
||||||
|
|
Loading…
Reference in a new issue