MineClone2/mods/CORE/mcl_commands/PROOF_OF_CONCEPT.md

1.5 KiB

mcl_commands.register_command(name, def)

Complex commands (WIP):

mcl_commands.register_command("test", {
	type = "complex",
	priv_level = 4,
	func = function(context)
		if self.match_type("int", {min=1, max=255} then
			print(self.last_type)
		end
	end,
})

Basic commands:

  • context.type is the context of execution: player or commandblock
  • context.commander is the executor/commander of the command
  • context.pos is the position where the command is executed

This param allow the use of position target selectors

mcl_commands.register_command("test", {
	type = "basic",
	priv_level = 4,
	func = function(context)
		if context.commander then
			print(context.pos)
			print("--------")		 --this "concept" param allow to run command correctly
									 --(with target selector and logging) from mods or command blocks
			return true, S("Succesfull")
		end
	end,
})

mcl_commands.execute_command(name, params, context)

As a player:

mcl_commands.execute_command("test", "foo bar true 1", {type="player", commander=player, pos=player:get_pos()})

As a command block:

mcl_commands.execute_command("test", "foo bar true 1", {type="commandblock", commander=commander, pos=node_pos})

mcl_commands.get_target_selector(target_selector)

This function allow mods and commands to get the result of a given target selector in that form: @e[gamemode=creative,limit=5]

This function returns a code indicating the success and a table of ObjectRefs (can be empty)