From 42967d36961f8e5f1a7c3698581f67ac3cfda158 Mon Sep 17 00:00:00 2001 From: "MrsHerobrine (Naomi)" Date: Sun, 3 Oct 2021 21:36:59 +0200 Subject: [PATCH] finally fix dropping --- build.gradle | 2 +- .../ShogiCraft/listeners/Listeners.java | 4 +-- .../mrsherobrine/ShogiCraft/shogi/Game.java | 27 ++++++++++++++----- src/main/resources/plugin.yml | 4 +-- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/build.gradle b/build.gradle index 4185736..002570a 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,7 @@ dependencies { } shadowJar { - version '1.0' + version '1.0.1' archiveBaseName.set('ShogiCraft') archiveClassifier.set("") } diff --git a/src/main/java/xyz/mrsherobrine/ShogiCraft/listeners/Listeners.java b/src/main/java/xyz/mrsherobrine/ShogiCraft/listeners/Listeners.java index c5f25d0..33b4dee 100644 --- a/src/main/java/xyz/mrsherobrine/ShogiCraft/listeners/Listeners.java +++ b/src/main/java/xyz/mrsherobrine/ShogiCraft/listeners/Listeners.java @@ -55,7 +55,7 @@ public void movePiece(PlayerInteractEvent event) { //if a player is not sneaking, run normal moves or drops if (!event.getPlayer().isSneaking()) { if (checker.getClickedTileWithinBoard(event.getClickedBlock().getLocation(), CommandHandler.boardList.get(event.getPlayer().getUniqueId()).getBoard()) != null && !isInList(event.getPlayer().getUniqueId()+"1")) { - if (event.getPlayer().getInventory().getItemInMainHand().getType() == Material.PAPER && customModelDataInfo.contains(event.getPlayer().getActiveItem().getItemMeta().getCustomModelData())) { + if (event.getPlayer().getInventory().getItemInMainHand().getType() == Material.PAPER && customModelDataInfo.contains(event.getPlayer().getInventory().getItemInMainHand().getItemMeta().getCustomModelData())) { game.drop( checker.getClickedTileWithinBoard( @@ -66,8 +66,6 @@ public void movePiece(PlayerInteractEvent event) { event.getPlayer().getUniqueId() ); - event.getPlayer().getInventory().getItemInMainHand().subtract(); - } else { clickedTileList.put(event.getPlayer().getUniqueId() + "1", checker.getClickedTileWithinBoard(event.getClickedBlock().getLocation(), CommandHandler.boardList.get(event.getPlayer().getUniqueId()).getBoard())); diff --git a/src/main/java/xyz/mrsherobrine/ShogiCraft/shogi/Game.java b/src/main/java/xyz/mrsherobrine/ShogiCraft/shogi/Game.java index c596199..83cde66 100644 --- a/src/main/java/xyz/mrsherobrine/ShogiCraft/shogi/Game.java +++ b/src/main/java/xyz/mrsherobrine/ShogiCraft/shogi/Game.java @@ -52,10 +52,10 @@ public void move(Player player, boolean sneaking, Tile[][] board) { && canPromote(from, to, board, player)) { //check if piece belongs to player who's moving - if (to.getPiece() != null && to.getPiece().getEntity().getPersistentDataContainer().get(ArmorStandCreator.ownerKey, PersistentDataType.STRING).equals(from.getPiece().getEntity().getPersistentDataContainer().get(ArmorStandCreator.ownerKey, PersistentDataType.STRING))) { + /*if (to.getPiece() != null && to.getPiece().getEntity().getPersistentDataContainer().get(ArmorStandCreator.ownerKey, PersistentDataType.STRING).equals(from.getPiece().getEntity().getPersistentDataContainer().get(ArmorStandCreator.ownerKey, PersistentDataType.STRING))) { player.sendMessage(Component.text("You can't take your own pieces!", NamedTextColor.RED)); return; - } + }*/ if (to.getPiece() != null) { capture(to.getPiece().getType(), player.getUniqueId()); @@ -91,10 +91,10 @@ && canPromote(from, to, board, player)) { && from.getPiece().canMove(from, to, player.getUniqueId()) && CommandHandler.turns.get(player.getUniqueId())) { - if (to.getPiece() != null && to.getPiece().getEntity().getPersistentDataContainer().get(ArmorStandCreator.ownerKey, PersistentDataType.STRING).equals(from.getPiece().getEntity().getPersistentDataContainer().get(ArmorStandCreator.ownerKey, PersistentDataType.STRING))) { + /*if (to.getPiece() != null && to.getPiece().getEntity().getPersistentDataContainer().get(ArmorStandCreator.ownerKey, PersistentDataType.STRING).equals(from.getPiece().getEntity().getPersistentDataContainer().get(ArmorStandCreator.ownerKey, PersistentDataType.STRING))) { player.sendMessage(Component.text("You can't take your own pieces!", NamedTextColor.RED)); return; - } + }*/ if (to.getPiece() != null) { capture(to.getPiece().getType(), player.getUniqueId()); @@ -146,14 +146,29 @@ public void capture(PieceType type, UUID uuid) { Component.text(" wins against " + Bukkit.getPlayer(CommandHandler.challenges.get(p.getUniqueId())).getName() + "!", NamedTextColor.GREEN).decoration(TextDecoration.BOLD, false) ), Server.BROADCAST_CHANNEL_USERS ); + + p.sendMessage(Component.text("Boards have been cleared!")); + + CommandHandler.boardList.remove(uuid); + CommandHandler.boardList.remove(CommandHandler.challenges.get(uuid)); + CommandHandler.turns.remove(CommandHandler.challenges.get(uuid)); + CommandHandler.turns.remove(uuid); + CommandHandler.players.remove(uuid); + CommandHandler.players.remove(CommandHandler.challenges.get(uuid)); + CommandHandler.challenges.remove(CommandHandler.challenges.get(uuid)); + CommandHandler.challenges.remove(uuid); } } public void drop(Tile destination, int customModelData, UUID uuid) { - if (destination.getPiece() != null) { + CommandHandler.turns.replace(uuid, false); + CommandHandler.turns.replace(CommandHandler.challenges.get(uuid), true); + + if (destination.getPiece() == null) { destination.setPiece(creator.createPiece(getTypeFromTexture(customModelData), destination, uuid, CommandHandler.players.get(uuid).get())); + Bukkit.getPlayer(uuid).getInventory().getItemInMainHand().subtract(); } else { Bukkit.getPlayer(uuid).sendMessage(Component.text("Can't drop that there!", NamedTextColor.RED)); } @@ -270,7 +285,7 @@ public boolean canPromote(Tile from, Tile to, Tile[][] board, Player player) { List l = new ArrayList<>(); - if (CommandHandler.players.get(player.getUniqueId()) == Side.SENTE) { + if (CommandHandler.players.get(player.getUniqueId()) == Side.GOTE) { for(int i = 0; i<3; i++) { for (Tile tile : board[i]) { diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 5a5c677..dba3351 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ main: 'xyz.mrsherobrine.ShogiCraft.ShogiCraft' name: 'ShogiCraft' description: "Allows you to play traditional Japanese shogi in Minecraft!" -version: '1.0' +version: '1.0.1' author: 'Mrs_Herobrine_' api-version: '1.17' commands: @@ -13,7 +13,7 @@ commands: /shogi remove /shogi challenge /shogi challenge - /shogi surrender + /shogi /shogi clear permissions: shogicraft.shogi: