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.List; | ||||
| import java.util.UUID; | ||||
| import java.util.logging.Level; | ||||
| 
 | ||||
| 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.ChatMessageType; | ||||
| import net.md_5.bungee.api.chat.BaseComponent; | ||||
| import org.bukkit.Bukkit; | ||||
| import org.bukkit.Location; | ||||
| import org.bukkit.Material; | ||||
| import org.bukkit.World; | ||||
| import org.bukkit.block.Block; | ||||
| import org.bukkit.block.BlockFace; | ||||
| import org.bukkit.block.data.BlockData; | ||||
| import org.bukkit.configuration.ConfigurationSection; | ||||
|  | @ -503,7 +499,10 @@ public class MinecleanerArena { | |||
| 
 | ||||
|                 currentMinecleanerGame.flag(x, y); | ||||
|                 if (currentMinecleanerGame.gameover) { | ||||
|                     arenaStatus = ArenaStatus.COMPLETED; | ||||
|                     Bukkit.getScheduler().runTaskLater(plugin, () -> { | ||||
|                          arenaStatus = ArenaStatus.COMPLETED; | ||||
|                     }, 5L); | ||||
| 
 | ||||
|                     plugin.getManager().handleGameover(player, this, true); | ||||
|                 } | ||||
|                 if (cell.isFlagged() == true) { | ||||
|  | @ -535,7 +534,9 @@ public class MinecleanerArena { | |||
|                 setBlockForCellType(x, y, cell); | ||||
| 
 | ||||
|                 if (currentMinecleanerGame.gameover) { | ||||
|                     arenaStatus = ArenaStatus.COMPLETED; | ||||
|                     Bukkit.getScheduler().runTaskLater(plugin, () -> { | ||||
|                         arenaStatus = ArenaStatus.COMPLETED; | ||||
|                     }, 5L); | ||||
|                     plugin.getManager().handleGameover(player, this, !(cell.isRevealed() && cell.isExploded())); | ||||
|                 } else { | ||||
|                     updateIngameInfoTexts(); | ||||
|  | @ -731,6 +732,9 @@ public class MinecleanerArena { | |||
|         return widthIndex; | ||||
|     } | ||||
| 
 | ||||
|     public void setArenaStaus(ArenaStatus status) { | ||||
|         this.arenaStatus = status; | ||||
|     } | ||||
| 
 | ||||
|     private int getRotationYaw() { | ||||
|         return switch (orientation) { | ||||
|  | @ -740,4 +744,5 @@ public class MinecleanerArena { | |||
|             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().leaveArena(arenaClicked.getCurrentPlayer(), false); | ||||
|                 } | ||||
|  | @ -129,6 +129,18 @@ public class MinecleanerListener implements Listener { | |||
|                 e.setCancelled(true); | ||||
|                 int slot = e.getRawSlot(); | ||||
|                 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: { | ||||
|                         if(plugin.getManager().getSettingsValue("additionaldisplay", player) == 0) { | ||||
|                             plugin.getManager().updateSettingsValue("additionaldisplay", 1, player); | ||||
|  |  | |||
|  | @ -50,6 +50,7 @@ public class MinecleanerManager { | |||
|     private SettingKey minecleanerSettingTimerKey; | ||||
|     private SettingKey minecleanerAdditionalDisplaySettingKey; | ||||
|     private SettingKey minecleanerResetTimerSettingKey; | ||||
|     private SettingKey minecleanerAllowManualResetSettingKey; | ||||
| 
 | ||||
|     public MinecleanerManager(MinecleanerPlugin plugin) { | ||||
|         this.plugin = plugin; | ||||
|  | @ -81,6 +82,10 @@ public class MinecleanerManager { | |||
|             minecleanerResetTimerSettingKey.setDefault(5); | ||||
|             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, | ||||
|                     plugin.getDisplayedPluginName() + " Einstellungen"); | ||||
| 
 | ||||
|  | @ -139,6 +144,7 @@ public class MinecleanerManager { | |||
| 
 | ||||
|     public void leaveArena(Player player, boolean message) { | ||||
|         MinecleanerArena arena = plugin.getArenaList().getPlayerArena(player); | ||||
|         arena.setArenaStaus(ArenaStatus.INACTIVE); | ||||
|         Preconditions.checkArgument(arena != null, "player is in no arena"); | ||||
|         arena.removePlayer(); | ||||
|         plugin.getArenaList().setArenaForPlayer(player, null); | ||||
|  | @ -367,11 +373,17 @@ public class MinecleanerManager { | |||
|     } | ||||
| 
 | ||||
|     public Inventory showSettingsInventory(Player player) { | ||||
|         int current = getSettingsValue("additionaldisplay", player); | ||||
|         int current = getSettingsValue("allowmanualreset", player); | ||||
| 
 | ||||
|         settingsInventory.setItem(10, | ||||
|                 ItemStacks.lore(ItemStacks.rename(new ItemStack(Material.BARRIER), ChatColor.RED + "Platzhalter"))); | ||||
|         if(current == 0) { | ||||
|             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) { | ||||
|             settingsInventory.setItem(12, | ||||
|                     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