diff options
author | Howaner <franzi.moos@googlemail.com> | 2014-12-13 20:10:23 +0100 |
---|---|---|
committer | Howaner <franzi.moos@googlemail.com> | 2014-12-13 20:10:23 +0100 |
commit | a595a4a842123f10a4b27ae082794bad0250a307 (patch) | |
tree | b0f50e06e6f7a55a8d5a18cfb37a53234f527236 /MCServer/Plugins | |
parent | Added cocoa pod. (diff) | |
parent | Merge pull request #1663 from mc-server/APIDumpSize (diff) | |
download | cuberite-a595a4a842123f10a4b27ae082794bad0250a307.tar cuberite-a595a4a842123f10a4b27ae082794bad0250a307.tar.gz cuberite-a595a4a842123f10a4b27ae082794bad0250a307.tar.bz2 cuberite-a595a4a842123f10a4b27ae082794bad0250a307.tar.lz cuberite-a595a4a842123f10a4b27ae082794bad0250a307.tar.xz cuberite-a595a4a842123f10a4b27ae082794bad0250a307.tar.zst cuberite-a595a4a842123f10a4b27ae082794bad0250a307.zip |
Diffstat (limited to '')
-rw-r--r-- | MCServer/Plugins/APIDump/APIDesc.lua | 4 | ||||
m--------- | MCServer/Plugins/Core | 0 | ||||
-rw-r--r-- | MCServer/Plugins/Debuggers/Debuggers.lua | 124 | ||||
-rw-r--r-- | MCServer/Plugins/Debuggers/Info.lua | 223 | ||||
-rw-r--r-- | MCServer/Plugins/InfoDump.lua | 13 |
5 files changed, 329 insertions, 35 deletions
diff --git a/MCServer/Plugins/APIDump/APIDesc.lua b/MCServer/Plugins/APIDump/APIDesc.lua index 72dcce5e4..ba3763724 100644 --- a/MCServer/Plugins/APIDump/APIDesc.lua +++ b/MCServer/Plugins/APIDump/APIDesc.lua @@ -2564,7 +2564,9 @@ World:ForEachEntity( if not(a_Entity:IsMob()) then return; end - local Monster = tolua.cast(a_Entity, "cMonster"); -- Get the cMonster out of cEntity, now that we know the entity represents one. + + -- Get the cMonster out of cEntity, now that we know the entity represents one. + local Monster = tolua.cast(a_Entity, "cMonster"); if (Monster:GetMobType() == mtSpider) then Monster:TeleportToCoords(Monster:GetPosX(), Monster:GetPosY() + 100, Monster:GetPosZ()); end diff --git a/MCServer/Plugins/Core b/MCServer/Plugins/Core -Subproject 4183d6cfb2049d0757d811a65bd4e75ed78b9f4 +Subproject 39d980e3a3447ac23f61c7d65426b33ee6c0718 diff --git a/MCServer/Plugins/Debuggers/Debuggers.lua b/MCServer/Plugins/Debuggers/Debuggers.lua index 3dcd4ebee..a047488b5 100644 --- a/MCServer/Plugins/Debuggers/Debuggers.lua +++ b/MCServer/Plugins/Debuggers/Debuggers.lua @@ -35,39 +35,15 @@ function Initialize(Plugin) -- _X: Disabled so that the normal operation doesn't interfere with anything -- PM:AddHook(cPluginManager.HOOK_CHUNK_GENERATED, OnChunkGenerated); - PM:BindCommand("/nick", "debuggers", HandleNickCmd, "- Gives you a custom name"); - PM:BindCommand("/le", "debuggers", HandleListEntitiesCmd, "- Shows a list of all the loaded entities"); - PM:BindCommand("/ke", "debuggers", HandleKillEntitiesCmd, "- Kills all the loaded entities"); - PM:BindCommand("/wool", "debuggers", HandleWoolCmd, "- Sets all your armor to blue wool"); - PM:BindCommand("/testwnd", "debuggers", HandleTestWndCmd, "- Opens up a window using plugin API"); - PM:BindCommand("/gc", "debuggers", HandleGCCmd, "- Activates the Lua garbage collector"); - PM:BindCommand("/fast", "debuggers", HandleFastCmd, "- Switches between fast and normal movement speed"); - PM:BindCommand("/dash", "debuggers", HandleDashCmd, "- Switches between fast and normal sprinting speed"); - PM:BindCommand("/hunger", "debuggers", HandleHungerCmd, "- Lists the current hunger-related variables"); - PM:BindCommand("/poison", "debuggers", HandlePoisonCmd, "- Sets food-poisoning for 15 seconds"); - PM:BindCommand("/starve", "debuggers", HandleStarveCmd, "- Sets the food level to zero"); - PM:BindCommand("/fl", "debuggers", HandleFoodLevelCmd, "- Sets the food level to the given value"); - PM:BindCommand("/spidey", "debuggers", HandleSpideyCmd, "- Shoots a line of web blocks until it hits non-air"); - PM:BindCommand("/ench", "debuggers", HandleEnchCmd, "- Provides an instant dummy enchantment window"); - PM:BindCommand("/fs", "debuggers", HandleFoodStatsCmd, "- Turns regular foodstats message on or off"); - PM:BindCommand("/arr", "debuggers", HandleArrowCmd, "- Creates an arrow going away from the player"); - PM:BindCommand("/fb", "debuggers", HandleFireballCmd, "- Creates a ghast fireball as if shot by the player"); - PM:BindCommand("/xpa", "debuggers", HandleAddExperience, "- Adds 200 experience to the player"); - PM:BindCommand("/xpr", "debuggers", HandleRemoveXp, "- Remove all xp"); - PM:BindCommand("/fill", "debuggers", HandleFill, "- Fills all block entities in current chunk with junk"); - PM:BindCommand("/fr", "debuggers", HandleFurnaceRecipe, "- Shows the furnace recipe for the currently held item"); - PM:BindCommand("/ff", "debuggers", HandleFurnaceFuel, "- Shows how long the currently held item would burn in a furnace"); - PM:BindCommand("/sched", "debuggers", HandleSched, "- Schedules a simple countdown using cWorld:ScheduleTask()"); - PM:BindCommand("/cs", "debuggers", HandleChunkStay, "- Tests the ChunkStay Lua integration for the specified chunk coords"); - PM:BindCommand("/compo", "debuggers", HandleCompo, "- Tests the cCompositeChat bindings"); - PM:BindCommand("/sb", "debuggers", HandleSetBiome, "- Sets the biome around you to the specified one"); - PM:BindCommand("/wesel", "debuggers", HandleWESel, "- Expands the current WE selection by 1 block in X/Z"); - PM:BindCommand("/rmitem", "debuggers", HandleRMItem, "- Remove the specified item from the inventory."); - PM:BindCommand("/pickups", "debuggers", HandlePickups, "- Spawns random pickups around you"); - PM:BindCommand("/poof", "debuggers", HandlePoof, "- Nudges pickups close to you away from you"); - - PM:BindConsoleCommand("sched", HandleConsoleSchedule, "Tests the world scheduling"); - + -- Load the InfoReg shared library: + dofile(cPluginManager:GetPluginsPath() .. "/InfoReg.lua") + + -- Bind all the commands: + RegisterPluginInfoCommands(); + + -- Bind all the console commands: + RegisterPluginInfoConsoleCommands(); + Plugin:AddWebTab("Debuggers", HandleRequest_Debuggers) Plugin:AddWebTab("StressTest", HandleRequest_StressTest) @@ -1643,3 +1619,85 @@ end + +function HandleConsoleLoadChunk(a_Split) + -- Check params: + local numParams = #a_Split + if (numParams ~= 3) and (numParams ~= 4) then + return true, "Usage: " .. a_Split[1] .. " <ChunkX> <ChunkZ> [<WorldName>]" + end + + -- Get the chunk coords: + local chunkX = tonumber(a_Split[2]) + if (chunkX == nil) then + return true, "Not a number: '" .. a_Split[2] .. "'" + end + local chunkZ = tonumber(a_Split[3]) + if (chunkZ == nil) then + return true, "Not a number: '" .. a_Split[3] .. "'" + end + + -- Get the world: + local world + if (a_Split[4] == nil) then + world = cRoot:Get():GetDefaultWorld() + else + world = cRoot:Get():GetWorld(a_Split[4]) + if (world == nil) then + return true, "There's no world named '" .. a_Split[4] .. "'." + end + end + + -- Queue a ChunkStay for the chunk, log a message when the chunk is loaded: + world:ChunkStay({{chunkX, chunkZ}}, nil, + function() + LOG("Chunk [" .. chunkX .. ", " .. chunkZ .. "] is loaded") + end + ) + return true +end + + + + + +function HandleConsolePrepareChunk(a_Split) + -- Check params: + local numParams = #a_Split + if (numParams ~= 3) and (numParams ~= 4) then + return true, "Usage: " .. a_Split[1] .. " <ChunkX> <ChunkZ> [<WorldName>]" + end + + -- Get the chunk coords: + local chunkX = tonumber(a_Split[2]) + if (chunkX == nil) then + return true, "Not a number: '" .. a_Split[2] .. "'" + end + local chunkZ = tonumber(a_Split[3]) + if (chunkZ == nil) then + return true, "Not a number: '" .. a_Split[3] .. "'" + end + + -- Get the world: + local world + if (a_Split[4] == nil) then + world = cRoot:Get():GetDefaultWorld() + else + world = cRoot:Get():GetWorld(a_Split[4]) + if (world == nil) then + return true, "There's no world named '" .. a_Split[4] .. "'." + end + end + + -- Queue the chunk for preparing, log a message when prepared: + world:PrepareChunk(chunkX, chunkZ, + function(a_CBChunkX, a_CBChunkZ) + LOG("Chunk [" .. chunkX .. ", " .. chunkZ .. "] has been prepared") + end + ) + return true +end + + + + diff --git a/MCServer/Plugins/Debuggers/Info.lua b/MCServer/Plugins/Debuggers/Info.lua new file mode 100644 index 000000000..b96ef3de5 --- /dev/null +++ b/MCServer/Plugins/Debuggers/Info.lua @@ -0,0 +1,223 @@ + +-- Info.lua + +-- Implements the g_PluginInfo standard plugin description + + + + + +g_PluginInfo = +{ + Name = "Debuggers", + Version = "14", + Date = "2014-12-11", + Description = [[Contains code for testing and debugging the server. Should not be enabled on a production server!]], + + Commands = + { + ["/arr"] = + { + Permission = "debuggers", + Handler = HandleArrowCmd, + HelpString = "Creates an arrow going away from the player" + }, + ["/compo"] = + { + Permission = "debuggers", + Handler = HandleCompo, + HelpString = "Tests the cCompositeChat bindings" + }, + ["/cs"] = + { + Permission = "debuggers", + Handler = HandleChunkStay, + HelpString = "Tests the ChunkStay Lua integration for the specified chunk coords" + }, + ["/dash"] = + { + Permission = "debuggers", + Handler = HandleDashCmd, + HelpString = "Switches between fast and normal sprinting speed" + }, + ["/ench"] = + { + Permission = "debuggers", + Handler = HandleEnchCmd, + HelpString = "Provides an instant dummy enchantment window" + }, + ["/fast"] = + { + Permission = "debuggers", + Handler = HandleFastCmd, + HelpString = "Switches between fast and normal movement speed" + }, + ["/fb"] = + { + Permission = "debuggers", + Handler = HandleFireballCmd, + HelpString = "Creates a ghast fireball as if shot by the player" + }, + ["/ff"] = + { + Permission = "debuggers", + Handler = HandleFurnaceFuel, + HelpString = "Shows how long the currently held item would burn in a furnace" + }, + ["/fill"] = + { + Permission = "debuggers", + Handler = HandleFill, + HelpString = "Fills all block entities in current chunk with junk" + }, + ["/fl"] = + { + Permission = "debuggers", + Handler = HandleFoodLevelCmd, + HelpString = "Sets the food level to the given value" + }, + ["/fr"] = + { + Permission = "debuggers", + Handler = HandleFurnaceRecipe, + HelpString = "Shows the furnace recipe for the currently held item" + }, + ["/fs"] = + { + Permission = "debuggers", + Handler = HandleFoodStatsCmd, + HelpString = "Turns regular foodstats message on or off" + }, + ["/gc"] = + { + Permission = "debuggers", + Handler = HandleGCCmd, + HelpString = "Activates the Lua garbage collector" + }, + ["/hunger"] = + { + Permission = "debuggers", + Handler = HandleHungerCmd, + HelpString = "Lists the current hunger-related variables" + }, + ["/ke"] = + { + Permission = "debuggers", + Handler = HandleKillEntitiesCmd, + HelpString = "Kills all the loaded entities" + }, + ["/le"] = + { + Permission = "debuggers", + Handler = HandleListEntitiesCmd, + HelpString = "Shows a list of all the loaded entities" + }, + ["/nick"] = + { + Permission = "debuggers", + Handler = HandleNickCmd, + HelpString = "Gives you a custom name", + }, + ["/pickups"] = + { + Permission = "debuggers", + Handler = HandlePickups, + HelpString = "Spawns random pickups around you" + }, + ["/poison"] = + { + Permission = "debuggers", + Handler = HandlePoisonCmd, + HelpString = "Sets food-poisoning for 15 seconds" + }, + ["/poof"] = + { + Permission = "debuggers", + Handler = HandlePoof, + HelpString = "Nudges pickups close to you away from you" + }, + ["/rmitem"] = + { + Permission = "debuggers", + Handler = HandleRMItem, + HelpString = "Remove the specified item from the inventory." + }, + ["/sb"] = + { + Permission = "debuggers", + Handler = HandleSetBiome, + HelpString = "Sets the biome around you to the specified one" + }, + ["/sched"] = + { + Permission = "debuggers", + Handler = HandleSched, + HelpString = "Schedules a simple countdown using cWorld:ScheduleTask()" + }, + ["/spidey"] = + { + Permission = "debuggers", + Handler = HandleSpideyCmd, + HelpString = "Shoots a line of web blocks until it hits non-air" + }, + ["/starve"] = + { + Permission = "debuggers", + Handler = HandleStarveCmd, + HelpString = "Sets the food level to zero" + }, + ["/testwnd"] = + { + Permission = "debuggers", + Handler = HandleTestWndCmd, + HelpString = "Opens up a window using plugin API" + }, + ["/wesel"] = + { + Permission = "debuggers", + Handler = HandleWESel, + HelpString = "Expands the current WE selection by 1 block in X/Z" + }, + ["/wool"] = + { + Permission = "debuggers", + Handler = HandleWoolCmd, + HelpString = "Sets all your armor to blue wool" + }, + ["/xpa"] = + { + Permission = "debuggers", + Handler = HandleAddExperience, + HelpString = "Adds 200 experience to the player" + }, + ["/xpr"] = + { + Permission = "debuggers", + Handler = HandleRemoveXp, + HelpString = "Remove all xp" + }, + }, -- Commands + + ConsoleCommands = + { + ["sched"] = + { + Handler = HandleConsoleSchedule, + HelpString = "Tests the world scheduling", + }, + ["loadchunk"] = + { + Handler = HandleConsoleLoadChunk, + HelpString = "Loads the specified chunk into memory", + }, + ["preparechunk"] = + { + Handler = HandleConsolePrepareChunk, + HelpString = "Prepares the specified chunk completely (load / gen / light)", + } + }, -- ConsoleCommands +} -- g_PluginInfo + + + + diff --git a/MCServer/Plugins/InfoDump.lua b/MCServer/Plugins/InfoDump.lua index de1d1f451..07a534b88 100644 --- a/MCServer/Plugins/InfoDump.lua +++ b/MCServer/Plugins/InfoDump.lua @@ -444,7 +444,18 @@ local function BuildPermissions(a_PluginInfo) Permissions[info.Permission] = Permission -- Add the command to the list of commands using this permission: Permission.CommandsAffected = Permission.CommandsAffected or {} - table.insert(Permission.CommandsAffected, CommandString) + -- First, make sure that we don't already have this command in the list, + -- it may have already been present in a_PluginInfo + local NewCommand = true + for _, existCmd in ipairs(Permission.CommandsAffected) do + if CommandString == existCmd then + NewCommand = false + break + end + end + if NewCommand then + table.insert(Permission.CommandsAffected, CommandString) + end end -- Process the command param combinations for permissions: |