use of pl.themolka.arcade.map.ArcadeMap in project Arcade2 by ShootGame.
the class ObserverListeners method onPlayerVoidTeleport.
@Handler(priority = Priority.NORMAL)
public void onPlayerVoidTeleport(PlayerMoveEvent event) {
Player bukkit = event.getBukkitPlayer();
if (!event.isCanceled() && this.isObserving(bukkit)) {
ArcadeMap map = this.game.getGame().getMap();
int y = event.getTo().getBlockY();
// Teleport observers when they are in the void.
if (y < 0 - BORDER_Y || y > map.getWorld().getMaxHeight() + BORDER_Y) {
event.getPlayer().getBukkit().teleport(map.getManifest().getWorld().getSpawn(), TELEPORT_CAUSE);
}
}
}
use of pl.themolka.arcade.map.ArcadeMap in project Arcade2 by ShootGame.
the class SimpleGameManager method createGame.
@Override
public Game createGame(OfflineMap map) throws DOMException, IOException {
File file = map.getSettings();
DOMEngine engine = this.plugin.getDomEngines().forFile(file);
Parser<MapManifest> parser;
try {
parser = this.plugin.getParsers().forType(MapManifest.class);
} catch (ParserNotSupportedException ex) {
throw new RuntimeException("No " + MapManifest.class.getSimpleName() + " parser installed");
}
Document document = engine.read(file);
this.plugin.getDomPreprocessor().preprocess(document);
ArcadeMap realMap = new ArcadeMap(map, parser.parse(document).orFail());
WorldNameGenerator worldNameGenerator = new WorldNameGenerator(map);
realMap.setWorldName(worldNameGenerator.nextWorldName());
return this.createGame(realMap);
}
Aggregations