forked from mtcontrib/report
		
	Validate input
This commit is contained in:
		
							
								
								
									
										34
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								init.lua
									
									
									
									
									
								
							| @@ -4,25 +4,37 @@ end | ||||
|  | ||||
| minetest.register_chatcommand("report", { | ||||
| 	func = function(name, param) | ||||
| 		param = param:trim() | ||||
| 		if param == "" then | ||||
| 			return false, "Please add a message to your report. " .. | ||||
| 				"If it's about (a) particular player(s), please also include their name(s)." | ||||
| 		end | ||||
| 		local _, count = string.gsub(param, " ", "") | ||||
| 		if count == 0 then | ||||
| 			minetest.chat_send_player(name, "If you're reporting a player, " .. | ||||
| 				"you should also include a reason why. (Eg: swearing, sabotage)") | ||||
| 		end | ||||
|  | ||||
| 		-- Send to online moderators / admins | ||||
| 		-- Get comma separated list of online moderators and admins | ||||
| 		local mods = "" | ||||
| 		local mods = {} | ||||
| 		for _, player in pairs(minetest.get_connected_players()) do | ||||
| 			local name = player:get_player_name() | ||||
| 			if minetest.check_player_privs(name, {kick=true,ban=true}) then | ||||
| 				if mods ~= "" then | ||||
| 					mods = mods .. ", " | ||||
| 				end | ||||
| 				mods = mods .. name | ||||
| 			if minetest.check_player_privs(name, {kick = true, ban = true}) then | ||||
| 				table.insert(mods, name) | ||||
| 				minetest.chat_send_player(name, "-!- " .. name .. " reported: " .. param) | ||||
| 			end | ||||
| 		end | ||||
|  | ||||
| 		-- I hope that none of the moderators are called "none"! | ||||
| 		if mods == "" then | ||||
| 			mods = "none" | ||||
| 		end | ||||
| 		if #mods > 0 then | ||||
| 			mod_list = table.concat(mods, ", ") | ||||
| 			chatplus.send_mail(name, minetest.setting_get("name"), | ||||
| 			"Report: " .. param .. " (mods online: " .. mods .. ")") | ||||
| 				"Report: " .. param .. " (mods online: " .. mod_list .. ")") | ||||
| 			return true, "Reported. Moderators currently online: " .. mod_list | ||||
| 		else | ||||
| 			chatplus.send_mail(name, minetest.setting_get("name"), | ||||
| 				"Report: " .. param .. " (no mods online)") | ||||
| 			return true, "Reported. We'll get back to you." | ||||
| 		end | ||||
| 	end | ||||
| }) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user