@Override public void run() { List<UUID> onlineIds = new ArrayList<>(); for (Player player : Sponge.getServer().getOnlinePlayers()) { onlineIds.add(player.getUniqueId()); } this.onlineIds = new CopyOnWriteArraySet<>(onlineIds); }
@Override protected Object getValue(String choice) throws IllegalArgumentException { Optional<Player> ret = Sponge.getGame().getServer().getPlayer(choice); if (!ret.isPresent()) { throw new IllegalArgumentException("Input value " + choice + " was not a player"); } return ret.get(); }
/** * Gets this spawn position as a {@link Location} object, if the world is * available. * * @return The position object, if available. */ public Optional<Location<World>> asLocation() { Optional<World> world = Sponge.getServer().getWorld(getWorldUniqueId()); if (!world.isPresent()) { return Optional.empty(); } return Optional.of(new Location<>(world.get(), getPosition())); }
@Override protected Iterable<String> getChoices(CommandSource source) { Set<String> worldEntities = Sponge.getServer().getWorlds().stream().flatMap(x -> x.getEntities().stream()) .filter(this::checkEntity) .map(x -> x.getUniqueId().toString()) .collect(Collectors.toSet()); Collection<Player> players = Sponge.getServer().getOnlinePlayers(); if (!players.isEmpty() && checkEntity(players.iterator().next())) { final Set<String> setToReturn = new HashSet<>(worldEntities); // to ensure mutability players.forEach(x -> setToReturn.add(x.getName())); return setToReturn; } return worldEntities; }
@Override protected Object getValue(String choice) throws IllegalArgumentException { UUID uuid; try { uuid = UUID.fromString(choice); } catch (IllegalArgumentException ignored) { // Player could be a name return Sponge.getServer().getPlayer(choice) .orElseThrow(() -> new IllegalArgumentException("Input value " + choice + " does not represent a valid entity")); } boolean found = false; for (World world : Sponge.getServer().getWorlds()) { Optional<Entity> ret = world.getEntity(uuid); if (ret.isPresent()) { Entity entity = ret.get(); if (this.checkEntity(entity)) { return entity; } found = true; } } if (found) { throw new IllegalArgumentException("Input value " + choice + " was not an entity of the required type!"); } throw new IllegalArgumentException("Input value " + choice + " was not an entity"); }
private CommandElement getPlayerElement() throws Exception { // Create two fake players Player player1 = Mockito.mock(Player.class); Mockito.when(player1.getName()).thenReturn("test1"); Player player2 = Mockito.mock(Player.class); Mockito.when(player2.getName()).thenReturn("test2"); Server mock = Mockito.mock(Server.class); Mockito.when(mock.getOnlinePlayers()).thenReturn(Lists.newArrayList(player1, player2)); Mockito.when(mock.getPlayer(Mockito.anyString())).thenReturn(Optional.empty()); Mockito.when(mock.getPlayer("test1")).thenReturn(Optional.of(player1)); Mockito.when(mock.getPlayer("test2")).thenReturn(Optional.of(player2)); Game gameMock = Mockito.mock(Game.class); Mockito.when(gameMock.getServer()).thenReturn(mock); Field field = Sponge.class.getDeclaredField("game"); field.setAccessible(true); field.set(null, gameMock); // Create element return GenericArguments.player(Text.of("player")); }
/** * Gets the server specific data. * * @return The server specific data. */ private JsonObject getServerData() { // Minecraft specific data int playerAmount = Sponge.getServer().getOnlinePlayers().size(); playerAmount = playerAmount > 200 ? 200 : playerAmount; int onlineMode = Sponge.getServer().getOnlineMode() ? 1 : 0; String minecraftVersion = Sponge.getGame().getPlatform().getMinecraftVersion().getName(); // OS/Java specific data String javaVersion = System.getProperty("java.version"); String osName = System.getProperty("os.name"); String osArch = System.getProperty("os.arch"); String osVersion = System.getProperty("os.version"); int coreCount = Runtime.getRuntime().availableProcessors(); JsonObject data = new JsonObject(); data.addProperty("serverUUID", serverUUID); data.addProperty("playerAmount", playerAmount); data.addProperty("onlineMode", onlineMode); data.addProperty("minecraftVersion", minecraftVersion); data.addProperty("javaVersion", javaVersion); data.addProperty("osName", osName); data.addProperty("osArch", osArch); data.addProperty("osVersion", osVersion); data.addProperty("coreCount", coreCount); return data; }
public ServerInfo() { Server server = Sponge.getServer(); Platform platform = Sponge.getPlatform(); this.motd = server.getMotd().toBuilder().build(); this.players = server.getOnlinePlayers().size(); this.maxPlayers = server.getMaxPlayers(); if (server.getBoundAddress().isPresent()) { InetSocketAddress addr = server.getBoundAddress().get(); this.address = addr.getHostName() + (addr.getPort() == 25565 ? "" : ":" + addr.getPort()); } this.onlineMode = server.getOnlineMode(); this.resourcePack = server.getDefaultResourcePack().map(ResourcePack::getName).orElse(null); this.hasWhitelist = server.hasWhitelist(); this.uptimeTicks = server.getRunningTimeTicks(); this.tps = server.getTicksPerSecond(); this.minecraftVersion = platform.getMinecraftVersion().getName(); this.game = new CachedPluginContainer(platform.getContainer(Platform.Component.GAME)); this.api = new CachedPluginContainer(platform.getContainer(Platform.Component.API)); this.implementation = new CachedPluginContainer(platform.getContainer(Platform.Component.IMPLEMENTATION)); } }
public SpongeServerProperties(Game game) { super( game.getServer().getMotd().toPlain(), "Sponge", game.getServer().getBoundAddress().orElseGet(() -> new InetSocketAddress(25565)).getPort(), game.getPlatform().getMinecraftVersion().getName(), game.getPlatform().getMinecraftVersion().getName(), () -> game.getServer().getBoundAddress() .orElseGet(() -> new InetSocketAddress(25565)) .getAddress().getHostAddress(), game.getServer().getMaxPlayers(), () -> game.getServer().getOnlinePlayers().size() ); } }
private void onAccLoaded(UUID src, Account account) { CommandSource receiver = Sponge.getServer().getConsole(); if (src != null) { Optional<Player> player = Sponge.getServer().getPlayer(src); if (!player.isPresent()) { return; } receiver = player.get(); } if (account == null) { receiver.sendMessage(settings.getText().getAccountNotFound()); } else { String username = account.getUsername().orElseGet(() -> account.getId().toString()); String timeFormat = timeFormatter.withLocale(receiver.getLocale()).format(account.getLastLogin()); Text message = settings.getText().getLastOnline(username, timeFormat); receiver.sendMessage(message); } }
@Override public List<? extends com.sk89q.worldedit.world.World> getWorlds() { Collection<org.spongepowered.api.world.World> worlds = Sponge.getServer().getWorlds(); List<com.sk89q.worldedit.world.World> ret = new ArrayList<>(worlds.size()); for (org.spongepowered.api.world.World world : worlds) { ret.add(SpongeWorldEdit.inst().getAdapter().getWorld(world)); } return ret; }
private void broadcast(Text msg) { SparkSpongePlugin.this.game.getServer().getConsole().sendMessage(msg); for (Player player : SparkSpongePlugin.this.game.getServer().getOnlinePlayers()) { if (player.hasPermission("spark")) { player.sendMessage(msg); } } }
@Override public Optional<String> getAliasForName(String input) { try { UUID.fromString(input); } catch (IllegalArgumentException ex) { Optional<Player> player = plugin.getGame().getServer().getPlayer(input); if (player.isPresent()) { return Optional.of(player.get().getUniqueId().toString()); } else { GameProfileCache res = plugin.getGame().getServer().getGameProfileManager().getCache(); for (GameProfile profile : res.match(input)) { if (profile.getName().isPresent() && profile.getName().get().equalsIgnoreCase(input)) { return Optional.of(profile.getUniqueId().toString()); } } } } return Optional.empty(); }
private Optional<Player> getPlayer(QueuedPlayer player) { if (player.getUuid() != null && (plugin.getConfiguration().isBungeeCord() || Sponge.getServer().getOnlineMode())) { return Sponge.getServer().getPlayer(UuidUtil.mojangUuidToJavaUuid(player.getUuid())); } return Sponge.getServer().getPlayer(player.getName()); }
private void appendServerInformation() { appendHeader("Server Information"); LogListBlock log = new LogListBlock(); Runtime runtime = Runtime.getRuntime(); log.put("Java", "%s %s (%s)", System.getProperty("java.vendor"), System.getProperty("java.version"), System.getProperty("java.vendor.url")); log.put("Operating system", "%s %s (%s)", System.getProperty("os.name"), System.getProperty("os.version"), System.getProperty("os.arch")); log.put("Available processors", runtime.availableProcessors()); log.put("Free memory", runtime.freeMemory() / 1024 / 1024 + " MB"); log.put("Max memory", runtime.maxMemory() / 1024 / 1024 + " MB"); log.put("Total memory", runtime.totalMemory() / 1024 / 1024 + " MB"); //log.put("Server ID", Sponge.getServer().getServerId()); //log.put("Server name", Sponge.getServerName()); log.put("Platform", Sponge.getPlatform().getType().name()); log.put("Game version", Sponge.getPlatform().getMinecraftVersion().getName()); log.put("Player count", "%d/%d", Sponge.getServer().getOnlinePlayers().size(), Sponge.getServer().getMaxPlayers()); append(log); appendln(); }
/** * Creates a {@link GameProfile} from the provided ID and name. * * @param uniqueId The unique id * @param name The name * @return The created profile */ static GameProfile of(UUID uniqueId, @Nullable String name) { return Sponge.getServer().getGameProfileManager().createProfile(uniqueId, name); }
public static org.spongepowered.api.world.Location<World> getLocation(Location location) { Collection<World> worlds = Sponge.getServer().getWorlds(); World world = Sponge.getServer().getWorld(location.getWorld()).orElse(worlds.toArray(new World[worlds.size()])[0]); return new org.spongepowered.api.world.Location<>(world, location.getX(), location.getY(), location.getZ()); }
@Override public void log(String message) { message = C.format(message, C.replacements); if (!Settings.Chat.CONSOLE_COLOR) { message = message.replaceAll('\u00a7' + "[a-z|0-9]", ""); } if (this.server == null) { this.logger.info(message); return; } this.server.getConsole().sendMessage(SpongeUtil.getText(message)); }
@Override public boolean isOnlineMode() { return ((SpongeLoader)loader).getGame().getServer().getOnlineMode(); }
@Override public void unload(String worldName, boolean safe) { Optional<World> world = Sponge.getServer().getWorld(worldName); if (world.isPresent()) { Sponge.getServer().unloadWorld(world.get()); } }