Support multi block change update

Also no longer depends on protocollib