- package com.endermanjc.deathexchange;
- import org.bukkit.Location;
- import org.bukkit.event.entity.PlayerDeathEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.Bukkit;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import javax.annotation.ParametersAreNonnullByDefault;
- import java.util.Objects;
- import org.bukkit.entity.Player;
- import org.bukkit.scheduler.BukkitRunnable;
- import org.bukkit.scheduler.BukkitTask;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- public class DeathExchange extends JavaPlugin implements CommandExecutor, Listener{
- public static String player_1 = "没有设置";
- public static String player_2 = "没有设置";
- public BukkitTask task;
- public Location loc1;
- public Location loc2;
- public Boolean checkPlayer() {
- if (player_1 != null && player_2 != null) {
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player1 != null && player2 != null) {
- return true;
- }
- else {
- return false;
- }
- }
- else {
- return false;
- }
- }
- public void start() {
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player1 != null && player2 != null) {
- player1.sendMessage("§a游戏开始!");
- player2.sendMessage("§a游戏开始!");
- task = new BukkitRunnable() {
- @Override
- public void run() {
- mainStart();
- }
- }.runTaskTimer(this, 5800, 3600);
- }
- }
- public void mainStart() {
- Boolean ret = checkPlayer();
- if (!ret) {
- task.cancel();
- }
- else {
- new BukkitRunnable() {
- @Override
- public void run() {
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player1 != null && player2 != null) {
- player1.sendMessage("§a10秒种开始交换位置!");
- player2.sendMessage("§a10秒种开始交换位置!");
- }
- }
- }.runTask(this);
- new BukkitRunnable() {
- @Override
- public void run() {
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player1 != null && player2 != null) {
- player1.sendMessage("§a9秒种开始交换位置!");
- player2.sendMessage("§a9秒种开始交换位置!");
- }
- }
- }.runTaskLater(this, 20);
- new BukkitRunnable() {
- @Override
- public void run() {
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player1 != null && player2 != null) {
- player1.sendMessage("§a8秒种开始交换位置!");
- player2.sendMessage("§a8秒种开始交换位置!");
- }
- }
- }.runTaskLater(this, 40);
- new BukkitRunnable() {
- @Override
- public void run() {
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player1 != null && player2 != null) {
- player1.sendMessage("§a7秒种开始交换位置!");
- player2.sendMessage("§a7秒种开始交换位置!");
- }
- }
- }.runTaskLater(this, 60);
- new BukkitRunnable() {
- @Override
- public void run() {
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player1 != null && player2 != null) {
- player1.sendMessage("§a6秒种开始交换位置!");
- player2.sendMessage("§a6秒种开始交换位置!");
- }
- }
- }.runTaskLater(this, 80);
- new BukkitRunnable() {
- @Override
- public void run() {
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player1 != null && player2 != null) {
- player1.sendMessage("§c5秒种开始交换位置!");
- player2.sendMessage("§c5秒种开始交换位置!");
- }
- }
- }.runTaskLater(this, 100);
- new BukkitRunnable() {
- @Override
- public void run() {
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player1 != null && player2 != null) {
- player1.sendMessage("§c4秒种开始交换位置!");
- player2.sendMessage("§c4秒种开始交换位置!");
- }
- }
- }.runTaskLater(this, 120);
- new BukkitRunnable() {
- @Override
- public void run() {
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player1 != null && player2 != null) {
- player1.sendMessage("§e3秒种开始交换位置!");
- player2.sendMessage("§e3秒种开始交换位置!");
- }
- }
- }.runTaskLater(this, 140);
- new BukkitRunnable() {
- @Override
- public void run() {
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player1 != null && player2 != null) {
- player1.sendMessage("§e2秒种开始交换位置!");
- player2.sendMessage("§e2秒种开始交换位置!");
- }
- }
- }.runTaskLater(this, 160);
- new BukkitRunnable() {
- @Override
- public void run() {
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player1 != null && player2 != null) {
- player1.sendMessage("§e1秒种开始交换位置!");
- player2.sendMessage("§e1秒种开始交换位置!");
- }
- }
- }.runTaskLater(this, 180);
- new BukkitRunnable() {
- @Override
- public void run() {
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player1 != null && player2 != null) {
- player1.sendMessage("§a交换位置!");
- player2.sendMessage("§a交换位置!");
- loc1 = player1.getLocation();
- loc2 = player2.getLocation();
- player1.teleport(loc2);
- player2.teleport(loc1);
- }
- }
- }.runTaskLater(this, 200);
- }
- }
- @Override
- public void onEnable() {
- Bukkit.getPluginManager().registerEvents(this, this);
- if (Bukkit.getPluginCommand("deathexchange") != null) {
- Objects.requireNonNull(Bukkit.getPluginCommand("deathexchange")).setExecutor(this);
- }
- }
- @EventHandler
- public void listener(PlayerDeathEvent event) {
- Player player = event.getEntity().getPlayer();
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player != null && player1 != null && player2 != null) {
- if (player == player1.getPlayer()) {
- player2.sendMessage("§a恭喜你取得游戏的胜利!");
- player1.sendMessage("§c很遗憾,你失败了");
- task.cancel();
- }
- else if (player == player2.getPlayer()) {
- player1.sendMessage("§a恭喜你取得游戏的胜利!");
- player2.sendMessage("§c很遗憾,你失败了");
- task.cancel();
- }
- }
- }
- @Override
- @ParametersAreNonnullByDefault
- public boolean onCommand(CommandSender commandSender, Command command, String label, String[] args) {
- if (args.length > 0) {
- if (args[0].equals("set")) {
- if (args.length > 2) {
- if (args[1] != null && args[2] != null) {
- Player player1 = Bukkit.getPlayer(args[1]);
- Player player2 = Bukkit.getPlayer(args[2]);
- if (player1 != null && player2 != null) {
- if (player1 == player2) {
- commandSender.sendMessage("§c你不能自己玩自己");
- } else {
- if (!player_1.equals(args[1]) && !player_2.equals(args[2])) {
- player_1 = args[1];
- player_2 = args[2];
- commandSender.sendMessage("§a设置成功");
- } else {
- commandSender.sendMessage("§c游戏已经开始");
- }
- }
- return true;
- } else {
- return false;
- }
- } else {
- return false;
- }
- } else {
- return false;
- }
- } else {
- if (args[0].equals("list")) {
- commandSender.sendMessage("§a玩家1:§f" + player_1 + " §a玩家2:§f" + player_2);
- return true;
- } else {
- if (args[0].equals("?")) {
- commandSender.sendMessage("/deathexchange set <player> <player> 设置即将进行死亡交换的两个玩家");
- commandSender.sendMessage("/deathexchange list 获取设置的玩家");
- commandSender.sendMessage("/deathexchange start 开始死亡交换");
- commandSender.sendMessage("/deathexchange stop 手动停止死亡交换");
- return true;
- } else {
- if (args[0].equals("start")) {
- Boolean ret = checkPlayer();
- if (ret) {
- commandSender.sendMessage("§a死亡交换即将开始");
- start();
- } else {
- commandSender.sendMessage("§c不合法的玩家");
- }
- return true;
- } else {
- if (args[0].equals("stop")) {
- if (task != null && !task.isCancelled()) {
- task.cancel();
- commandSender.sendMessage("§a游戏手动取消成功");
- Player player1 = Bukkit.getPlayer(player_1);
- Player player2 = Bukkit.getPlayer(player_2);
- if (player1 != null) {
- player1.sendMessage("§c游戏结束");
- }
- if (player2 != null) {
- player2.sendMessage("§c游戏结束");
- }
- } else {
- commandSender.sendMessage("§c游戏手动取消失败");
- }
- return true;
- } else {
- return false;
- }
- }
- }
- }
- }
- } else {
- return false;
- }
- }
- }
复制代码
|