players can manually activate manual reset
This commit is contained in:
parent
d4a6b64ae5
commit
4e283a77b1
3 changed files with 40 additions and 11 deletions
|
|
@ -10,17 +10,13 @@ import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.logging.Level;
|
|
||||||
|
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.TextComponent;
|
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
import net.md_5.bungee.api.ChatMessageType;
|
import org.bukkit.Bukkit;
|
||||||
import net.md_5.bungee.api.chat.BaseComponent;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Block;
|
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.block.data.BlockData;
|
import org.bukkit.block.data.BlockData;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
|
@ -503,7 +499,10 @@ public class MinecleanerArena {
|
||||||
|
|
||||||
currentMinecleanerGame.flag(x, y);
|
currentMinecleanerGame.flag(x, y);
|
||||||
if (currentMinecleanerGame.gameover) {
|
if (currentMinecleanerGame.gameover) {
|
||||||
arenaStatus = ArenaStatus.COMPLETED;
|
Bukkit.getScheduler().runTaskLater(plugin, () -> {
|
||||||
|
arenaStatus = ArenaStatus.COMPLETED;
|
||||||
|
}, 5L);
|
||||||
|
|
||||||
plugin.getManager().handleGameover(player, this, true);
|
plugin.getManager().handleGameover(player, this, true);
|
||||||
}
|
}
|
||||||
if (cell.isFlagged() == true) {
|
if (cell.isFlagged() == true) {
|
||||||
|
|
@ -535,7 +534,9 @@ public class MinecleanerArena {
|
||||||
setBlockForCellType(x, y, cell);
|
setBlockForCellType(x, y, cell);
|
||||||
|
|
||||||
if (currentMinecleanerGame.gameover) {
|
if (currentMinecleanerGame.gameover) {
|
||||||
arenaStatus = ArenaStatus.COMPLETED;
|
Bukkit.getScheduler().runTaskLater(plugin, () -> {
|
||||||
|
arenaStatus = ArenaStatus.COMPLETED;
|
||||||
|
}, 5L);
|
||||||
plugin.getManager().handleGameover(player, this, !(cell.isRevealed() && cell.isExploded()));
|
plugin.getManager().handleGameover(player, this, !(cell.isRevealed() && cell.isExploded()));
|
||||||
} else {
|
} else {
|
||||||
updateIngameInfoTexts();
|
updateIngameInfoTexts();
|
||||||
|
|
@ -731,6 +732,9 @@ public class MinecleanerArena {
|
||||||
return widthIndex;
|
return widthIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setArenaStaus(ArenaStatus status) {
|
||||||
|
this.arenaStatus = status;
|
||||||
|
}
|
||||||
|
|
||||||
private int getRotationYaw() {
|
private int getRotationYaw() {
|
||||||
return switch (orientation) {
|
return switch (orientation) {
|
||||||
|
|
@ -740,4 +744,5 @@ public class MinecleanerArena {
|
||||||
default -> 0;
|
default -> 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -80,7 +80,7 @@ public class MinecleanerListener implements Listener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if(arenaClicked.hasPlayer() && arenaClicked.getArenaStatus() == ArenaStatus.COMPLETED && !hasRightClicked){
|
} else if(arenaClicked.hasPlayer() && arenaClicked.getArenaStatus() == ArenaStatus.COMPLETED && !hasRightClicked && (plugin.getManager().getSettingsValue("allowmanualreset", e.getPlayer()) == 1)) {
|
||||||
plugin.getManager().getSchedulerGameOver().cancel();
|
plugin.getManager().getSchedulerGameOver().cancel();
|
||||||
plugin.getManager().leaveArena(arenaClicked.getCurrentPlayer(), false);
|
plugin.getManager().leaveArena(arenaClicked.getCurrentPlayer(), false);
|
||||||
}
|
}
|
||||||
|
|
@ -129,6 +129,18 @@ public class MinecleanerListener implements Listener {
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
int slot = e.getRawSlot();
|
int slot = e.getRawSlot();
|
||||||
switch (slot) {
|
switch (slot) {
|
||||||
|
case 10: {
|
||||||
|
if(plugin.getManager().getSettingsValue("allowmanualreset", player) == 0) {
|
||||||
|
plugin.getManager().updateSettingsValue("allowmanualreset", 1, player);
|
||||||
|
player.closeInventory();
|
||||||
|
player.openInventory(plugin.getManager().showSettingsInventory(player));
|
||||||
|
} else {
|
||||||
|
plugin.getManager().updateSettingsValue("allowmanualreset", 0, player);
|
||||||
|
player.closeInventory();
|
||||||
|
player.openInventory(plugin.getManager().showSettingsInventory(player));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case 12: {
|
case 12: {
|
||||||
if(plugin.getManager().getSettingsValue("additionaldisplay", player) == 0) {
|
if(plugin.getManager().getSettingsValue("additionaldisplay", player) == 0) {
|
||||||
plugin.getManager().updateSettingsValue("additionaldisplay", 1, player);
|
plugin.getManager().updateSettingsValue("additionaldisplay", 1, player);
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,7 @@ public class MinecleanerManager {
|
||||||
private SettingKey minecleanerSettingTimerKey;
|
private SettingKey minecleanerSettingTimerKey;
|
||||||
private SettingKey minecleanerAdditionalDisplaySettingKey;
|
private SettingKey minecleanerAdditionalDisplaySettingKey;
|
||||||
private SettingKey minecleanerResetTimerSettingKey;
|
private SettingKey minecleanerResetTimerSettingKey;
|
||||||
|
private SettingKey minecleanerAllowManualResetSettingKey;
|
||||||
|
|
||||||
public MinecleanerManager(MinecleanerPlugin plugin) {
|
public MinecleanerManager(MinecleanerPlugin plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
|
|
@ -81,6 +82,10 @@ public class MinecleanerManager {
|
||||||
minecleanerResetTimerSettingKey.setDefault(5);
|
minecleanerResetTimerSettingKey.setDefault(5);
|
||||||
minecleanerResetTimerSettingKey.setDisplayName("Dauer die das Spielfeld für das Zurücksetzen brauchen soll");
|
minecleanerResetTimerSettingKey.setDisplayName("Dauer die das Spielfeld für das Zurücksetzen brauchen soll");
|
||||||
|
|
||||||
|
minecleanerAllowManualResetSettingKey = plugin.getCubesideStatistics().getSettingKey("minecleaner.settings.allowmanualreset");
|
||||||
|
minecleanerAllowManualResetSettingKey.setDefault(0);
|
||||||
|
minecleanerAllowManualResetSettingKey.setDisplayName("Erlaube das manuelle Zurücksetzen des Spielfeldes");
|
||||||
|
|
||||||
this.settingsInventory = plugin.getServer().createInventory(null, InventoryType.CHEST,
|
this.settingsInventory = plugin.getServer().createInventory(null, InventoryType.CHEST,
|
||||||
plugin.getDisplayedPluginName() + " Einstellungen");
|
plugin.getDisplayedPluginName() + " Einstellungen");
|
||||||
|
|
||||||
|
|
@ -139,6 +144,7 @@ public class MinecleanerManager {
|
||||||
|
|
||||||
public void leaveArena(Player player, boolean message) {
|
public void leaveArena(Player player, boolean message) {
|
||||||
MinecleanerArena arena = plugin.getArenaList().getPlayerArena(player);
|
MinecleanerArena arena = plugin.getArenaList().getPlayerArena(player);
|
||||||
|
arena.setArenaStaus(ArenaStatus.INACTIVE);
|
||||||
Preconditions.checkArgument(arena != null, "player is in no arena");
|
Preconditions.checkArgument(arena != null, "player is in no arena");
|
||||||
arena.removePlayer();
|
arena.removePlayer();
|
||||||
plugin.getArenaList().setArenaForPlayer(player, null);
|
plugin.getArenaList().setArenaForPlayer(player, null);
|
||||||
|
|
@ -367,11 +373,17 @@ public class MinecleanerManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Inventory showSettingsInventory(Player player) {
|
public Inventory showSettingsInventory(Player player) {
|
||||||
int current = getSettingsValue("additionaldisplay", player);
|
int current = getSettingsValue("allowmanualreset", player);
|
||||||
|
|
||||||
settingsInventory.setItem(10,
|
if(current == 0) {
|
||||||
ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.BARRIER), ChatColor.RED + "Platzhalter")));
|
settingsInventory.setItem(10,
|
||||||
|
ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.SHEARS), ChatColor.RED + "Manuelles Resetten deaktiviert")));
|
||||||
|
} else {
|
||||||
|
settingsInventory.setItem(10,
|
||||||
|
ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.SHEARS), ChatColor.GREEN + "Manuelles Resetten aktiviert")));
|
||||||
|
}
|
||||||
|
|
||||||
|
current = getSettingsValue("additionaldisplay", player);
|
||||||
if(current == 0) {
|
if(current == 0) {
|
||||||
settingsInventory.setItem(12,
|
settingsInventory.setItem(12,
|
||||||
ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.NAME_TAG), ChatColor.RED + "Zusätzliche Anzeige in der Action Bar")));
|
ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.NAME_TAG), ChatColor.RED + "Zusätzliche Anzeige in der Action Bar")));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue