/** * Save world identifiers (UUID and dimension) to a compound tag for later lookup. * * @param world The world to identify. * @param compound The tag to write to. */ public static void writeWorld(World world, CompoundTag compound) { UUID worldUuid = world.getUID(); // world UUID used by Bukkit and code above compound.putLong("WorldUUIDMost", worldUuid.getMostSignificantBits()); compound.putLong("WorldUUIDLeast", worldUuid.getLeastSignificantBits()); // leave a Dimension value for possible Vanilla use compound.putInt("Dimension", world.getEnvironment().getId()); }
@Override public World getWorld(UUID uid) { return worlds.stream().filter(world -> world.getUID().equals(uid)).findAny().orElse(null); }
public PrimitiveChunkStore(World world, int cx, int cz) { this.cx = cx; this.cz = cz; this.worldUid = world.getUID(); this.store = new boolean[16][16][world.getMaxHeight()]; }
@Nonnull @Override public MetadataMap provide(@Nonnull World world) { Objects.requireNonNull(world, "world"); return provide(world.getUID()); }
@Nonnull @Override public Optional<MetadataMap> get(@Nonnull World world) { Objects.requireNonNull(world, "world"); return get(world.getUID()); }
@Nonnull @Override public MetadataMap provide(@Nonnull World world) { Objects.requireNonNull(world, "world"); return provide(world.getUID()); }
@Nonnull @Override public Optional<MetadataMap> get(@Nonnull World world) { Objects.requireNonNull(world, "world"); return get(world.getUID()); }
private WorldNode getOrCreateWorldNode(final World world, final int tick) { return getOrCreateWorldNode(world.getUID(), tick); }
public Location popLastLocation() { Location l = locationHistory.poll(); if (l == null) { return null; } // Make sure that the world of this location is still valid. UUID worldId = l.getWorld().getUID(); if (Bukkit.getWorld(worldId) == null) { return null; } return l; }
@Override public PreparedStatement prepareStatement(Connection connection) throws SQLException { PreparedStatement preparedStatement = connection.prepareStatement(getSQL()); preparedStatement.setInt(1, furnace.getUniqueId()); preparedStatement.setInt(2, furnace.getOwnerId()); preparedStatement.setString(3, furnace.getLocation().getWorld().getUID().toString()); preparedStatement.setInt(4, furnace.getLocation().getBlockX()); preparedStatement.setInt(5, furnace.getLocation().getBlockY()); preparedStatement.setInt(6, furnace.getLocation().getBlockZ()); preparedStatement.setBoolean(7, furnace.isActive()); return preparedStatement; } }
@Override public PreparedStatement prepareStatement(Connection connection) throws SQLException { PreparedStatement preparedStatement = connection.prepareStatement(getSQL()); preparedStatement.setInt(1, tree.getUniqueId()); preparedStatement.setInt(2, tree.getOwnerId()); preparedStatement.setString(3, tree.getLocation().getWorld().getUID().toString()); preparedStatement.setInt(4, tree.getLocation().getBlockX()); preparedStatement.setInt(5, tree.getLocation().getBlockY()); preparedStatement.setInt(6, tree.getLocation().getBlockZ()); preparedStatement.setBoolean(7, tree.isSapling()); preparedStatement.setInt(8, tree.getSize()); return preparedStatement; } }
public void updateWorldIdentifier(final World world) { updateWorldIdentifier(new WorldIdentifier(world.getName(), world.getUID())); }
public SerializableProtectedRegion(final Location location, final double radius) { this.x = location.getX(); this.y = location.getY(); this.z = location.getZ(); this.radius = radius; this.worldName = location.getWorld().getName(); this.worldUUID = location.getWorld().getUID(); this.location = location; }
@Override public void run() { for (World world : Bukkit.getWorlds()) { WorldClimateEngine climateEngine = ClimateEngine.getInstance().getClimateEngine(world.getUID()); if (climateEngine != null && climateEngine.isEffectEnabled(ClimateEffectType.PERMANENT_SLOWNESS)) { for (Player player : world.getPlayers()) { updatePlayerSlowness(player, climateEngine.getTemperature()); } } } }
@EventHandler public void onCropGrow(BlockGrowEvent event) { WorldClimateEngine worldEngine = ClimateEngine.getInstance().getClimateEngine(event.getBlock().getWorld().getUID()); if (worldEngine != null && worldEngine.isEffectEnabled(ClimateEffectType.FARM_YIELD)) { Distribution distribution = cropDistribution.get(event.getBlock().getType()); if (distribution != null) { double random = GlobalWarming.getInstance().getRandom().nextDouble(); double chance = distribution.getValue(worldEngine.getTemperature()); if (chance / 100.f <= random) { event.setCancelled(true); } } } }
@EventHandler public void onPlayerJoin(PlayerJoinEvent event) { UUID worldId = event.getPlayer().getWorld().getUID(); WorldClimateEngine climateEngine = ClimateEngine.getInstance().getClimateEngine(worldId); if (climateEngine != null && climateEngine.isEffectEnabled(ClimateEffectType.PERMANENT_SLOWNESS)) { updatePlayerSlowness(event.getPlayer(), climateEngine.getTemperature()); } }
public static JsonObject locationToJson(Location location) { return JsonObjectBuilder.create() .set("worldUUID", location.getWorld().getUID().toString()) .set("worldName", location.getWorld().getName()) .set("x", location.getBlockX()) .set("y", location.getBlockY()) .set("z", location.getBlockZ()) .toJsonObject(); }
/** * Track a player's current world * - This information is needed when players go offline, but have planted saplings, * left furnaces running or have active bounties */ @EventHandler public void onPlayerChangedWorldEvent(PlayerChangedWorldEvent event) { //Update the player's world: PlayerTable playerTable = gw.getTableManager().getPlayerTable(); GPlayer gPlayer = playerTable.getPlayers().get(event.getPlayer().getUniqueId()); gPlayer.setWorldId(event.getPlayer().getWorld().getUID()); //Database update: PlayerUpdateQuery updateQuery = new PlayerUpdateQuery(gPlayer); AsyncDBQueue.getInstance().queueUpdateQuery(updateQuery); } }
@EventHandler public void blockFormEvent(BlockFormEvent event) { if (event.getNewState().getType() == Material.ICE) { WorldClimateEngine climateEngine = ClimateEngine.getInstance().getClimateEngine(event.getBlock().getWorld().getUID()); if (climateEngine != null && climateEngine.isEffectEnabled(ClimateEffectType.ICE_FORMATION)) { if (event.getBlock().getY() < heightMap.getValue(climateEngine.getTemperature())) { event.setCancelled(true); } } } }
@EventHandler public void blockFormEvent(BlockFormEvent event) { if (event.getNewState().getType() == Material.SNOW) { WorldClimateEngine climateEngine = ClimateEngine.getInstance().getClimateEngine(event.getBlock().getWorld().getUID()); if (climateEngine != null && climateEngine.isEffectEnabled(ClimateEffectType.SNOW_FORMATION)) { double temperature = climateEngine.getTemperature(); if (event.getBlock().getY() < heightMap.getValue(temperature)) { event.setCancelled(true); } } } }