Archived
0

обновление PlayerManager

This commit is contained in:
2018-09-16 00:06:28 +03:00
parent 3e6d0687ab
commit 5a0b29c2ba
6 changed files with 53 additions and 67 deletions

View File

@@ -1,7 +1,3 @@
/*
* DmitriyMX <dimon550@gmail.com>
* 2018-06-29
*/
package mc.core.embedded;
import mc.core.EntityLocation;
@@ -65,13 +61,8 @@ public class FakePlayerManager implements PlayerManager {
}
@Override
public Optional<Player> getPlayer(String name) {
return Optional.empty();
}
@Override
public Optional<Player> getPlayerById(int id) {
return Optional.empty();
public Player getPlayer(String name) {
return null;
}
@Override
@@ -80,7 +71,7 @@ public class FakePlayerManager implements PlayerManager {
}
@Override
public int getCountOnlinePlayers() {
public int getCountPlayers() {
return 0;
}
@@ -88,4 +79,9 @@ public class FakePlayerManager implements PlayerManager {
public NetChannel getBroadcastChannel() {
return FAKE_NET_CHANNEL;
}
@Override
public Player getOfflinePlayer(String name) {
return null;
}
}

View File

@@ -59,17 +59,10 @@ public class InMemoryPlayerManager implements PlayerManager, Runnable {
}
@Override
public Optional<Player> getPlayer(final String name) {
public Player getPlayer(final String name) {
return players.stream()
.filter(player -> player.getName().equalsIgnoreCase(name))
.findFirst();
}
@Override
public Optional<Player> getPlayerById(final int id) {
return players.stream()
.filter(player -> player.getId() == id)
.findFirst();
.findFirst().get();
}
@Override
@@ -78,7 +71,7 @@ public class InMemoryPlayerManager implements PlayerManager, Runnable {
}
@Override
public int getCountOnlinePlayers() {
public int getCountPlayers() {
return (int) players.stream().filter(Player::isOnline).count();
}
@@ -87,6 +80,14 @@ public class InMemoryPlayerManager implements PlayerManager, Runnable {
return new BroadcastNetChannel(players.stream().filter(Player::isOnline));
}
@Override
public Player getOfflinePlayer(String name) {
return players.stream()
.filter(player -> player.getName().equals(name))
.filter(player -> !player.isOnline())
.findFirst().orElse(null);
}
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {

View File

@@ -1,7 +1,3 @@
/*
* DmitriyMX <dimon550@gmail.com>
* 2018-04-15
*/
package mc.core.player;
import mc.core.EntityLocation;
@@ -9,15 +5,16 @@ import mc.core.network.NetChannel;
import mc.core.world.World;
import java.util.List;
import java.util.Optional;
public interface PlayerManager {
Player createPlayer(String name, EntityLocation location, World world);
void joinServer(Player player);
void leftServer(Player player);
Optional<Player> getPlayer(String name);
Optional<Player> getPlayerById(int id);
Player getPlayer(String name);
List<Player> getPlayers();
int getCountOnlinePlayers();
int getCountPlayers();
NetChannel getBroadcastChannel();
Player getOfflinePlayer(String name);
}