summaryrefslogtreecommitdiffstats
path: root/MCServer/Plugins
diff options
context:
space:
mode:
authorHowaner <franzi.moos@googlemail.com>2014-12-13 20:10:23 +0100
committerHowaner <franzi.moos@googlemail.com>2014-12-13 20:10:23 +0100
commita595a4a842123f10a4b27ae082794bad0250a307 (patch)
treeb0f50e06e6f7a55a8d5a18cfb37a53234f527236 /MCServer/Plugins
parentAdded cocoa pod. (diff)
parentMerge pull request #1663 from mc-server/APIDumpSize (diff)
downloadcuberite-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 'MCServer/Plugins')
-rw-r--r--MCServer/Plugins/APIDump/APIDesc.lua4
m---------MCServer/Plugins/Core0
-rw-r--r--MCServer/Plugins/Debuggers/Debuggers.lua124
-rw-r--r--MCServer/Plugins/Debuggers/Info.lua223
-rw-r--r--MCServer/Plugins/InfoDump.lua13
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: