use of com.minecolonies.api.tileentities.TileEntityColonyBuilding in project minecolonies by ldtteam.
the class CreateColonyMessage method onExecute.
@Override
public void onExecute(final NetworkEvent.Context ctxIn, final boolean isLogicalServer) {
final ServerPlayerEntity sender = ctxIn.getSender();
final World world = ctxIn.getSender().level;
if (sender == null) {
return;
}
if (sender.getStats().getValue(Stats.ITEM_USED.get(ModItems.supplyChest)) <= 0 && !sender.isCreative()) {
LanguageHandler.sendPlayerMessage(sender, "com.minecolonies.coremod.supplyneed");
return;
}
final IColony colony = IColonyManager.getInstance().getClosestColony(world, townHall);
String style = Constants.DEFAULT_STYLE;
final TileEntity tileEntity = world.getBlockEntity(townHall);
if (!(tileEntity instanceof TileEntityColonyBuilding)) {
LanguageHandler.sendPlayerMessage(sender, "com.minecolonies.coremod.gui.colony.create.notileentity");
return;
}
if (!((AbstractTileEntityColonyBuilding) tileEntity).getStyle().isEmpty()) {
style = ((AbstractTileEntityColonyBuilding) tileEntity).getStyle();
}
if (MineColonies.getConfig().getServer().restrictColonyPlacement.get()) {
final double spawnDistance = Math.sqrt(BlockPosUtil.getDistanceSquared2D(townHall, ((ServerWorld) world).getSharedSpawnPos()));
if (spawnDistance < MineColonies.getConfig().getServer().minDistanceFromWorldSpawn.get()) {
if (!world.isClientSide) {
LanguageHandler.sendPlayerMessage(sender, CANT_PLACE_COLONY_TOO_CLOSE_TO_SPAWN, MineColonies.getConfig().getServer().minDistanceFromWorldSpawn.get());
}
return;
} else if (spawnDistance > MineColonies.getConfig().getServer().maxDistanceFromWorldSpawn.get()) {
if (!world.isClientSide) {
LanguageHandler.sendPlayerMessage(sender, CANT_PLACE_COLONY_TOO_FAR_FROM_SPAWN, MineColonies.getConfig().getServer().maxDistanceFromWorldSpawn.get());
}
return;
}
}
if (colony != null && !IColonyManager.getInstance().isFarEnoughFromColonies(world, townHall)) {
LanguageHandler.sendPlayerMessage(sender, "com.minecolonies.coremod.gui.colony.denied.tooclose", colony.getName());
return;
}
final IColony ownedColony = IColonyManager.getInstance().getIColonyByOwner(world, sender);
if (ownedColony == null) {
IColonyManager.getInstance().createColony(world, townHall, sender, style);
IColonyManager.getInstance().getIColonyByOwner(world, sender).getBuildingManager().addNewBuilding((TileEntityColonyBuilding) tileEntity, world);
LanguageHandler.sendPlayerMessage((PlayerEntity) sender, "com.minecolonies.coremod.progress.colony_founded");
return;
}
LanguageHandler.sendPlayerMessage((PlayerEntity) sender, "com.minecolonies.coremod.gui.colony.create.failed");
}
Aggregations