From 8742a739f78f7bf541477bf864c28dd389205bfe Mon Sep 17 00:00:00 2001 From: Chris Kearney <chris@kearneymail.com> Date: Wed, 3 Aug 2016 22:28:43 -0700 Subject: [PATCH] random blazecraft room descriptions bro --- .../creeper/bot/BotCommandFactory.java | 1 + .../RandomRoomDescriptionCommand.java | 33 +++++++++++++++++++ .../command/admin/TeleportCommand.java | 2 +- .../creeper/entity/EntityManager.java | 2 +- .../creeper/managers/GameManager.java | 4 +-- .../comandante/creeper/world/MapsManager.java | 2 +- .../comandante/creeper/world/RoomManager.java | 18 ++++++---- 7 files changed, 50 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/comandante/creeper/bot/commands/RandomRoomDescriptionCommand.java diff --git a/src/main/java/com/comandante/creeper/bot/BotCommandFactory.java b/src/main/java/com/comandante/creeper/bot/BotCommandFactory.java index 4d7cc209..ef50a586 100644 --- a/src/main/java/com/comandante/creeper/bot/BotCommandFactory.java +++ b/src/main/java/com/comandante/creeper/bot/BotCommandFactory.java @@ -16,6 +16,7 @@ public class BotCommandFactory { addCommand(new DictionaryBotCommand(botCommandManager)); addCommand(new ImdbBotCommand(botCommandManager)); addCommand(new ForecastCommand(botCommandManager)); + addCommand(new RandomRoomDescriptionCommand(botCommandManager)); } public BotCommand getCommand(String originalFullCmd) { diff --git a/src/main/java/com/comandante/creeper/bot/commands/RandomRoomDescriptionCommand.java b/src/main/java/com/comandante/creeper/bot/commands/RandomRoomDescriptionCommand.java new file mode 100644 index 00000000..0524fd32 --- /dev/null +++ b/src/main/java/com/comandante/creeper/bot/commands/RandomRoomDescriptionCommand.java @@ -0,0 +1,33 @@ +package com.comandante.creeper.bot.commands; + + +import com.comandante.creeper.bot.BotCommandManager; +import com.comandante.creeper.world.Room; +import com.google.common.collect.Sets; + +import java.util.*; + +public class RandomRoomDescriptionCommand extends BotCommand { + + static Set<String> triggers = Sets.newHashSet("blazecraft"); + static String helpUsage = "blazecraft"; + static String helpDescription = "A random room description, courtesy of BLAZECRAFT"; + private final Random random = new Random(); + + public RandomRoomDescriptionCommand(BotCommandManager botCommandManager) { + super(botCommandManager, triggers, helpUsage, helpDescription); + } + + @Override + public List<String> process() { + Map<Integer, Room> getrooms = botCommandManager.getGameManager().getRoomManager().getrooms(); + int size = getrooms.size(); + int randomRoomNumber = randInt(1, size); + return Collections.singletonList(getrooms.get(randomRoomNumber).getRoomDescription()); + } + + private int randInt(int min, int max) { + int randomNum = random.nextInt((max - min) + 1) + min; + return randomNum; + } +} diff --git a/src/main/java/com/comandante/creeper/command/admin/TeleportCommand.java b/src/main/java/com/comandante/creeper/command/admin/TeleportCommand.java index 14d64d9c..75be41b7 100644 --- a/src/main/java/com/comandante/creeper/command/admin/TeleportCommand.java +++ b/src/main/java/com/comandante/creeper/command/admin/TeleportCommand.java @@ -66,7 +66,7 @@ public class TeleportCommand extends Command { return; } } - Iterator<Map.Entry<Integer, Room>> rooms = roomManager.getRooms(); + Iterator<Map.Entry<Integer, Room>> rooms = roomManager.getRoomsIterator(); while (rooms.hasNext()) { Map.Entry<Integer, Room> next = rooms.next(); if (Integer.toString(next.getKey()).equals(desiredId)) { diff --git a/src/main/java/com/comandante/creeper/entity/EntityManager.java b/src/main/java/com/comandante/creeper/entity/EntityManager.java index 5c4cccdd..2704cd13 100644 --- a/src/main/java/com/comandante/creeper/entity/EntityManager.java +++ b/src/main/java/com/comandante/creeper/entity/EntityManager.java @@ -148,7 +148,7 @@ public class EntityManager { while (true) { try { final com.codahale.metrics.Timer.Context context = ticktime.time(); - Iterator<Map.Entry<Integer, Room>> rooms = roomManager.getRooms(); + Iterator<Map.Entry<Integer, Room>> rooms = roomManager.getRoomsIterator(); while (rooms.hasNext()) { Map.Entry<Integer, Room> next = rooms.next(); mainTickExecutorService.submit(next.getValue()); diff --git a/src/main/java/com/comandante/creeper/managers/GameManager.java b/src/main/java/com/comandante/creeper/managers/GameManager.java index ce01d8f3..24b6af54 100755 --- a/src/main/java/com/comandante/creeper/managers/GameManager.java +++ b/src/main/java/com/comandante/creeper/managers/GameManager.java @@ -182,7 +182,7 @@ public class GameManager { public Set<Player> getAllPlayers() { ImmutableSet.Builder<Player> builder = ImmutableSet.builder(); - Iterator<Map.Entry<Integer, Room>> rooms = roomManager.getRooms(); + Iterator<Map.Entry<Integer, Room>> rooms = roomManager.getRoomsIterator(); while (rooms.hasNext()) { Map.Entry<Integer, Room> next = rooms.next(); Room room = next.getValue(); @@ -631,7 +631,7 @@ public class GameManager { public synchronized void removeAllNpcs() { for (Npc npc : entityManager.getNpcs().values()) { - Iterator<Map.Entry<Integer, Room>> rooms = roomManager.getRooms(); + Iterator<Map.Entry<Integer, Room>> rooms = roomManager.getRoomsIterator(); while (rooms.hasNext()) { Map.Entry<Integer, Room> next = rooms.next(); next.getValue().removePresentNpc(npc.getEntityId()); diff --git a/src/main/java/com/comandante/creeper/world/MapsManager.java b/src/main/java/com/comandante/creeper/world/MapsManager.java index 5a4e9407..3b381de5 100644 --- a/src/main/java/com/comandante/creeper/world/MapsManager.java +++ b/src/main/java/com/comandante/creeper/world/MapsManager.java @@ -36,7 +36,7 @@ public class MapsManager { Timer.Context time = ticktime.time(); int maxRows = creeperConfiguration.defaultMapSize; int maxColumns = creeperConfiguration.defaultMapSize; - Iterator<Map.Entry<Integer, Room>> rooms = roomManager.getRooms(); + Iterator<Map.Entry<Integer, Room>> rooms = roomManager.getRoomsIterator(); while (rooms.hasNext()) { Map.Entry<Integer, Room> next = rooms.next(); Integer roomId = next.getValue().getRoomId(); diff --git a/src/main/java/com/comandante/creeper/world/RoomManager.java b/src/main/java/com/comandante/creeper/world/RoomManager.java index 7c5c6806..c8fb6751 100644 --- a/src/main/java/com/comandante/creeper/world/RoomManager.java +++ b/src/main/java/com/comandante/creeper/world/RoomManager.java @@ -47,7 +47,7 @@ public class RoomManager { public Optional<List<Integer>> getRoomsForTag(String tag) { List<Integer> matchedRooms = Lists.newArrayList(); - Iterator<Map.Entry<Integer, Room>> rooms = getRooms(); + Iterator<Map.Entry<Integer, Room>> rooms = getRoomsIterator(); while (rooms.hasNext()) { Map.Entry<Integer, Room> next = rooms.next(); if (next.getValue().getRoomTags().contains(tag)) { @@ -74,13 +74,17 @@ public class RoomManager { return getRoom(roomId).getRoomTags(); } - public Iterator<java.util.Map.Entry<Integer, Room>> getRooms() { + public Iterator<java.util.Map.Entry<Integer, Room>> getRoomsIterator() { return rooms.entrySet().iterator(); } + public Map<Integer, Room> getrooms() { + return rooms; + } + public Set<Room> getRoomsByFloorId(Integer floorId) { Set<Room> rooms = Sets.newHashSet(); - Iterator<Map.Entry<Integer, Room>> rooms1 = getRooms(); + Iterator<Map.Entry<Integer, Room>> rooms1 = getRoomsIterator(); while (rooms1.hasNext()) { Map.Entry<Integer, Room> next = rooms1.next(); if (next.getValue().getFloorId().equals(floorId)) { @@ -91,7 +95,7 @@ public class RoomManager { } public Optional<Room> getPlayerCurrentRoom(String playerId) { - Iterator<Map.Entry<Integer, Room>> rooms = getRooms(); + Iterator<Map.Entry<Integer, Room>> rooms = getRoomsIterator(); while (rooms.hasNext()) { Map.Entry<Integer, Room> next = rooms.next(); Room room = next.getValue(); @@ -118,7 +122,7 @@ public class RoomManager { public Set<Room> getRoomsByArea(Area area) { Set<Room> rooms = Sets.newHashSet(); - Iterator<Map.Entry<Integer, Room>> rooms1 = getRooms(); + Iterator<Map.Entry<Integer, Room>> rooms1 = getRoomsIterator(); while (rooms1.hasNext()) { Map.Entry<Integer, Room> next = rooms1.next(); if (next.getValue().getAreas().contains(area)) { @@ -129,7 +133,7 @@ public class RoomManager { } public boolean doesRoomIdExist(Integer roomId) { - Iterator<Map.Entry<Integer, Room>> rooms1 = getRooms(); + Iterator<Map.Entry<Integer, Room>> rooms1 = getRoomsIterator(); Set<Integer> roomIds = Sets.newHashSet(); while (rooms1.hasNext()) { Map.Entry<Integer, Room> next = rooms1.next(); @@ -141,7 +145,7 @@ public class RoomManager { } public Room getRoomByItemId(String itemId) { - Iterator<Map.Entry<Integer, Room>> rooms = getRooms(); + Iterator<Map.Entry<Integer, Room>> rooms = getRoomsIterator(); while (rooms.hasNext()) { Map.Entry<Integer, Room> next = rooms.next(); if (next.getValue().getItemIds().contains(itemId)) { -- GitLab