diff --git a/TestServer/plugins/TF_PrisonEscape/config.yml b/TestServer/plugins/TF_PrisonEscape/config.yml index 8324fb0c..ef4e7319 100644 --- a/TestServer/plugins/TF_PrisonEscape/config.yml +++ b/TestServer/plugins/TF_PrisonEscape/config.yml @@ -141,7 +141,7 @@ PrisonersSecretPassagesLocation: Z: 8 Value: X: 0 - Y: 83 + Y: 82 Z: 5 "2": Key: @@ -150,7 +150,7 @@ PrisonersSecretPassagesLocation: Z: 2 Value: X: 0 - Y: 83 + Y: 82 Z: 0 "3": Key: @@ -159,7 +159,7 @@ PrisonersSecretPassagesLocation: Z: -4 Value: X: 0 - Y: 83 + Y: 82 Z: -5 "4": Key: @@ -168,7 +168,7 @@ PrisonersSecretPassagesLocation: Z: -10 Value: X: 0 - Y: 83 + Y: 82 Z: -10 "5": Key: @@ -1256,6 +1256,7 @@ ChestsContents: Stick: 0.005 PlasticPlate: 0.01 Copper: 0.01 + GoldBar: 0.01 Battery: 0.005 NotePart: 0.01 EnergyDrink: 0.1 @@ -1269,6 +1270,7 @@ ChestsContents: Stick: 0.005 PlasticPlate: 0.01 Copper: 0.01 + GoldBar: 0.01 Battery: 0.005 NotePart: 0.01 EnergyDrink: 0.1 @@ -1282,6 +1284,7 @@ ChestsContents: Stick: 0.005 PlasticPlate: 0.01 Copper: 0.05 + GoldBar: 0.03 Antena: 0.025 Battery: 0.025 NotePart: 0.05 @@ -1299,6 +1302,7 @@ ChestsContents: Stick: 0.025 PlasticPlate: 0.01 Copper: 0.01 + GoldBar: 0.01 Battery: 0.005 NotePart: 0.01 EnergyDrink: 0.1 @@ -1313,6 +1317,7 @@ ChestsContents: PlasticPlate: 0.05 MetalPlate: 0.01 Copper: 0.01 + GoldBar: 0.01 Battery: 0.005 NotePart: 0.01 EnergyDrink: 0.1 @@ -1328,6 +1333,7 @@ ChestsContents: PlasticPlate: 0.1 MetalPlate: 0.01 Copper: 0.01 + GoldBar: 0.01 Battery: 0.005 NotePart: 0.01 EnergyDrink: 0.1 @@ -1341,6 +1347,7 @@ ChestsContents: Stick: 0.005 PlasticPlate: 0.01 Copper: 0.01 + GoldBar: 0.01 Battery: 0.005 NotePart: 0.01 EnergyDrink: 0.1 diff --git a/TestServer/plugins/TF_PrisonEscape/languages/english.yml b/TestServer/plugins/TF_PrisonEscape/languages/english.yml index ee1bd525..1b23a10a 100644 --- a/TestServer/plugins/TF_PrisonEscape/languages/english.yml +++ b/TestServer/plugins/TF_PrisonEscape/languages/english.yml @@ -168,6 +168,7 @@ Messages: TradeRequestSent: "&eTrade request sent to &b{PLAYER}&e." TradeRequestReceived: "&eYou received a trade request. Shift+Click &b{PLAYER} &eto accept. You have &b{TIME} seconds" CraftingItemsMissing: "&cYou are missing some items required to craft that item." + CodeFound: "&eSomeone found the main door code." Announcements: GameStarting: - "&6===================================" diff --git a/src/main/java/net/tiagofar78/prisonescape/Events.java b/src/main/java/net/tiagofar78/prisonescape/Events.java index 1e3823c1..96ecc26f 100644 --- a/src/main/java/net/tiagofar78/prisonescape/Events.java +++ b/src/main/java/net/tiagofar78/prisonescape/Events.java @@ -3,13 +3,11 @@ import net.tiagofar78.prisonescape.game.PEGame; import net.tiagofar78.prisonescape.items.FunctionalItem; import net.tiagofar78.prisonescape.items.Item; -import net.tiagofar78.prisonescape.items.ItemFactory; import net.tiagofar78.prisonescape.managers.ConfigManager; import net.tiagofar78.prisonescape.managers.GameManager; import net.tiagofar78.prisonescape.menus.ClickReturnAction; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.entity.Entity; @@ -25,6 +23,7 @@ import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntitySpawnEvent; import org.bukkit.event.entity.FoodLevelChangeEvent; +import org.bukkit.event.hanging.HangingBreakEvent; import org.bukkit.event.inventory.InventoryAction; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; @@ -38,13 +37,12 @@ import org.bukkit.event.player.PlayerToggleSneakEvent; import org.bukkit.event.weather.WeatherChangeEvent; import org.bukkit.inventory.EquipmentSlot; -import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; public class Events implements Listener { private static final EntityType[] ALLOWED_MOBS = - {EntityType.PRIMED_TNT, EntityType.PAINTING, EntityType.ARMOR_STAND}; + {EntityType.PRIMED_TNT, EntityType.PAINTING, EntityType.ARMOR_STAND, EntityType.ITEM_FRAME}; @EventHandler public void playerMove(PlayerMoveEvent e) { @@ -156,35 +154,20 @@ public void playerClickInventory(InventoryClickEvent e) { } Player player = (Player) e.getWhoClicked(); - boolean isPlayerInv = false; - if (e.getClickedInventory().getType() == InventoryType.PLAYER) { - Inventory topInv = e.getView().getTopInventory(); - if (topInv == null) { - e.setCancelled(true); - return; - } + boolean isPlayerInv = e.getClickedInventory().getType() == InventoryType.PLAYER; - if (e.getCurrentItem() != null && e.getCurrentItem().getType() == Material.BLACK_STAINED_GLASS_PANE) { + if (isPlayerInv && e.getAction() == InventoryAction.DROP_ONE_SLOT) { + if (game.playerDropItem(player.getName(), e.getSlot()) == -1) { e.setCancelled(true); - return; } - if (e.getAction() == InventoryAction.DROP_ALL_SLOT || e.getAction() == InventoryAction.DROP_ONE_SLOT) { - int slot = e.getSlot(); - if (game.playerDropItem(player.getName(), slot) == -1) { - e.setCancelled(true); - } - return; - } - - isPlayerInv = true; + return; } ItemStack cursor = e.getCursor(); ItemStack current = e.getCurrentItem(); - Item item = ItemFactory.createItem(e.getCursor()); - ClickReturnAction returnAction = game.playerClickMenu(player.getName(), e.getSlot(), item, isPlayerInv); + ClickReturnAction returnAction = game.playerClickMenu(player.getName(), e.getSlot(), isPlayerInv); if (returnAction == ClickReturnAction.IGNORE) { return; } @@ -269,6 +252,17 @@ public void onBlockBreak(BlockBreakEvent event) { } } + @EventHandler + public void onBlockHangingBreak(HangingBreakEvent e) { + EntityType type = e.getEntity().getType(); + for (EntityType mobType : ALLOWED_MOBS) { + if (mobType == type) { + e.setCancelled(true); + break; + } + } + } + @EventHandler public void onExplosion(EntityExplodeEvent e) { if (!e.getEntity().getWorld().getName().equals(ConfigManager.getInstance().getWorldName())) { @@ -295,7 +289,8 @@ public void onPlayerInteractWithPlayer(PlayerInteractEntityEvent e) { @EventHandler public void onPlayerCombat(EntityDamageByEntityEvent e) { - if (GameManager.getGame() == null) { + PEGame game = GameManager.getGame(); + if (game == null) { return; } @@ -304,10 +299,18 @@ public void onPlayerCombat(EntityDamageByEntityEvent e) { return; } + EntityType type = e.getEntity().getType(); + for (EntityType mobType : ALLOWED_MOBS) { + if (mobType == type) { + e.setCancelled(true); + break; + } + } + Player pAttacker = (Player) eAttacker; - @SuppressWarnings("deprecation") - Item item = ItemFactory.createItem(pAttacker.getItemInHand()); + String attackerName = pAttacker.getName(); + Item item = game.getPEPlayer(attackerName).getItemAt(pAttacker.getInventory().getHeldItemSlot()); if (item.isFunctional()) { ((FunctionalItem) item).use(e); diff --git a/src/main/java/net/tiagofar78/prisonescape/bukkit/BukkitTeleporter.java b/src/main/java/net/tiagofar78/prisonescape/bukkit/BukkitTeleporter.java index 316f0343..b4e67bde 100644 --- a/src/main/java/net/tiagofar78/prisonescape/bukkit/BukkitTeleporter.java +++ b/src/main/java/net/tiagofar78/prisonescape/bukkit/BukkitTeleporter.java @@ -16,7 +16,7 @@ public static void teleport(PEPlayer player, Location loc) { return; } - bukkitPlayer.teleport(loc.add(0, CENTER_OF_BLOCK, 0)); + bukkitPlayer.teleport(loc.clone().add(CENTER_OF_BLOCK, 0, CENTER_OF_BLOCK)); } } diff --git a/src/main/java/net/tiagofar78/prisonescape/game/PEGame.java b/src/main/java/net/tiagofar78/prisonescape/game/PEGame.java index 935ed991..cccbcb9b 100644 --- a/src/main/java/net/tiagofar78/prisonescape/game/PEGame.java +++ b/src/main/java/net/tiagofar78/prisonescape/game/PEGame.java @@ -710,7 +710,7 @@ public void playerCloseMenu(String playerName) { player.closeMenu(); } - public ClickReturnAction playerClickMenu(String playerName, int slot, Item itemHeld, boolean clickedPlayerInv) { + public ClickReturnAction playerClickMenu(String playerName, int slot, boolean clickedPlayerInv) { PEPlayer player = getPEPlayer(playerName); if (player == null) { return ClickReturnAction.IGNORE; @@ -718,10 +718,10 @@ public ClickReturnAction playerClickMenu(String playerName, int slot, Item itemH Clickable menu = player.getOpenedMenu(); if (menu == null) { - return ClickReturnAction.IGNORE; + return ClickReturnAction.NOTHING; } - return menu.click(player, slot, itemHeld, clickedPlayerInv); + return menu.click(player, slot, clickedPlayerInv); } public void playerSneak(String playerName) { @@ -1207,4 +1207,8 @@ public void findDoorCode() { _hasDoorCode = true; } + public void changeDoorCode() { + _hasDoorCode = false; + } + } diff --git a/src/main/java/net/tiagofar78/prisonescape/game/PEPlayer.java b/src/main/java/net/tiagofar78/prisonescape/game/PEPlayer.java index 1565c5fc..8e57e97f 100644 --- a/src/main/java/net/tiagofar78/prisonescape/game/PEPlayer.java +++ b/src/main/java/net/tiagofar78/prisonescape/game/PEPlayer.java @@ -398,6 +398,15 @@ private void closeInventoryView() { player.closeInventory(); } + public void setCursorItem(ItemStack item) { + Player player = getBukkitPlayer(); + if (player == null) { + return; + } + + player.setItemOnCursor(item); + } + public void playSound(Sound sound) { Player player = getBukkitPlayer(); if (player == null) { diff --git a/src/main/java/net/tiagofar78/prisonescape/game/prisonbuilding/Chest.java b/src/main/java/net/tiagofar78/prisonescape/game/prisonbuilding/Chest.java index f4e78390..ee930d86 100644 --- a/src/main/java/net/tiagofar78/prisonescape/game/prisonbuilding/Chest.java +++ b/src/main/java/net/tiagofar78/prisonescape/game/prisonbuilding/Chest.java @@ -82,7 +82,7 @@ private Item getRandomItem() { } @Override - public ClickReturnAction click(PEPlayer player, int slot, Item itemHeld, boolean clickedPlayerInv) { + public ClickReturnAction click(PEPlayer player, int slot, boolean clickedPlayerInv) { if (clickedPlayerInv) { return ClickReturnAction.NOTHING; } diff --git a/src/main/java/net/tiagofar78/prisonescape/game/prisonbuilding/Vault.java b/src/main/java/net/tiagofar78/prisonescape/game/prisonbuilding/Vault.java index 8eb7397d..9183d209 100644 --- a/src/main/java/net/tiagofar78/prisonescape/game/prisonbuilding/Vault.java +++ b/src/main/java/net/tiagofar78/prisonescape/game/prisonbuilding/Vault.java @@ -35,6 +35,7 @@ public class Vault implements Clickable { private List _nonHiddenContents; private List _hiddenContents; + private Item _cursorItem; private Prisoner _owner; @@ -43,6 +44,7 @@ public class Vault implements Clickable { public Vault(Prisoner owner, Location location) { _nonHiddenContents = createContentsList(NON_HIDDEN_SIZE); _hiddenContents = createContentsList(HIDDEN_SIZE); + _cursorItem = new NullItem(); _owner = owner; @@ -99,19 +101,22 @@ public int search() { private void clearContents(List contents, int size) { for (int i = 0; i < size; i++) { - contents.set(i, null); + contents.set(i, new NullItem()); } } @Override - public ClickReturnAction click(PEPlayer player, int slot, Item itemHeld, boolean clickedPlayerInv) { + public ClickReturnAction click(PEPlayer player, int slot, boolean clickedPlayerInv) { if (clickedPlayerInv) { int index = player.convertToInventoryIndex(slot); if (index == -1) { return ClickReturnAction.NOTHING; } - player.setItem(index, itemHeld); + Item currentItem = player.getItemsInInventory().get(index); + + player.setItem(index, _cursorItem); + _cursorItem = currentItem; return ClickReturnAction.CHANGE_HOLD_AND_SELECTED; } @@ -122,10 +127,46 @@ public ClickReturnAction click(PEPlayer player, int slot, Item itemHeld, boolean boolean isHidden = isHiddenIndex(slot); - setItem(isHidden, itemIndex, itemHeld); + Item currentItem = isHidden ? _hiddenContents.get(itemIndex) : _nonHiddenContents.get(itemIndex); + + setItem(isHidden, itemIndex, _cursorItem); + _cursorItem = currentItem; return ClickReturnAction.CHANGE_HOLD_AND_SELECTED; } + @Override + public void close(PEPlayer player) { + player.setCursorItem(null); + + if (_cursorItem.equals(new NullItem())) { + return; + } + + if (player.giveItem(_cursorItem) != -1) { + _cursorItem = new NullItem(); + player.updateInventory(); + return; + } + + for (int i = 0; i < _hiddenContents.size(); i++) { + if (_hiddenContents.get(i).equals(new NullItem())) { + setItem(false, i, _cursorItem); + _cursorItem = new NullItem(); + return; + } + } + + for (int i = 0; i < _nonHiddenContents.size(); i++) { + if (_nonHiddenContents.get(i).equals(new NullItem())) { + setItem(true, i, _cursorItem); + _cursorItem = new NullItem(); + return; + } + } + + throw new RuntimeException("There are more items in inventory + vault now than when it was opened"); + } + private int convertToIndex(int slot) { for (int i = 0; i < NON_HIDDEN_ITEMS_INDEXES.length; i++) { if (NON_HIDDEN_ITEMS_INDEXES[i] == slot) { @@ -156,7 +197,7 @@ private void createWorldVault(Location location) { } private void createWorldSignAboveVault(Location location, String text) { - Block block = location.getBlock(); + Block block = location.clone().add(0, 1, 0).getBlock(); block.setType(Material.OAK_WALL_SIGN); rotate(block); @@ -179,7 +220,7 @@ public void deleteVaultAndRespectiveSignFromWorld() { Location signLocation = _location.clone().add(0, 1, 0); vaultLocation.getBlock().setType(Material.AIR); - signLocation.clone().add(0, 1, 0).getBlock().setType(Material.AIR); + signLocation.getBlock().setType(Material.AIR); } @Override diff --git a/src/main/java/net/tiagofar78/prisonescape/game/prisonbuilding/doors/CodeDoor.java b/src/main/java/net/tiagofar78/prisonescape/game/prisonbuilding/doors/CodeDoor.java index dd1caf55..2eb2dcae 100644 --- a/src/main/java/net/tiagofar78/prisonescape/game/prisonbuilding/doors/CodeDoor.java +++ b/src/main/java/net/tiagofar78/prisonescape/game/prisonbuilding/doors/CodeDoor.java @@ -15,8 +15,15 @@ public ClickDoorReturnAction click(PEPlayer player, Item itemHeld) { PEGame game = GameManager.getGame(); boolean isOpened = isOpened(); - if (game.isGuard(player)) - return isOpened ? ClickDoorReturnAction.CLOSE_DOOR : ClickDoorReturnAction.NOTHING; + if (game.isGuard(player)) { + if (isOpened) { + game.changeDoorCode(); + return ClickDoorReturnAction.CLOSE_DOOR; + } + + return ClickDoorReturnAction.NOTHING; + } + if (game.isPrisoner(player)) return !isOpened && game.playersHaveDoorCode() diff --git a/src/main/java/net/tiagofar78/prisonescape/items/DoorCodeItem.java b/src/main/java/net/tiagofar78/prisonescape/items/DoorCodeItem.java index 0c9ad321..846a1abe 100644 --- a/src/main/java/net/tiagofar78/prisonescape/items/DoorCodeItem.java +++ b/src/main/java/net/tiagofar78/prisonescape/items/DoorCodeItem.java @@ -1,11 +1,18 @@ package net.tiagofar78.prisonescape.items; +import net.tiagofar78.prisonescape.bukkit.BukkitMessageSender; +import net.tiagofar78.prisonescape.game.PEGame; +import net.tiagofar78.prisonescape.game.Prisoner; +import net.tiagofar78.prisonescape.managers.GameManager; +import net.tiagofar78.prisonescape.managers.MessageLanguageManager; + import org.bukkit.Material; +import org.bukkit.event.player.PlayerInteractEvent; import java.util.ArrayList; import java.util.List; -public class DoorCodeItem extends Item implements Craftable { +public class DoorCodeItem extends FunctionalItem implements Craftable { @Override public boolean isMetalic() { @@ -22,6 +29,21 @@ public Material getMaterial() { return Material.FILLED_MAP; } + @Override + public void use(PlayerInteractEvent e) { + PEGame game = GameManager.getGame(); + + game.findDoorCode(); + + String playerName = e.getPlayer().getName(); + game.getPEPlayer(playerName).removeItem(e.getPlayer().getInventory().getHeldItemSlot()); + + for (Prisoner prisoner : game.getPrisonerTeam().getMembers()) { + MessageLanguageManager messages = MessageLanguageManager.getInstanceByPlayer(prisoner.getName()); + BukkitMessageSender.sendChatMessage(prisoner, messages.getCodeFoundMessage()); + } + } + @Override public List getCratingItems() { List items = new ArrayList<>(); diff --git a/src/main/java/net/tiagofar78/prisonescape/items/ItemFactory.java b/src/main/java/net/tiagofar78/prisonescape/items/ItemFactory.java index edee2bd9..cab5992e 100644 --- a/src/main/java/net/tiagofar78/prisonescape/items/ItemFactory.java +++ b/src/main/java/net/tiagofar78/prisonescape/items/ItemFactory.java @@ -1,7 +1,5 @@ package net.tiagofar78.prisonescape.items; -import org.bukkit.inventory.ItemStack; - public class ItemFactory { private static Item[] items = { @@ -43,16 +41,6 @@ public class ItemFactory { new OpenCamerasItem(), new MissionsItem()}; - public static Item createItem(ItemStack bukkitItem) { - for (Item item : items) { - if (item.matches(bukkitItem)) { - return instantiateItem(item.getClass()); - } - } - - return new NullItem(); - } - public static Item createItem(String name) { for (Item item : items) { if (item.getConfigName().equals(name)) { diff --git a/src/main/java/net/tiagofar78/prisonescape/managers/MessageLanguageManager.java b/src/main/java/net/tiagofar78/prisonescape/managers/MessageLanguageManager.java index 05a0b69b..fe17746b 100644 --- a/src/main/java/net/tiagofar78/prisonescape/managers/MessageLanguageManager.java +++ b/src/main/java/net/tiagofar78/prisonescape/managers/MessageLanguageManager.java @@ -149,6 +149,7 @@ private static String getPlayerLanguage(String playerName) { private String _tradeRequestSentMessage; private String _tradeRequestReceivedMessage; private String _craftingItemsMissingMessage; + private String _codeFoundMessage; // ######################################## // # Announcements # @@ -305,6 +306,7 @@ private MessageLanguageManager(String language) { _tradeRequestSentMessage = createMessage(messages.getString(warningPath + "TradeRequestSent")); _tradeRequestReceivedMessage = createMessage(messages.getString(warningPath + "TradeRequestReceived")); _craftingItemsMissingMessage = createMessage(messages.getString(warningPath + "CraftingItemsMissing")); + _codeFoundMessage = createMessage(messages.getString(warningPath + "CodeFound")); String announcementPath = messagePath + "Announcements."; _gameStartingAnnouncementMessage = createMessage(messages.getStringList(announcementPath + "GameStarting")); @@ -651,6 +653,10 @@ public String getCraftingItemsMissingMessage() { return _craftingItemsMissingMessage; } + public String getCodeFoundMessage() { + return _codeFoundMessage; + } + // ######################################## // # Announcements # // ######################################## diff --git a/src/main/java/net/tiagofar78/prisonescape/menus/Clickable.java b/src/main/java/net/tiagofar78/prisonescape/menus/Clickable.java index c2a11f76..7fb755f3 100644 --- a/src/main/java/net/tiagofar78/prisonescape/menus/Clickable.java +++ b/src/main/java/net/tiagofar78/prisonescape/menus/Clickable.java @@ -1,7 +1,6 @@ package net.tiagofar78.prisonescape.menus; import net.tiagofar78.prisonescape.game.PEPlayer; -import net.tiagofar78.prisonescape.items.Item; import net.tiagofar78.prisonescape.managers.MessageLanguageManager; import org.bukkit.inventory.Inventory; @@ -18,6 +17,6 @@ public default void updateInventory(Inventory inv, PEPlayer player) { // Nothing } - public abstract ClickReturnAction click(PEPlayer player, int slot, Item itemHeld, boolean clickedPlayerInv); + public abstract ClickReturnAction click(PEPlayer player, int slot, boolean clickedPlayerInv); } diff --git a/src/main/java/net/tiagofar78/prisonescape/menus/CraftingMenu.java b/src/main/java/net/tiagofar78/prisonescape/menus/CraftingMenu.java index ff454c45..dfd3a0d4 100644 --- a/src/main/java/net/tiagofar78/prisonescape/menus/CraftingMenu.java +++ b/src/main/java/net/tiagofar78/prisonescape/menus/CraftingMenu.java @@ -131,7 +131,7 @@ public void updateInventory(Inventory inv, PEPlayer player) { } @Override - public ClickReturnAction click(PEPlayer player, int slot, Item itemHeld, boolean clickedPlayerInv) { + public ClickReturnAction click(PEPlayer player, int slot, boolean clickedPlayerInv) { if (clickedPlayerInv) { return ClickReturnAction.NOTHING; } diff --git a/src/main/java/net/tiagofar78/prisonescape/menus/Shop.java b/src/main/java/net/tiagofar78/prisonescape/menus/Shop.java index 35ba6447..d5b82153 100644 --- a/src/main/java/net/tiagofar78/prisonescape/menus/Shop.java +++ b/src/main/java/net/tiagofar78/prisonescape/menus/Shop.java @@ -40,7 +40,7 @@ private List createContentsList() { } @Override - public ClickReturnAction click(PEPlayer player, int slot, Item itemHeld, boolean clickedPlayerInv) { + public ClickReturnAction click(PEPlayer player, int slot, boolean clickedPlayerInv) { Guard guard = (Guard) player; if (clickedPlayerInv) { diff --git a/src/main/java/net/tiagofar78/prisonescape/menus/TradeMenu.java b/src/main/java/net/tiagofar78/prisonescape/menus/TradeMenu.java index 2c0373d8..1fa7355b 100644 --- a/src/main/java/net/tiagofar78/prisonescape/menus/TradeMenu.java +++ b/src/main/java/net/tiagofar78/prisonescape/menus/TradeMenu.java @@ -104,7 +104,7 @@ public void close(PEPlayer firstCloser) { } @Override - public ClickReturnAction click(PEPlayer player, int slot, Item itemHeld, boolean clickedPlayerInv) { + public ClickReturnAction click(PEPlayer player, int slot, boolean clickedPlayerInv) { return clickedPlayerInv ? clickPlayerInv(player, slot) : clickViewInv(player, slot); } diff --git a/src/main/resources/languages/english.yml b/src/main/resources/languages/english.yml index ee1bd525..1b23a10a 100644 --- a/src/main/resources/languages/english.yml +++ b/src/main/resources/languages/english.yml @@ -168,6 +168,7 @@ Messages: TradeRequestSent: "&eTrade request sent to &b{PLAYER}&e." TradeRequestReceived: "&eYou received a trade request. Shift+Click &b{PLAYER} &eto accept. You have &b{TIME} seconds" CraftingItemsMissing: "&cYou are missing some items required to craft that item." + CodeFound: "&eSomeone found the main door code." Announcements: GameStarting: - "&6==================================="