Thanks. I was on the right path, but it seems I probably had messed up my `BlockPos` calculation.
For posterity, here is what I finally came up with, which seems to work ok:
World overworld = server.getWorld(0);
BlockPos blockPosition = overworld.getSpawnPoint();
logger.info("World: " + overworld.getClass());
BlockPos tmp = blockPosition;
while (!overworld.isAirBlock(tmp)) {
tmp = tmp.up();
}
Block blockStandingSign = Blocks.STANDING_SIGN;
overworld.setBlockState(tmp, blockStandingSign.getDefaultState()
.withProperty(BlockStandingSign.ROTATION, 0));
TileEntity tileEntity = overworld.getTileEntity(tmp);
if (tileEntity instanceof TileEntitySign) {
TileEntitySign tileEntitySign = (TileEntitySign) tileEntity;
tileEntitySign.signText[0] = new TextComponentString("tychobrailleur");
}
Happy to hear suggestions/improvement if any.