Best MockBukkit code snippet using be.seeseemelk.mockbukkit.ServerMock.registerSerializables
Source:ServerMock.java
...128 private GameMode defaultGameMode = GameMode.SURVIVAL;129 private ConsoleCommandSender consoleSender;130 public ServerMock()131 {132 ServerMock.registerSerializables();133 // Register default Minecraft Potion Effect Types134 createPotionEffectTypes();135 TagsMock.loadDefaultTags(this, true);136 EnchantmentsMock.registerDefaultEnchantments();137 try138 {139 InputStream stream = ClassLoader.getSystemResourceAsStream("logger.properties");140 LogManager.getLogManager().readConfiguration(stream);141 }142 catch (IOException e)143 {144 logger.warning("Could not load file logger.properties");145 }146 logger.setLevel(Level.ALL);147 }148 /**149 * Checks if we are on the main thread. The main thread is the thread used to create this instance of the mock150 * server.151 *152 * @return {@code true} if we are on the main thread, {@code false} if we are running on a different thread.153 */154 public boolean isOnMainThread()155 {156 return mainThread.equals(Thread.currentThread());157 }158 /**159 * Checks if we are running a method on the main thread. If not, a `ThreadAccessException` is thrown.160 */161 public void assertMainThread()162 {163 if (!isOnMainThread())164 {165 throw new ThreadAccessException("The Bukkit API was accessed from asynchronous code.");166 }167 }168 /**169 * Registers an entity so that the server can track it more easily. Should only be used internally.170 *171 * @param entity The entity to register172 */173 public void registerEntity(@NotNull EntityMock entity)174 {175 assertMainThread();176 entities.add(entity);177 }178 /**179 * Returns a set of entities that exist on the server instance.180 *181 * @return A set of entities that exist on this server instance.182 */183 @NotNull184 public Set<EntityMock> getEntities()185 {186 return Collections.unmodifiableSet(entities);187 }188 /**189 * Add a specific player to the set.190 *191 * @param player The player to add.192 */193 public void addPlayer(PlayerMock player)194 {195 assertMainThread();196 playerList.addPlayer(player);197 PlayerJoinEvent playerJoinEvent = new PlayerJoinEvent(player,198 String.format(JOIN_MESSAGE, player.getDisplayName()));199 Bukkit.getPluginManager().callEvent(playerJoinEvent);200 player.setLastPlayed(getCurrentServerTime());201 registerEntity(player);202 }203 /**204 * Creates a random player and adds it.205 *206 * @return The player that was added.207 */208 public PlayerMock addPlayer()209 {210 assertMainThread();211 PlayerMock player = playerFactory.createRandomPlayer();212 addPlayer(player);213 return player;214 }215 /**216 * Creates a player with a given name and adds it.217 *218 * @param name The name to give to the player.219 * @return The added player.220 */221 public PlayerMock addPlayer(String name)222 {223 assertMainThread();224 PlayerMock player = new PlayerMock(this, name);225 addPlayer(player);226 return player;227 }228 /**229 * Set the numbers of mock players that are on this server. Note that it will remove all players that are already on230 * this server.231 *232 * @param num The number of players that are on this server.233 */234 public void setPlayers(int num)235 {236 assertMainThread();237 playerList.clearOnlinePlayers();238 for (int i = 0; i < num; i++)239 addPlayer();240 }241 /**242 * Set the numbers of mock offline players that are on this server. Note that even players that are online are also243 * considered offline player because an {@link OfflinePlayer} really just refers to anyone that has at some point in244 * time played on the server.245 *246 * @param num The number of players that are on this server.247 */248 public void setOfflinePlayers(int num)249 {250 assertMainThread();251 playerList.clearOfflinePlayers();252 for (PlayerMock player : getOnlinePlayers())253 {254 playerList.addPlayer(player);255 }256 for (int i = 0; i < num; i++)257 {258 OfflinePlayer player = playerFactory.createRandomOfflinePlayer();259 playerList.addOfflinePlayer(player);260 }261 }262 /**263 * Get a specific mock player. A player's number will never change between invocations of {@link #setPlayers(int)}.264 *265 * @param num The number of the player to retrieve.266 * @return The chosen player.267 */268 public PlayerMock getPlayer(int num)269 {270 return playerList.getPlayer(num);271 }272 /**273 * Adds a very simple super flat world with a given name.274 *275 * @param name The name to give to the world.276 * @return The {@link WorldMock} that has been created.277 */278 public WorldMock addSimpleWorld(String name)279 {280 assertMainThread();281 WorldMock world = new WorldMock();282 world.setName(name);283 worlds.add(world);284 return world;285 }286 /**287 * Adds the given mocked world to this server.288 *289 * @param world The world to add.290 */291 public void addWorld(WorldMock world)292 {293 assertMainThread();294 worlds.add(world);295 }296 /**297 * Executes a command as the console.298 *299 * @param command The command to execute.300 * @param args The arguments to pass to the commands.301 * @return The value returned by {@link Command#execute}.302 */303 public CommandResult executeConsole(Command command, String... args)304 {305 assertMainThread();306 return execute(command, getConsoleSender(), args);307 }308 /**309 * Executes a command as the console.310 *311 * @param command The command to execute.312 * @param args The arguments to pass to the commands.313 * @return The value returned by {@link Command#execute}.314 */315 public CommandResult executeConsole(String command, String... args)316 {317 assertMainThread();318 return executeConsole(getCommandMap().getCommand(command), args);319 }320 /**321 * Executes a command as a player.322 *323 * @param command The command to execute.324 * @param args The arguments to pass to the commands.325 * @return The value returned by {@link Command#execute}.326 */327 public CommandResult executePlayer(Command command, String... args)328 {329 assertMainThread();330 if (playerList.isSomeoneOnline())331 return execute(command, getPlayer(0), args);332 else333 throw new IllegalStateException("Need at least one player to run the command");334 }335 /**336 * Executes a command as a player.337 *338 * @param command The command to execute.339 * @param args The arguments to pass to the commands.340 * @return The value returned by {@link Command#execute}.341 */342 public CommandResult executePlayer(String command, String... args)343 {344 assertMainThread();345 return executePlayer(getCommandMap().getCommand(command), args);346 }347 /**348 * Executes a command.349 *350 * @param command The command to execute.351 * @param sender The person that executed the command.352 * @param args The arguments to pass to the commands.353 * @return The value returned by {@link Command#execute}.354 */355 public CommandResult execute(Command command, CommandSender sender, String... args)356 {357 assertMainThread();358 if (!(sender instanceof MessageTarget))359 {360 throw new IllegalArgumentException("Only a MessageTarget can be the sender of the command");361 }362 boolean status = command.execute(sender, command.getName(), args);363 return new CommandResult(status, (MessageTarget) sender);364 }365 /**366 * Executes a command.367 *368 * @param command The command to execute.369 * @param sender The person that executed the command.370 * @param args The arguments to pass to the commands.371 * @return The value returned by {@link Command#execute}.372 */373 public CommandResult execute(String command, CommandSender sender, String... args)374 {375 assertMainThread();376 return execute(getCommandMap().getCommand(command), sender, args);377 }378 @Override379 public String getName()380 {381 return "ServerMock";382 }383 @Override384 public String getVersion()385 {386 return String.format("MockBukkit (MC: %s)", BUKKIT_VERSION);387 }388 @Override389 public String getBukkitVersion()390 {391 return BUKKIT_VERSION;392 }393 @Override394 public Collection<? extends PlayerMock> getOnlinePlayers()395 {396 return playerList.getOnlinePlayers();397 }398 @Override399 public OfflinePlayer[] getOfflinePlayers()400 {401 return playerList.getOfflinePlayers();402 }403 @Override404 public Player getPlayer(String name)405 {406 return playerList.getPlayer(name);407 }408 @Override409 public Player getPlayerExact(String name)410 {411 return playerList.getPlayerExact(name);412 }413 @Override414 public List<Player> matchPlayer(String name)415 {416 return playerList.matchPlayer(name);417 }418 @Override419 public Player getPlayer(UUID id)420 {421 return playerList.getPlayer(id);422 }423 @Override424 public PluginManagerMock getPluginManager()425 {426 return pluginManager;427 }428 @NotNull429 public MockCommandMap getCommandMap()430 {431 return commandMap;432 }433 @Override434 public PluginCommand getPluginCommand(String name)435 {436 assertMainThread();437 Command command = getCommandMap().getCommand(name);438 return command instanceof PluginCommand ? (PluginCommand) command : null;439 }440 @Override441 public Logger getLogger()442 {443 return logger;444 }445 @Override446 public ConsoleCommandSender getConsoleSender()447 {448 if (consoleSender == null)449 {450 consoleSender = new ConsoleCommandSenderMock();451 }452 return consoleSender;453 }454 @NotNull455 public InventoryMock createInventory(InventoryHolder owner, InventoryType type, String title, int size)456 {457 assertMainThread();458 if (!type.isCreatable())459 {460 throw new IllegalArgumentException("Inventory Type is not creatable!");461 }462 switch (type)463 {464 case CHEST:465 return new ChestInventoryMock(owner, size > 0 ? size : 9 * 3);466 case DISPENSER:467 return new DispenserInventoryMock(owner);468 case DROPPER:469 return new DropperInventoryMock(owner);470 case PLAYER:471 if (owner instanceof HumanEntity)472 {473 return new PlayerInventoryMock((HumanEntity) owner);474 }475 else476 {477 throw new IllegalArgumentException("Cannot create a Player Inventory for: " + owner);478 }479 case ENDER_CHEST:480 return new EnderChestInventoryMock(owner);481 case HOPPER:482 return new HopperInventoryMock(owner);483 case SHULKER_BOX:484 return new ShulkerBoxInventoryMock(owner);485 case BARREL:486 return new BarrelInventoryMock(owner);487 case LECTERN:488 return new LecternInventoryMock(owner);489 case GRINDSTONE:490 // TODO: This Inventory Type needs to be implemented491 case STONECUTTER:492 // TODO: This Inventory Type needs to be implemented493 case CARTOGRAPHY:494 // TODO: This Inventory Type needs to be implemented495 case SMOKER:496 // TODO: This Inventory Type needs to be implemented497 case LOOM:498 // TODO: This Inventory Type needs to be implemented499 case BLAST_FURNACE:500 // TODO: This Inventory Type needs to be implemented501 case ANVIL:502 // TODO: This Inventory Type needs to be implemented503 case SMITHING:504 // TODO: This Inventory Type needs to be implemented505 case BEACON:506 // TODO: This Inventory Type needs to be implemented507 case FURNACE:508 // TODO: This Inventory Type needs to be implemented509 case WORKBENCH:510 // TODO: This Inventory Type needs to be implemented511 case ENCHANTING:512 // TODO: This Inventory Type needs to be implemented513 case BREWING:514 // TODO: This Inventory Type needs to be implemented515 case CRAFTING:516 // TODO: This Inventory Type needs to be implemented517 case CREATIVE:518 // TODO: This Inventory Type needs to be implemented519 case MERCHANT:520 // TODO: This Inventory Type needs to be implemented521 default:522 throw new UnimplementedOperationException("Inventory type not yet supported");523 }524 }525 @Override526 public InventoryMock createInventory(InventoryHolder owner, InventoryType type)527 {528 return createInventory(owner, type, "Inventory");529 }530 @Override531 public InventoryMock createInventory(InventoryHolder owner, InventoryType type, String title)532 {533 return createInventory(owner, type, title, -1);534 }535 @Override536 public InventoryMock createInventory(InventoryHolder owner, int size)537 {538 return createInventory(owner, size, "Inventory");539 }540 @Override541 public InventoryMock createInventory(InventoryHolder owner, int size, String title)542 {543 return createInventory(owner, InventoryType.CHEST, title, size);544 }545 @Override546 public ItemFactory getItemFactory()547 {548 return factory;549 }550 @Override551 public List<World> getWorlds()552 {553 return new ArrayList<>(worlds);554 }555 @Override556 public World getWorld(String name)557 {558 return worlds.stream().filter(world -> world.getName().equals(name)).findAny().orElse(null);559 }560 @Override561 public World getWorld(UUID uid)562 {563 return worlds.stream().filter(world -> world.getUID().equals(uid)).findAny().orElse(null);564 }565 @Override566 public BukkitSchedulerMock getScheduler()567 {568 return scheduler;569 }570 @Override571 public int getMaxPlayers()572 {573 return playerList.getMaxPlayers();574 }575 @Override576 public Set<String> getIPBans()577 {578 return this.playerList.getIPBans().getBanEntries().stream().map(BanEntry::getTarget)579 .collect(Collectors.toSet());580 }581 @Override582 public void banIP(String address)583 {584 assertMainThread();585 this.playerList.getIPBans().addBan(address, null, null, null);586 }587 @Override588 public void unbanIP(String address)589 {590 assertMainThread();591 this.playerList.getIPBans().pardon(address);592 }593 @Override594 public BanList getBanList(Type type)595 {596 switch (type)597 {598 case IP:599 return playerList.getIPBans();600 case NAME:601 default:602 return playerList.getProfileBans();603 }604 }605 @Override606 public Set<OfflinePlayer> getOperators()607 {608 return playerList.getOperators();609 }610 @Override611 public GameMode getDefaultGameMode()612 {613 return this.defaultGameMode;614 }615 @Override616 public void setDefaultGameMode(GameMode mode)617 {618 assertMainThread();619 this.defaultGameMode = mode;620 }621 @Override622 public int broadcastMessage(String message)623 {624 Collection<? extends PlayerMock> players = getOnlinePlayers();625 for (Player player : players)626 {627 player.sendMessage(message);628 }629 return players.size();630 }631 @Override632 public int broadcast(String message, String permission)633 {634 Collection<? extends PlayerMock> players = getOnlinePlayers();635 int count = 0;636 for (Player player : players)637 {638 if (player.hasPermission(permission))639 {640 player.sendMessage(message);641 count++;642 }643 }644 return count;645 }646 /**647 * Registers any classes that are serializable with the ConfigurationSerializable system of Bukkit.648 */649 public static void registerSerializables()650 {651 ConfigurationSerialization.registerClass(ItemMetaMock.class);652 }653 @Override654 public boolean addRecipe(Recipe recipe)655 {656 assertMainThread();657 recipes.add(recipe);658 return true;659 }660 @Override661 public List<Recipe> getRecipesFor(@NotNull ItemStack item)662 {663 assertMainThread();...
registerSerializables
Using AI Code Generation
1ServerMock server = MockBukkit.mock();2server.registerSerializables();3ItemStackMock item = new ItemStackMock(Material.DIAMOND);4item.registerSerializable(new CustomSerializable());5ServerMock server = MockBukkit.mock();6server.registerSerializable(new CustomSerializable());7ItemStackMock item = new ItemStackMock(Material.DIAMOND);8item.registerSerializable(new CustomSerializable());9ServerMock server = MockBukkit.mock();10server.registerSerializable(new CustomSerializable());11ItemStackMock item = new ItemStackMock(Material.DIAMOND);12item.registerSerializable(new CustomSerializable());13ServerMock server = MockBukkit.mock();14server.registerSerializable(new CustomSerializable());15ItemStackMock item = new ItemStackMock(Material.DIAMOND);16item.registerSerializable(new CustomSerializable());17ServerMock server = MockBukkit.mock();18server.registerSerializable(new CustomSerializable());19ItemStackMock item = new ItemStackMock(Material.DIAMOND);20item.registerSerializable(new CustomSerializable());21ServerMock server = MockBukkit.mock();22server.registerSerializable(new CustomSerializable());23ItemStackMock item = new ItemStackMock(Material.DIAMOND);24item.registerSerializable(new CustomSerializable());25ServerMock server = MockBukkit.mock();
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!