summaryrefslogtreecommitdiffstats
path: root/MCServer/Plugins/Debuggers
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@hotmail.co.uk>2014-12-13 13:11:01 +0100
committerTiger Wang <ziwei.tiger@hotmail.co.uk>2014-12-13 13:11:01 +0100
commit4b20a615192baeb5ef0a04a10161a03428cda8cd (patch)
treec6f25102267b0cc4a444f6e746679405948142b0 /MCServer/Plugins/Debuggers
parentFixed compilation? (diff)
parentMerge pull request #1660 from Seadragon91/master (diff)
downloadcuberite-4b20a615192baeb5ef0a04a10161a03428cda8cd.tar
cuberite-4b20a615192baeb5ef0a04a10161a03428cda8cd.tar.gz
cuberite-4b20a615192baeb5ef0a04a10161a03428cda8cd.tar.bz2
cuberite-4b20a615192baeb5ef0a04a10161a03428cda8cd.tar.lz
cuberite-4b20a615192baeb5ef0a04a10161a03428cda8cd.tar.xz
cuberite-4b20a615192baeb5ef0a04a10161a03428cda8cd.tar.zst
cuberite-4b20a615192baeb5ef0a04a10161a03428cda8cd.zip
Diffstat (limited to 'MCServer/Plugins/Debuggers')
-rw-r--r--MCServer/Plugins/Debuggers/Debuggers.lua124
-rw-r--r--MCServer/Plugins/Debuggers/Info.lua223
2 files changed, 314 insertions, 33 deletions
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
+
+
+
+