manual reset on left click
This commit is contained in:
parent
482fc1e22d
commit
d4a6b64ae5
3 changed files with 51 additions and 42 deletions
|
|
@ -503,6 +503,7 @@ public class MinecleanerArena {
|
||||||
|
|
||||||
currentMinecleanerGame.flag(x, y);
|
currentMinecleanerGame.flag(x, y);
|
||||||
if (currentMinecleanerGame.gameover) {
|
if (currentMinecleanerGame.gameover) {
|
||||||
|
arenaStatus = ArenaStatus.COMPLETED;
|
||||||
plugin.getManager().handleGameover(player, this, true);
|
plugin.getManager().handleGameover(player, this, true);
|
||||||
}
|
}
|
||||||
if (cell.isFlagged() == true) {
|
if (cell.isFlagged() == true) {
|
||||||
|
|
@ -534,6 +535,7 @@ public class MinecleanerArena {
|
||||||
setBlockForCellType(x, y, cell);
|
setBlockForCellType(x, y, cell);
|
||||||
|
|
||||||
if (currentMinecleanerGame.gameover) {
|
if (currentMinecleanerGame.gameover) {
|
||||||
|
arenaStatus = ArenaStatus.COMPLETED;
|
||||||
plugin.getManager().handleGameover(player, this, !(cell.isRevealed() && cell.isExploded()));
|
plugin.getManager().handleGameover(player, this, !(cell.isRevealed() && cell.isExploded()));
|
||||||
} else {
|
} else {
|
||||||
updateIngameInfoTexts();
|
updateIngameInfoTexts();
|
||||||
|
|
@ -723,10 +725,13 @@ public class MinecleanerArena {
|
||||||
return currentGameStartTime;
|
return currentGameStartTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Game getCurrentMinecleanerGame() { return currentMinecleanerGame; }
|
||||||
|
|
||||||
public int getWidthIndex() {
|
public int getWidthIndex() {
|
||||||
return widthIndex;
|
return widthIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private int getRotationYaw() {
|
private int getRotationYaw() {
|
||||||
return switch (orientation) {
|
return switch (orientation) {
|
||||||
case EAST -> 90;
|
case EAST -> 90;
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,11 @@ public class MinecleanerListener implements Listener {
|
||||||
if(arena != null) {
|
if(arena != null) {
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
MinecleanerArena arenaClicked = plugin.getArenaList().getArenaAtBlock(block);
|
MinecleanerArena arenaClicked = plugin.getArenaList().getArenaAtBlock(block);
|
||||||
|
boolean hasRightClicked = false;
|
||||||
|
if(e.getAction() == Action.RIGHT_CLICK_BLOCK) {
|
||||||
|
hasRightClicked = true;
|
||||||
|
}
|
||||||
|
if(!arenaClicked.getCurrentMinecleanerGame().gameover) {
|
||||||
if(arenaClicked == arena && arena.getArenaStatus() == ArenaStatus.PLAYING) {
|
if(arenaClicked == arena && arena.getArenaStatus() == ArenaStatus.PLAYING) {
|
||||||
int d0x = arena.getOrientation().getModX();
|
int d0x = arena.getOrientation().getModX();
|
||||||
int d0z = arena.getOrientation().getModZ();
|
int d0z = arena.getOrientation().getModZ();
|
||||||
|
|
@ -68,19 +73,17 @@ public class MinecleanerListener implements Listener {
|
||||||
blockx -= blockxInt;
|
blockx -= blockxInt;
|
||||||
blockz -= blockzInt;
|
blockz -= blockzInt;
|
||||||
|
|
||||||
boolean hasRightClicked = false;
|
|
||||||
if(e.getAction() == Action.RIGHT_CLICK_BLOCK) {
|
|
||||||
hasRightClicked = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(blockzInt < arena.getArenaWidth() && blockxInt < arenaClicked.getArenaHeight()) {
|
if(blockzInt < arena.getArenaWidth() && blockxInt < arenaClicked.getArenaHeight()) {
|
||||||
plugin.getManager().handleFieldClick(e.getPlayer(), blockzInt, blockxInt, hasRightClicked);
|
plugin.getManager().handleFieldClick(e.getPlayer(), blockzInt, blockxInt, hasRightClicked);
|
||||||
}
|
}
|
||||||
//player.sendMessage("Arena click! " + blockxInt + " " + blockzInt + " Right Clicked: " + hasRightClicked);
|
//player.sendMessage("Arena click! " + blockxInt + " " + blockzInt + " Right Clicked: " + hasRightClicked);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if(arenaClicked.hasPlayer() && arenaClicked.getArenaStatus() == ArenaStatus.COMPLETED && !hasRightClicked){
|
||||||
|
plugin.getManager().getSchedulerGameOver().cancel();
|
||||||
|
plugin.getManager().leaveArena(arenaClicked.getCurrentPlayer(), false);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
arena = plugin.getArenaList().getArenaAtBlock(block);
|
arena = plugin.getArenaList().getArenaAtBlock(block);
|
||||||
if(arena != null) {
|
if(arena != null) {
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
|
@ -13,12 +12,11 @@ import org.bukkit.Material;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
|
||||||
import org.bukkit.entity.Item;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.inventory.InventoryType;
|
import org.bukkit.event.inventory.InventoryType;
|
||||||
import org.bukkit.inventory.Inventory;
|
import org.bukkit.inventory.Inventory;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
import de.iani.cubesidestats.api.PlayerStatistics;
|
import de.iani.cubesidestats.api.PlayerStatistics;
|
||||||
|
|
@ -37,6 +35,7 @@ public class MinecleanerManager {
|
||||||
private final MinecleanerPlugin plugin;
|
private final MinecleanerPlugin plugin;
|
||||||
private final Inventory confirmPlayingInventory;
|
private final Inventory confirmPlayingInventory;
|
||||||
private final HashMap<Integer, String> sizes;
|
private final HashMap<Integer, String> sizes;
|
||||||
|
public BukkitTask schedulerGameOver;
|
||||||
|
|
||||||
// Statistics
|
// Statistics
|
||||||
private final StatisticKey statisticsWonGamesTotal;
|
private final StatisticKey statisticsWonGamesTotal;
|
||||||
|
|
@ -174,7 +173,7 @@ public class MinecleanerManager {
|
||||||
ps.increaseScore(sg, 1);
|
ps.increaseScore(sg, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Bukkit.getScheduler().runTaskLater(plugin, () -> {
|
schedulerGameOver = Bukkit.getScheduler().runTaskLater(plugin, () -> {
|
||||||
if (arena.getCurrentPlayer() == null) {
|
if (arena.getCurrentPlayer() == null) {
|
||||||
arena.removePlayer();
|
arena.removePlayer();
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -235,7 +234,7 @@ public class MinecleanerManager {
|
||||||
player.sendMessage(ChatColor.YELLOW + "Glückwunsch, du konntest das " + plugin.getDisplayedPluginName() + "-Feld in " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis, false) + ChatColor.YELLOW + " erfolgreich lösen!");
|
player.sendMessage(ChatColor.YELLOW + "Glückwunsch, du konntest das " + plugin.getDisplayedPluginName() + "-Feld in " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis, false) + ChatColor.YELLOW + " erfolgreich lösen!");
|
||||||
}
|
}
|
||||||
|
|
||||||
Bukkit.getScheduler().runTaskLater(plugin, () -> {
|
schedulerGameOver = Bukkit.getScheduler().runTaskLater(plugin, () -> {
|
||||||
if(arena.getCurrentPlayer() == null) {
|
if(arena.getCurrentPlayer() == null) {
|
||||||
arena.removePlayer();
|
arena.removePlayer();
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -464,4 +463,6 @@ public class MinecleanerManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
public SettingKey getMinecleanerResetTimeSettingKey() {return minecleanerResetTimerSettingKey; }
|
public SettingKey getMinecleanerResetTimeSettingKey() {return minecleanerResetTimerSettingKey; }
|
||||||
|
|
||||||
|
public BukkitTask getSchedulerGameOver() { return schedulerGameOver; }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue