diff --git a/src/main/java/com/comandante/creeper/Items/ItemUseHandler.java b/src/main/java/com/comandante/creeper/Items/ItemUseHandler.java index b454ce109f7ec84eb37e5d6f7486f155537e83ff..824fd8e2767d08379cc95a3cc60b794a18b92938 100644 --- a/src/main/java/com/comandante/creeper/Items/ItemUseHandler.java +++ b/src/main/java/com/comandante/creeper/Items/ItemUseHandler.java @@ -63,7 +63,7 @@ public class ItemUseHandler { } private void writeToPlayer(String message) { - gameManager.getChannelUtils().write(playerId, message); + gameManager.getChannelUtils().writeNoPrompt(playerId, message); } private void incrementUses(Item item) { diff --git a/src/main/java/com/comandante/creeper/command/commands/Command.java b/src/main/java/com/comandante/creeper/command/commands/Command.java index eab784e79c8f167eb36b5c52795e0bd1aff68fda..2746bc6bf13c9d832ea1bc548903147b0639d58f 100644 --- a/src/main/java/com/comandante/creeper/command/commands/Command.java +++ b/src/main/java/com/comandante/creeper/command/commands/Command.java @@ -1,10 +1,12 @@ package com.comandante.creeper.command.commands; import com.comandante.creeper.managers.GameManager; +import com.comandante.creeper.model.Player; import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.Arrays; +import java.util.Set; public abstract class Command implements Runnable { @@ -58,4 +60,19 @@ public abstract class Command implements Runnable { String[] split = s.split(" "); return new ArrayList<String>(Arrays.asList(split)); } + + public void commandWrite(String message) { + getGameManager().getChannelUtils().write(getPlayerId(), message); + } + + public void roomSay(Integer roomId, String message) { + Set<String> presentPlayerIds = getGameManager().getRoomManager().getRoom(roomId).getPresentPlayerIds(); + for (String playerId : presentPlayerIds) { + Player player = getGameManager().getPlayerManager().getPlayer(playerId); + if (player.getPlayerId().equals(getPlayerId())) { + commandWrite(message); + } + getGameManager().getChannelUtils().writeNoPrompt(player.getPlayerId(), message); + } + } } diff --git a/src/main/java/com/comandante/creeper/command/commands/DropCommand.java b/src/main/java/com/comandante/creeper/command/commands/DropCommand.java index 7a1d2181fa775f0a8afd3cfcbbcabd4fd6887dc7..9dc9a99dc355ff9065547ba374f1128ca486692f 100644 --- a/src/main/java/com/comandante/creeper/command/commands/DropCommand.java +++ b/src/main/java/com/comandante/creeper/command/commands/DropCommand.java @@ -27,7 +27,7 @@ public class DropCommand extends Command { public void run() { ArrayList<String> originalMessageParts = getOriginalMessageParts(); if (originalMessageParts.size() == 1) { - getGameManager().getChannelUtils().write(getPlayerId(), "No item specified."); + commandWrite("No item specified."); return; } String itemTarget = originalMessageParts.get(1); @@ -42,7 +42,7 @@ public class DropCommand extends Command { getGameManager().getPlayerManager().savePlayerMetadata(playerMetadata); getGameManager().getItemDecayManager().addItem(itemEntity); getGameManager().getEntityManager().addItem(itemEntity); - getGameManager().roomSay(playerCurrentRoom.getRoomId(),getGameManager().getPlayerManager().getPlayer(getPlayerId()).getPlayerName() + " dropped " + itemEntity.getItemName()); + roomSay(playerCurrentRoom.getRoomId(),getGameManager().getPlayerManager().getPlayer(getPlayerId()).getPlayerName() + " dropped " + itemEntity.getItemName()); return; } } diff --git a/src/main/java/com/comandante/creeper/command/commands/GossipCommand.java b/src/main/java/com/comandante/creeper/command/commands/GossipCommand.java index 3c24d17f1423db04d445ab4a46f4e9a722d0a778..b5a99cface1a4d14a0b8fb3d68fd7224738be542 100644 --- a/src/main/java/com/comandante/creeper/command/commands/GossipCommand.java +++ b/src/main/java/com/comandante/creeper/command/commands/GossipCommand.java @@ -4,6 +4,10 @@ package com.comandante.creeper.command.commands; import com.comandante.creeper.managers.GameManager; import com.comandante.creeper.model.Player; import com.google.common.collect.ImmutableList; +import org.fusesource.jansi.Ansi; + +import java.util.Iterator; +import java.util.Map; public class GossipCommand extends Command { @@ -19,7 +23,19 @@ public class GossipCommand extends Command { @Override public void run() { - Player player = getGameManager().getPlayerManager().getPlayer(getPlayerId()); - getGameManager().gossip(player, getOriginalMessage().replaceFirst("^gossip ", "")); + Player sourcePlayer = getGameManager().getPlayerManager().getPlayer(getPlayerId()); + Iterator<Map.Entry<String, Player>> players = getGameManager().getPlayerManager().getPlayers(); + while (players.hasNext()) { + StringBuilder stringBuilder = new StringBuilder(); + Player player = players.next().getValue(); + stringBuilder.append(new Ansi().fg(Ansi.Color.MAGENTA).toString()); + stringBuilder.append("[").append(sourcePlayer.getPlayerName()).append("] ").append(getOriginalMessage()); + stringBuilder.append(new Ansi().reset().toString()); + if (player.getPlayerId().equals(sourcePlayer.getPlayerId())) { + commandWrite(stringBuilder.toString()); + } else { + getGameManager().getChannelUtils().writeNoPrompt(player.getPlayerId(), stringBuilder.toString()); + } + } } } diff --git a/src/main/java/com/comandante/creeper/command/commands/InventoryCommand.java b/src/main/java/com/comandante/creeper/command/commands/InventoryCommand.java index 72538e6273e968961dc7b057611534141e67e32e..d068ec440f8a3fa6a50084ce6f05816dac3e7278 100644 --- a/src/main/java/com/comandante/creeper/command/commands/InventoryCommand.java +++ b/src/main/java/com/comandante/creeper/command/commands/InventoryCommand.java @@ -50,6 +50,6 @@ public class InventoryCommand extends Command { } sb.append("\r\n"); } - getGameManager().getChannelUtils().write(getPlayerId(), sb.toString()); + commandWrite(sb.toString()); } } diff --git a/src/main/java/com/comandante/creeper/command/commands/MovementCommand.java b/src/main/java/com/comandante/creeper/command/commands/MovementCommand.java index de08f65c4d8d3a0740ec4d9bfe989508d7a9c961..cd87fc2bf3c0cd79024f8a7e444b7ed19921b607 100644 --- a/src/main/java/com/comandante/creeper/command/commands/MovementCommand.java +++ b/src/main/java/com/comandante/creeper/command/commands/MovementCommand.java @@ -53,7 +53,7 @@ public class MovementCommand extends Command { } if (northTriggers.contains(command.toLowerCase())) { if (!currentRoom.getNorthId().isPresent()) { - channelUtils.write(player.getPlayerId(), "There's no northern exit."); + commandWrite("There's no northern exit."); return; } Room destinationRoom = gameManager.getRoomManager().getRoom(currentRoom.getNorthId().get()); @@ -61,7 +61,7 @@ public class MovementCommand extends Command { } if (southTriggers.contains(command.toLowerCase())) { if (!currentRoom.getSouthId().isPresent()) { - channelUtils.write(player.getPlayerId(), "There's no southern exit."); + commandWrite("There's no southern exit."); return; } Room destinationRoom = gameManager.getRoomManager().getRoom(currentRoom.getSouthId().get()); @@ -69,7 +69,7 @@ public class MovementCommand extends Command { } if (eastTriggers.contains(command.toLowerCase())) { if (!currentRoom.getEastId().isPresent()) { - channelUtils.write(player.getPlayerId(), "There's no eastern exit."); + commandWrite("There's no eastern exit."); return; } Room destinationRoom = gameManager.getRoomManager().getRoom(currentRoom.getEastId().get()); @@ -77,7 +77,7 @@ public class MovementCommand extends Command { } if (westTriggers.contains(command.toLowerCase())) { if (!currentRoom.getWestId().isPresent()) { - channelUtils.write(player.getPlayerId(), "There's no western exit."); + commandWrite("There's no western exit."); return; } Room destinationRoom = gameManager.getRoomManager().getRoom(currentRoom.getWestId().get()); @@ -85,7 +85,7 @@ public class MovementCommand extends Command { } if (upTriggers.contains(command.toLowerCase())) { if (!currentRoom.getUpId().isPresent()) { - channelUtils.write(player.getPlayerId(), "There's no up exit."); + commandWrite("There's no up exit."); return; } Room destinationRoom = gameManager.getRoomManager().getRoom(currentRoom.getUpId().get()); @@ -93,7 +93,7 @@ public class MovementCommand extends Command { } if (downTriggers.contains(command.toLowerCase())) { if (!currentRoom.getDownId().isPresent()) { - channelUtils.write(player.getPlayerId(), "There's no down exit."); + commandWrite("There's no down exit."); return; } Room destinationRoom = gameManager.getRoomManager().getRoom(currentRoom.getDownId().get()); diff --git a/src/main/java/com/comandante/creeper/command/commands/PickUpCommand.java b/src/main/java/com/comandante/creeper/command/commands/PickUpCommand.java index ef797ea0cc48a1bce7696230c714d203482f78e5..c3a7c153151e87ff89e2ac711489ac4e2fa1a100 100644 --- a/src/main/java/com/comandante/creeper/command/commands/PickUpCommand.java +++ b/src/main/java/com/comandante/creeper/command/commands/PickUpCommand.java @@ -33,7 +33,7 @@ public class PickUpCommand extends Command { Item itemEntity = getGameManager().getEntityManager().getItemEntity(next); if (itemEntity.getShortName().equalsIgnoreCase(originalMessageParts.get(1))) { getGameManager().acquireItem(player, itemEntity.getItemId()); - getGameManager().roomSay(playerCurrentRoom.getRoomId(),getGameManager().getPlayerManager().getPlayer(getPlayerId()).getPlayerName() + " picked up " + itemEntity.getItemName()); + roomSay(playerCurrentRoom.getRoomId(), getGameManager().getPlayerManager().getPlayer(getPlayerId()).getPlayerName() + " picked up " + itemEntity.getItemName()); return; } } diff --git a/src/main/java/com/comandante/creeper/command/commands/SayCommand.java b/src/main/java/com/comandante/creeper/command/commands/SayCommand.java index cc0c30a9c67a7611672d537607bcfe1ccb60d176..219453dd1664aeb012a1f0aa5dce8a90898992f8 100644 --- a/src/main/java/com/comandante/creeper/command/commands/SayCommand.java +++ b/src/main/java/com/comandante/creeper/command/commands/SayCommand.java @@ -2,7 +2,12 @@ package com.comandante.creeper.command.commands; import com.comandante.creeper.managers.GameManager; import com.comandante.creeper.model.Player; +import com.comandante.creeper.model.Room; +import com.google.common.base.Optional; import com.google.common.collect.ImmutableList; +import org.fusesource.jansi.Ansi; + +import java.util.Set; public class SayCommand extends Command { @@ -18,8 +23,24 @@ public class SayCommand extends Command { @Override public void run() { - GameManager gameManager = getGameManager(); - Player player = gameManager.getPlayerManager().getPlayer(getPlayerId()); - getGameManager().say(player, getOriginalMessage().trim().replaceFirst("^say ", "")); + Player sourcePlayer = getGameManager().getPlayerManager().getPlayer(getPlayerId()); + String message = getOriginalMessage().replaceFirst("^say ", ""); + Optional<Room> playerCurrentRoomOpt = getGameManager().getRoomManager().getPlayerCurrentRoom(sourcePlayer); + if (!playerCurrentRoomOpt.isPresent()) { + throw new RuntimeException("playerCurrentRoom is missing!"); + } + Room playerCurrentRoom = playerCurrentRoomOpt.get(); + Set<Player> presentPlayers = getGameManager().getPlayerManager().getPresentPlayers(playerCurrentRoom); + for (Player presentPlayer : presentPlayers) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(new Ansi().fg(Ansi.Color.RED).toString()); + stringBuilder.append("<").append(sourcePlayer.getPlayerName()).append("> ").append(message); + stringBuilder.append(new Ansi().reset().toString()); + if (presentPlayer.getPlayerId().equals(sourcePlayer.getPlayerId())) { + commandWrite(stringBuilder.toString()); + } else { + getGameManager().getChannelUtils().writeNoPrompt(presentPlayer.getPlayerId(), stringBuilder.toString()); + } + } } } diff --git a/src/main/java/com/comandante/creeper/command/commands/TellCommand.java b/src/main/java/com/comandante/creeper/command/commands/TellCommand.java index b40f04d2dc54fd45a8a7783ed0a3064ab2c8bb1e..633cfa2a5b29075a4d562bf1b1b877587d71424c 100644 --- a/src/main/java/com/comandante/creeper/command/commands/TellCommand.java +++ b/src/main/java/com/comandante/creeper/command/commands/TellCommand.java @@ -1,7 +1,13 @@ package com.comandante.creeper.command.commands; import com.comandante.creeper.managers.GameManager; +import com.comandante.creeper.model.Player; import com.google.common.collect.ImmutableList; +import org.apache.commons.lang3.StringUtils; +import org.fusesource.jansi.Ansi; + +import java.util.ArrayList; +import java.util.Arrays; public class TellCommand extends Command { @@ -17,6 +23,32 @@ public class TellCommand extends Command { @Override public void run() { - getGameManager().tell(getGameManager().getPlayerManager().getPlayer(getPlayerId()), getOriginalMessage()); + Player sourcePlayer = getGameManager().getPlayerManager().getPlayer(getPlayerId()); + ArrayList<String> parts = new ArrayList<>(Arrays.asList(getOriginalMessage().split(" "))); + if (parts.size() < 3) { + commandWrite("tell failed, no message to send."); + return; + } + //remove the literal 'tell' + parts.remove(0); + String destinationUsername = parts.get(0); + Player desintationPlayer = getGameManager().getPlayerManager().getPlayerByUsername(destinationUsername); + if (desintationPlayer == null) { + commandWrite("tell failed, unknown user."); + return; + } + if (desintationPlayer.getPlayerId().equals(sourcePlayer.getPlayerId())) { + commandWrite("tell failed, you're talking to yourself."); + return; + } + parts.remove(0); + String tellMessage = StringUtils.join(parts, " "); + StringBuilder stringBuilder = new StringBuilder(); + String destinationPlayercolor = new Ansi().fg(Ansi.Color.YELLOW).toString(); + stringBuilder.append("*").append(sourcePlayer.getPlayerName()).append("* "); + stringBuilder.append(tellMessage); + stringBuilder.append(new Ansi().reset().toString()); + getGameManager().getChannelUtils().writeNoPrompt(desintationPlayer.getPlayerId(), destinationPlayercolor + stringBuilder.toString()); + commandWrite(stringBuilder.toString()); } } diff --git a/src/main/java/com/comandante/creeper/command/commands/UseCommand.java b/src/main/java/com/comandante/creeper/command/commands/UseCommand.java index ce381cd4b1b5fdb9f01e64aab2407f890fef209f..fcd78219db027ece151f3b41e87a5c60b3582f9e 100644 --- a/src/main/java/com/comandante/creeper/command/commands/UseCommand.java +++ b/src/main/java/com/comandante/creeper/command/commands/UseCommand.java @@ -28,7 +28,7 @@ public class UseCommand extends Command { public void run() { ArrayList<String> originalMessageParts = getOriginalMessageParts(); if (originalMessageParts.size() == 1) { - getGameManager().getChannelUtils().write(getPlayerId(), "No item specified."); + commandWrite("No item specified."); return; } String itemTarget = originalMessageParts.get(1); diff --git a/src/main/java/com/comandante/creeper/command/commands/WhoCommand.java b/src/main/java/com/comandante/creeper/command/commands/WhoCommand.java index d44a20aa692c3af119d5881fddbd9733f850e86f..71b87e875e457e630db832834e7d647a1fda90a9 100644 --- a/src/main/java/com/comandante/creeper/command/commands/WhoCommand.java +++ b/src/main/java/com/comandante/creeper/command/commands/WhoCommand.java @@ -1,7 +1,11 @@ package com.comandante.creeper.command.commands; import com.comandante.creeper.managers.GameManager; +import com.comandante.creeper.model.Player; import com.google.common.collect.ImmutableList; +import org.fusesource.jansi.Ansi; + +import java.util.Set; public class WhoCommand extends Command { @@ -17,6 +21,17 @@ public class WhoCommand extends Command { @Override public void run() { - getGameManager().who(getGameManager().getPlayerManager().getPlayer(getPlayerId())); - } + Set<Player> allPlayers = getGameManager().getAllPlayers(); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(new Ansi().fg(Ansi.Color.CYAN).toString()); + stringBuilder.append("----------------------\r\n"); + stringBuilder.append("|--active users------|\r\n"); + stringBuilder.append("----------------------\r\n"); + for (Player allPlayer : allPlayers) { + stringBuilder.append(allPlayer.getPlayerName()); + stringBuilder.append("\r\n"); + } + stringBuilder.append(new Ansi().reset().toString()); + commandWrite(stringBuilder.toString()); + } } diff --git a/src/main/java/com/comandante/creeper/command/commands/WhoamiCommand.java b/src/main/java/com/comandante/creeper/command/commands/WhoamiCommand.java index dbd18f5c9cf9a95749faa665d5fe67e8256c88cd..fc2375392a0f7be733c4ca951fd33e4bb161af0e 100644 --- a/src/main/java/com/comandante/creeper/command/commands/WhoamiCommand.java +++ b/src/main/java/com/comandante/creeper/command/commands/WhoamiCommand.java @@ -19,6 +19,6 @@ public class WhoamiCommand extends Command { @Override public void run() { Player player = getGameManager().getPlayerManager().getPlayer(getPlayerId()); - getGameManager().getChannelUtils().write(getPlayerId(), player.getPlayerName()); + commandWrite(player.getPlayerName()); } } diff --git a/src/main/java/com/comandante/creeper/managers/GameManager.java b/src/main/java/com/comandante/creeper/managers/GameManager.java index 0ee488c838d2c7afbcf74afecc371e5e3778c042..e982939e761307a8367b4bcf5d893a1e11a995af 100644 --- a/src/main/java/com/comandante/creeper/managers/GameManager.java +++ b/src/main/java/com/comandante/creeper/managers/GameManager.java @@ -12,13 +12,10 @@ import com.comandante.creeper.server.CreeperSession; import com.google.common.base.Optional; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Interners; -import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.text.WordUtils; import org.fusesource.jansi.Ansi; import org.jboss.netty.channel.MessageEvent; -import java.util.ArrayList; -import java.util.Arrays; import java.util.Iterator; import java.util.Map; import java.util.Set; @@ -96,56 +93,6 @@ public class GameManager { private static final Integer LOBBY_ID = 1; - public void who(Player player) { - Set<Player> allPlayers = getAllPlayers(); - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(new Ansi().fg(Ansi.Color.CYAN).toString()); - stringBuilder.append("----------------------\r\n"); - stringBuilder.append("|--active users------|\r\n"); - stringBuilder.append("----------------------\r\n"); - for (Player allPlayer : allPlayers) { - stringBuilder.append(allPlayer.getPlayerName()); - } - stringBuilder.append(new Ansi().reset().toString()); - channelUtils.write(player.getPlayerId(), stringBuilder.toString()); - } - - public void tell(Player sourcePlayer, String rawMessage) { - ArrayList<String> parts = new ArrayList<>(Arrays.asList(rawMessage.split(" "))); - if (parts.size() < 3) { - channelUtils.write(sourcePlayer.getPlayerId(), "tell failed, no message to send."); - return; - } - //remove the literal 'tell' - parts.remove(0); - String destinationUsername = parts.get(0); - Player desintationPlayer = getPlayerManager().getPlayerByUsername(destinationUsername); - if (desintationPlayer == null) { - channelUtils.write(sourcePlayer.getPlayerId(), "tell failed, unknown user."); - return; - } - if (desintationPlayer.getPlayerId().equals(sourcePlayer.getPlayerId())) { - channelUtils.write(sourcePlayer.getPlayerId(), "tell failed, you're talking to yourself."); - return; - } - parts.remove(0); - - String tellMessage = StringUtils.join(parts, " "); - privateMessage(sourcePlayer, desintationPlayer, tellMessage); - - } - - private void privateMessage(Player sourcePlayer, Player destinationPlayer, String message) { - StringBuilder stringBuilder = new StringBuilder(); - String sourcePlayerColor = new Ansi().fg(Ansi.Color.WHITE).toString(); - String destinationPlayercolor = new Ansi().fg(Ansi.Color.YELLOW).toString(); - stringBuilder.append("*").append(sourcePlayer.getPlayerName()).append("* "); - stringBuilder.append(message); - stringBuilder.append(new Ansi().reset().toString()); - channelUtils.write(destinationPlayer.getPlayerId(), destinationPlayercolor + stringBuilder.toString()); - channelUtils.write(sourcePlayer.getPlayerId(), sourcePlayerColor + stringBuilder.toString()); - } - public Set<Player> getAllPlayers() { ImmutableSet.Builder<Player> builder = ImmutableSet.builder(); Iterator<Map.Entry<Integer, Room>> rooms = roomManager.getRooms(); @@ -176,10 +123,10 @@ public class GameManager { StringBuilder sb = new StringBuilder(); sb.append(movement.getPlayer().getPlayerName()); sb.append(" ").append(movement.getRoomExitMessage()); - channelUtils.write(next.getPlayerId(), sb.toString()); + channelUtils.writeNoPrompt(next.getPlayerId(), sb.toString()); } for (Player next : playerManager.getPresentPlayers(destinationRoom)) { - channelUtils.write(next.getPlayerId(), movement.getPlayer().getPlayerName() + " arrived."); + channelUtils.writeNoPrompt(next.getPlayerId(), movement.getPlayer().getPlayerName() + " arrived."); } destinationRoom.addPresentPlayer(movement.getPlayer().getPlayerId()); } @@ -196,40 +143,6 @@ public class GameManager { } } - public void say(Player sourcePlayer, String message) { - Optional<Room> playerCurrentRoomOpt = roomManager.getPlayerCurrentRoom(sourcePlayer); - if (!playerCurrentRoomOpt.isPresent()) { - throw new RuntimeException("playerCurrentRoom is missing!"); - } - - Room playerCurrentRoom = playerCurrentRoomOpt.get(); - Set<Player> presentPlayers = playerManager.getPresentPlayers(playerCurrentRoom); - - for (Player presentPlayer : presentPlayers) { - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(new Ansi().fg(Ansi.Color.RED).toString()); - stringBuilder.append("<").append(sourcePlayer.getPlayerName()).append("> ").append(message); - stringBuilder.append(new Ansi().reset().toString()); - channelUtils.write(presentPlayer.getPlayerId(), stringBuilder.toString()); - } - } - - public void gossip(Player sourcePlayer, String message) { - Iterator<Map.Entry<String, Player>> players = playerManager.getPlayers(); - while (players.hasNext()) { - StringBuilder stringBuilder = new StringBuilder(); - Player player = players.next().getValue(); - if (player.getPlayerId().equals(sourcePlayer.getPlayerId())) { - stringBuilder.append(new Ansi().fg(Ansi.Color.WHITE).toString()); - } else { - stringBuilder.append(new Ansi().fg(Ansi.Color.MAGENTA).toString()); - } - stringBuilder.append("[").append(sourcePlayer.getPlayerName()).append("] ").append(message); - stringBuilder.append(new Ansi().reset().toString()); - channelUtils.write(player.getPlayerId(), stringBuilder.toString()); - } - } - private String getExits(Room room, Player player) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("[ Exits: "); @@ -331,14 +244,6 @@ public class GameManager { currentRoomLogic(player); } - public void roomSay(Integer roomId, String message) { - Set<String> presentPlayerIds = roomManager.getRoom(roomId).getPresentPlayerIds(); - for (String playerId : presentPlayerIds) { - Player player = playerManager.getPlayer(playerId); - channelUtils.write(player.getPlayerId(), message); - } - } - public void placeItemInRoom(Integer roomId, String itemId) { roomManager.getRoom(roomId).addPresentItem(entityManager.getItemEntity(itemId).getItemId()); } diff --git a/src/main/java/com/comandante/creeper/npc/Npc.java b/src/main/java/com/comandante/creeper/npc/Npc.java index 32b7517ec76a7a338ee8db56605e4e4b76e1697a..2cd0fae691539afe0caf1af1f3280cf3eb6af20b 100644 --- a/src/main/java/com/comandante/creeper/npc/Npc.java +++ b/src/main/java/com/comandante/creeper/npc/Npc.java @@ -57,6 +57,5 @@ public abstract class Npc extends CreeperEntity { sb.append(new Ansi().fg(Ansi.Color.RED).toString()); sb.append(name).append(": ").append(message); sb.append(new Ansi().reset().toString()); - gameManager.roomSay(roomId, sb.toString()); } } diff --git a/src/main/java/com/comandante/creeper/server/ChannelUtils.java b/src/main/java/com/comandante/creeper/server/ChannelUtils.java index 4c564a926645899c997515ad7fac2e4aa698df14..a72e841421df891e3a23b6a1db7cad92543d0d13 100644 --- a/src/main/java/com/comandante/creeper/server/ChannelUtils.java +++ b/src/main/java/com/comandante/creeper/server/ChannelUtils.java @@ -15,14 +15,24 @@ public class ChannelUtils { this.roomManager = roomManager; } + public void writeNoPrompt(String playerId, String message) { + write(playerId, message, false); + } + public void write(String playerId, String message) { + write(playerId, message, true); + } + + public void write(String playerId, String message, boolean isPrompt) { Player player = playerManager.getPlayer(playerId); Room playerCurrentRoom = roomManager.getPlayerCurrentRoom(player).get(); StringBuilder sb = new StringBuilder(); sb.append("\r\n"); sb.append(sanitze(message)); sb.append(("\r\n")); - sb.append(playerManager.getPrompt(playerId, playerCurrentRoom.getRoomId())); + if (isPrompt) { + sb.append(playerManager.getPrompt(playerId, playerCurrentRoom.getRoomId())); + } player.getChannel().write(sb.toString()); }