11-01-2015, 08:03 AM
I don't like Bukkit's way of putting all the commands together. If one plugin registers a "test" console command, another plugin cannot register a "test" in-game command (which is perfectly possible now in Cuberite).
Minecarts with command blocks could use commandblock registrations and call the callbacks with a_CommandBlockEntity set to the minecart-with-CB. Not much pain.
@NiLSPACE That's more or less what I had in mind - the CommandOutput object is there so that a handler may add any output up until it calls Terminate:
Minecarts with command blocks could use commandblock registrations and call the callbacks with a_CommandBlockEntity set to the minecart-with-CB. Not much pain.
@NiLSPACE That's more or less what I had in mind - the CommandOutput object is there so that a handler may add any output up until it calls Terminate:
--- Lists all entities in a given chunk function HandleConsoleEnumChunkEntities(a_Split, a_Player, a_EntireCmd, a_CommandOutput) local worldName = a_Split[2] local chunkX = tonumber(a_Split[3]) local chunkZ = tonumber(a_Split[4]) local world = cRoot:Get():GetWorld(worldName) world:ChunkStay({{chunkX, chunkZ}}, nil, -- ChunkAvailable function () -- AllChunksReady -- The chunk has been loaded, enum the entities: world:ForEachEntityInChunk(chunkX, chunkZ, function (a_Entity) a_CommandOutput.Add(string.format("Entity %s at {%d, %d, %d}", a_Entity:GetClass(), a_Entity:GetPosX(), a_Entity:GetPosY(), a_Entity:GetPosZ()) ) end ) -- All entities have been listed, terminate the output: a_CommandOutput.Terminate() end ) return true -- Must not return a message - that would terminate the CommandOutput immediately end