mirror of
				https://github.com/sys4-fr/server-nalc.git
				synced 2025-10-31 12:35:22 +01:00 
			
		
		
		
	remove chatplus mod
This commit is contained in:
		
							
								
								
									
										22
									
								
								mods/chatplus/.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								mods/chatplus/.gitattributes
									
									
									
									
										vendored
									
									
								
							| @@ -1,22 +0,0 @@ | |||||||
| # Auto detect text files and perform LF normalization |  | ||||||
| * text=auto |  | ||||||
|  |  | ||||||
| # Custom for Visual Studio |  | ||||||
| *.cs     diff=csharp |  | ||||||
| *.sln    merge=union |  | ||||||
| *.csproj merge=union |  | ||||||
| *.vbproj merge=union |  | ||||||
| *.fsproj merge=union |  | ||||||
| *.dbproj merge=union |  | ||||||
|  |  | ||||||
| # Standard to msysgit |  | ||||||
| *.doc	 diff=astextplain |  | ||||||
| *.DOC	 diff=astextplain |  | ||||||
| *.docx diff=astextplain |  | ||||||
| *.DOCX diff=astextplain |  | ||||||
| *.dot  diff=astextplain |  | ||||||
| *.DOT  diff=astextplain |  | ||||||
| *.pdf  diff=astextplain |  | ||||||
| *.PDF	 diff=astextplain |  | ||||||
| *.rtf	 diff=astextplain |  | ||||||
| *.RTF	 diff=astextplain |  | ||||||
							
								
								
									
										215
									
								
								mods/chatplus/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										215
									
								
								mods/chatplus/.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,215 +0,0 @@ | |||||||
| ################# |  | ||||||
| ## Eclipse |  | ||||||
| ################# |  | ||||||
|  |  | ||||||
| *.pydevproject |  | ||||||
| .project |  | ||||||
| .metadata |  | ||||||
| bin/ |  | ||||||
| tmp/ |  | ||||||
| *.tmp |  | ||||||
| *.bak |  | ||||||
| *.swp |  | ||||||
| *~.nib |  | ||||||
| local.properties |  | ||||||
| .classpath |  | ||||||
| .settings/ |  | ||||||
| .loadpath |  | ||||||
|  |  | ||||||
| # External tool builders |  | ||||||
| .externalToolBuilders/ |  | ||||||
|  |  | ||||||
| # Locally stored "Eclipse launch configurations" |  | ||||||
| *.launch |  | ||||||
|  |  | ||||||
| # CDT-specific |  | ||||||
| .cproject |  | ||||||
|  |  | ||||||
| # PDT-specific |  | ||||||
| .buildpath |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ################# |  | ||||||
| ## Visual Studio |  | ||||||
| ################# |  | ||||||
|  |  | ||||||
| ## Ignore Visual Studio temporary files, build results, and |  | ||||||
| ## files generated by popular Visual Studio add-ons. |  | ||||||
|  |  | ||||||
| # User-specific files |  | ||||||
| *.suo |  | ||||||
| *.user |  | ||||||
| *.sln.docstates |  | ||||||
|  |  | ||||||
| # Build results |  | ||||||
|  |  | ||||||
| [Dd]ebug/ |  | ||||||
| [Rr]elease/ |  | ||||||
| x64/ |  | ||||||
| build/ |  | ||||||
| [Bb]in/ |  | ||||||
| [Oo]bj/ |  | ||||||
|  |  | ||||||
| # MSTest test Results |  | ||||||
| [Tt]est[Rr]esult*/ |  | ||||||
| [Bb]uild[Ll]og.* |  | ||||||
|  |  | ||||||
| *_i.c |  | ||||||
| *_p.c |  | ||||||
| *.ilk |  | ||||||
| *.meta |  | ||||||
| *.obj |  | ||||||
| *.pch |  | ||||||
| *.pdb |  | ||||||
| *.pgc |  | ||||||
| *.pgd |  | ||||||
| *.rsp |  | ||||||
| *.sbr |  | ||||||
| *.tlb |  | ||||||
| *.tli |  | ||||||
| *.tlh |  | ||||||
| *.tmp |  | ||||||
| *.tmp_proj |  | ||||||
| *.log |  | ||||||
| *.vspscc |  | ||||||
| *.vssscc |  | ||||||
| .builds |  | ||||||
| *.pidb |  | ||||||
| *.log |  | ||||||
| *.scc |  | ||||||
|  |  | ||||||
| # Visual C++ cache files |  | ||||||
| ipch/ |  | ||||||
| *.aps |  | ||||||
| *.ncb |  | ||||||
| *.opensdf |  | ||||||
| *.sdf |  | ||||||
| *.cachefile |  | ||||||
|  |  | ||||||
| # Visual Studio profiler |  | ||||||
| *.psess |  | ||||||
| *.vsp |  | ||||||
| *.vspx |  | ||||||
|  |  | ||||||
| # Guidance Automation Toolkit |  | ||||||
| *.gpState |  | ||||||
|  |  | ||||||
| # ReSharper is a .NET coding add-in |  | ||||||
| _ReSharper*/ |  | ||||||
| *.[Rr]e[Ss]harper |  | ||||||
|  |  | ||||||
| # TeamCity is a build add-in |  | ||||||
| _TeamCity* |  | ||||||
|  |  | ||||||
| # DotCover is a Code Coverage Tool |  | ||||||
| *.dotCover |  | ||||||
|  |  | ||||||
| # NCrunch |  | ||||||
| *.ncrunch* |  | ||||||
| .*crunch*.local.xml |  | ||||||
|  |  | ||||||
| # Installshield output folder |  | ||||||
| [Ee]xpress/ |  | ||||||
|  |  | ||||||
| # DocProject is a documentation generator add-in |  | ||||||
| DocProject/buildhelp/ |  | ||||||
| DocProject/Help/*.HxT |  | ||||||
| DocProject/Help/*.HxC |  | ||||||
| DocProject/Help/*.hhc |  | ||||||
| DocProject/Help/*.hhk |  | ||||||
| DocProject/Help/*.hhp |  | ||||||
| DocProject/Help/Html2 |  | ||||||
| DocProject/Help/html |  | ||||||
|  |  | ||||||
| # Click-Once directory |  | ||||||
| publish/ |  | ||||||
|  |  | ||||||
| # Publish Web Output |  | ||||||
| *.Publish.xml |  | ||||||
| *.pubxml |  | ||||||
|  |  | ||||||
| # NuGet Packages Directory |  | ||||||
| ## TODO: If you have NuGet Package Restore enabled, uncomment the next line |  | ||||||
| #packages/ |  | ||||||
|  |  | ||||||
| # Windows Azure Build Output |  | ||||||
| csx |  | ||||||
| *.build.csdef |  | ||||||
|  |  | ||||||
| # Windows Store app package directory |  | ||||||
| AppPackages/ |  | ||||||
|  |  | ||||||
| # Others |  | ||||||
| sql/ |  | ||||||
| *.Cache |  | ||||||
| ClientBin/ |  | ||||||
| [Ss]tyle[Cc]op.* |  | ||||||
| ~$* |  | ||||||
| *~ |  | ||||||
| *.dbmdl |  | ||||||
| *.[Pp]ublish.xml |  | ||||||
| *.pfx |  | ||||||
| *.publishsettings |  | ||||||
|  |  | ||||||
| # RIA/Silverlight projects |  | ||||||
| Generated_Code/ |  | ||||||
|  |  | ||||||
| # Backup & report files from converting an old project file to a newer |  | ||||||
| # Visual Studio version. Backup files are not needed, because we have git ;-) |  | ||||||
| _UpgradeReport_Files/ |  | ||||||
| Backup*/ |  | ||||||
| UpgradeLog*.XML |  | ||||||
| UpgradeLog*.htm |  | ||||||
|  |  | ||||||
| # SQL Server files |  | ||||||
| App_Data/*.mdf |  | ||||||
| App_Data/*.ldf |  | ||||||
|  |  | ||||||
| ############# |  | ||||||
| ## Windows detritus |  | ||||||
| ############# |  | ||||||
|  |  | ||||||
| # Windows image file caches |  | ||||||
| Thumbs.db |  | ||||||
| ehthumbs.db |  | ||||||
|  |  | ||||||
| # Folder config file |  | ||||||
| Desktop.ini |  | ||||||
|  |  | ||||||
| # Recycle Bin used on file shares |  | ||||||
| $RECYCLE.BIN/ |  | ||||||
|  |  | ||||||
| # Mac crap |  | ||||||
| .DS_Store |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ############# |  | ||||||
| ## Python |  | ||||||
| ############# |  | ||||||
|  |  | ||||||
| *.py[co] |  | ||||||
|  |  | ||||||
| # Packages |  | ||||||
| *.egg |  | ||||||
| *.egg-info |  | ||||||
| dist/ |  | ||||||
| build/ |  | ||||||
| eggs/ |  | ||||||
| parts/ |  | ||||||
| var/ |  | ||||||
| sdist/ |  | ||||||
| develop-eggs/ |  | ||||||
| .installed.cfg |  | ||||||
|  |  | ||||||
| # Installer logs |  | ||||||
| pip-log.txt |  | ||||||
|  |  | ||||||
| # Unit test / coverage reports |  | ||||||
| .coverage |  | ||||||
| .tox |  | ||||||
|  |  | ||||||
| #Translations |  | ||||||
| *.mo |  | ||||||
|  |  | ||||||
| #Mr Developer |  | ||||||
| .mr.developer.cfg |  | ||||||
| @@ -1,23 +0,0 @@ | |||||||
| # Chatplus |  | ||||||
|  |  | ||||||
| Adds ignoring and email style inboxes. Also provides a powerful API, |  | ||||||
| and optionally allows distance limiting. |  | ||||||
|  |  | ||||||
| License: GPL 3.0 or later. |  | ||||||
|  |  | ||||||
| Created by rubenwardy. |  | ||||||
|  |  | ||||||
| ## Chat commands |  | ||||||
|  |  | ||||||
| * /ignore [name] - ignore a player |  | ||||||
| * /unignore [name] - unignore a player |  | ||||||
| * /mail [name] [msg] - message a player (online or offline!) |  | ||||||
| * /inbox - open your inbox |  | ||||||
| * /inbox clear - clear your inbox |  | ||||||
| * /inbox text - see the text version of the inbox. |  | ||||||
| * /inbox txt - alias of /inbox text |  | ||||||
| * /inbox t - alias of /inbox text |  | ||||||
|  |  | ||||||
| ## HUD |  | ||||||
|  |  | ||||||
| This mod adds a new message icon to the HUD. If HUDs are not supported, no icon is added. |  | ||||||
| @@ -1,226 +0,0 @@ | |||||||
| -- Chat Plus |  | ||||||
| --    by rubenwardy |  | ||||||
| --------------------- |  | ||||||
| -- api.lua |  | ||||||
| -- Core functionality |  | ||||||
| --------------------- |  | ||||||
|  |  | ||||||
|  |  | ||||||
| chatplus = { |  | ||||||
| 	version = 2.2, |  | ||||||
| 	_logpath = minetest.get_worldpath().."/chatplus-log.txt", |  | ||||||
| 	_defsettings = { |  | ||||||
| 		log = true, |  | ||||||
| 		use_gui = true, |  | ||||||
| 		distance = 0, |  | ||||||
| 		badwords = "" |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function chatplus.init() |  | ||||||
| 	chatplus.load() |  | ||||||
| 	chatplus.clean_players() |  | ||||||
|  |  | ||||||
| 	if not chatplus.players then |  | ||||||
| 		chatplus.players = {} |  | ||||||
| 	end |  | ||||||
| 	chatplus.count = 0 |  | ||||||
| 	chatplus.loggedin = {} |  | ||||||
| 	chatplus._handlers = {} |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function chatplus.setting(name) |  | ||||||
| 	local get = minetest.setting_get("chatplus_" .. name) |  | ||||||
| 	if get then |  | ||||||
| 		return get |  | ||||||
| 	elseif chatplus._defsettings[name]~= nil then |  | ||||||
| 		return chatplus._defsettings[name] |  | ||||||
| 	else |  | ||||||
| 		minetest.log("[Chatplus] Setting chatplus_" .. name .. " not found!") |  | ||||||
| 		return nil |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function chatplus.log(msg) |  | ||||||
| 	if chatplus._log then |  | ||||||
| 		chatplus._log:write(os.date("%Y-%m-%d %H:%M:%S") .. " " .. msg .. "\r\n") |  | ||||||
| 		chatplus._log:flush() |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function chatplus.load() |  | ||||||
| 	-- Initialize the log |  | ||||||
| 	if chatplus.setting("log") then |  | ||||||
| 		chatplus._log = io.open(chatplus._logpath, "a+") |  | ||||||
| 		if not chatplus._log then |  | ||||||
| 			minetest.log("error", "Unable to open the chatplus log file: " .. chatplus._logpath) |  | ||||||
| 		else |  | ||||||
| 			minetest.log("action", "Logging chat plus to: " .. chatplus._logpath) |  | ||||||
| 		end |  | ||||||
| 		chatplus.log("*** SERVER STARTED ***") |  | ||||||
| 	end |  | ||||||
|  |  | ||||||
| 	-- Load player data |  | ||||||
| 	minetest.log("[Chatplus] Loading data") |  | ||||||
| 	local file = io.open(minetest.get_worldpath() .. "/chatplus.txt", "r") |  | ||||||
| 	if file then |  | ||||||
| 		local from_file = minetest.deserialize(file:read("*all")) |  | ||||||
| 		file:close() |  | ||||||
| 		if type(from_file) == "table" then |  | ||||||
| 			if from_file.players and from_file.version >= 2 then |  | ||||||
| 				chatplus.players = from_file.players |  | ||||||
| 			else |  | ||||||
| 				chatplus.old_inbox = {} |  | ||||||
| 				chatplus.players = {} |  | ||||||
| 				for name, data in pairs(from_file) do |  | ||||||
| 					local inbox = data.inbox |  | ||||||
| 					data.inbox = nil |  | ||||||
| 					chatplus.players[name] = data |  | ||||||
| 					chatplus.old_inbox[name] = {} |  | ||||||
| 					for _, msg in pairs(inbox) do |  | ||||||
| 						table.insert(chatplus.old_inbox[name], { |  | ||||||
| 							date = "?", |  | ||||||
| 							from = "?", |  | ||||||
| 							msg = msg |  | ||||||
| 						}) |  | ||||||
| 					end |  | ||||||
| 				end |  | ||||||
| 				if chatplus.on_old_inbox then |  | ||||||
| 					chatplus.on_old_inbox(chatplus.old_inbox) |  | ||||||
| 				end |  | ||||||
| 			end |  | ||||||
| 			return |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function chatplus.save() |  | ||||||
| 	minetest.log("[Chatplus] Saving data") |  | ||||||
|  |  | ||||||
| 	local file = io.open(minetest.get_worldpath().."/chatplus.txt", "w") |  | ||||||
| 	if file then |  | ||||||
| 		file:write(minetest.serialize({	version = 2, players = chatplus.players})) |  | ||||||
| 		file:close() |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function chatplus.clean_players() |  | ||||||
| 	if not chatplus.players then |  | ||||||
| 		chatplus.players = {} |  | ||||||
| 		return |  | ||||||
| 	end |  | ||||||
|  |  | ||||||
| 	minetest.log("[Chatplus] Cleaning player lists") |  | ||||||
| 	for key,value in pairs(chatplus.players) do |  | ||||||
| 		if value.messages then |  | ||||||
| 			value.inbox = value.messages |  | ||||||
| 			value.messages = nil |  | ||||||
| 		end |  | ||||||
|  |  | ||||||
| 		if ( |  | ||||||
| 			(not value.inbox or #value.inbox==0) and |  | ||||||
| 			(not value.ignore or #value.ignore==0) |  | ||||||
| 		) then |  | ||||||
| 			value[key] = nil |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| 	chatplus.save() |  | ||||||
| end |  | ||||||
|  |  | ||||||
| local function cp_tick() |  | ||||||
| 	chatplus.clean_players() |  | ||||||
| 	minetest.after(30*60, cp_tick) |  | ||||||
| end |  | ||||||
| minetest.after(30*60, cp_tick) |  | ||||||
|  |  | ||||||
| function chatplus.poke(name,player) |  | ||||||
| 	local function check(name,value) |  | ||||||
| 		if not chatplus.players[name][value] then |  | ||||||
| 			chatplus.players[name][value] = {} |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| 	if not chatplus.players[name] then |  | ||||||
| 		chatplus.players[name] = {} |  | ||||||
| 	end |  | ||||||
| 	check(name, "ignore") |  | ||||||
| 	check(name, "inbox") |  | ||||||
|  |  | ||||||
| 	chatplus.players[name].enabled = true |  | ||||||
|  |  | ||||||
| 	if player then |  | ||||||
| 		if player=="end" then |  | ||||||
| 			chatplus.players[name].enabled = false |  | ||||||
| 			chatplus.loggedin[name] = nil |  | ||||||
| 		else |  | ||||||
| 			if not chatplus.loggedin[name] then |  | ||||||
| 				chatplus.loggedin[name] = {} |  | ||||||
| 			end |  | ||||||
| 			chatplus.loggedin[name].player = player |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
|  |  | ||||||
| 	chatplus.save() |  | ||||||
|  |  | ||||||
| 	return chatplus.players[name] |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function chatplus.register_handler(func,place) |  | ||||||
| 	if not place then |  | ||||||
| 		table.insert(chatplus._handlers, func) |  | ||||||
| 	else |  | ||||||
| 		table.insert(chatplus._handlers, place, func) |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| -- Allows overriding |  | ||||||
| function chatplus.log_message(from, msg) |  | ||||||
| 	chatplus.log("<" .. from .. "> " .. msg) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function chatplus.send(from, msg) |  | ||||||
| 	if msg:sub(1, 1) == "/" then |  | ||||||
| 		return false |  | ||||||
| 	end |  | ||||||
|  |  | ||||||
| 	chatplus.log_message(from, msg) |  | ||||||
|  |  | ||||||
| 	if #chatplus._handlers == 0 then |  | ||||||
| 		return nil |  | ||||||
| 	end |  | ||||||
|  |  | ||||||
| 	-- Loop through possible receivers |  | ||||||
| 	for to, value in pairs(minetest.get_connected_players()) do |  | ||||||
| 		if to ~= from then |  | ||||||
| 			-- Run handlers |  | ||||||
| 			local res = nil |  | ||||||
| 			for i = 1, #chatplus._handlers do |  | ||||||
| 				if chatplus._handlers[i] then |  | ||||||
| 					res = chatplus._handlers[i](from, to, msg) |  | ||||||
|  |  | ||||||
| 					if res ~= nil then |  | ||||||
| 						break |  | ||||||
| 					end |  | ||||||
| 				end |  | ||||||
| 			end |  | ||||||
|  |  | ||||||
| 			--[[ DON'T Send message |  | ||||||
| 			if res == nil or res == true then |  | ||||||
| 				minetest.chat_send_player(to, "<" .. from .. "> " .. msg) |  | ||||||
| 			end]] |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| 	return true |  | ||||||
| end |  | ||||||
|  |  | ||||||
|  |  | ||||||
| -- Minetest callbacks (modified for MFF) |  | ||||||
| minetest.register_on_chat_message(chatplus.send) |  | ||||||
|  |  | ||||||
| minetest.register_on_joinplayer(function(player) |  | ||||||
| 	chatplus.log(player:get_player_name() .. " joined") |  | ||||||
| end) |  | ||||||
| minetest.register_on_leaveplayer(function(player) |  | ||||||
| 	chatplus.poke(player:get_player_name(), "end") |  | ||||||
| 	chatplus.log(player:get_player_name() .. " disconnected") |  | ||||||
| end) |  | ||||||
| chatplus.init() |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| irc? |  | ||||||
| @@ -1,2 +0,0 @@ | |||||||
| Adds ignoring and email style inboxes. Also provides a powerful API, |  | ||||||
| and optionally allows distance limiting. |  | ||||||
| @@ -1,84 +0,0 @@ | |||||||
| -- Chat Plus |  | ||||||
| --    by rubenwardy |  | ||||||
| --------------------- |  | ||||||
| -- init.lua |  | ||||||
| -- Three handlers: ignoring, distance, and mail. |  | ||||||
| --------------------- |  | ||||||
|  |  | ||||||
| dofile(minetest.get_modpath("chatplus") .. "/api.lua") |  | ||||||
|  |  | ||||||
| -- |  | ||||||
| -- Ignoring |  | ||||||
| -- |  | ||||||
| chatplus.register_handler(function(from, to, msg) |  | ||||||
| 	if chatplus.players[to] and chatplus.players[to].ignore and chatplus.players[to].ignore[from] then |  | ||||||
| 		return false |  | ||||||
| 	end |  | ||||||
| 	return nil |  | ||||||
| end) |  | ||||||
|  |  | ||||||
| minetest.register_chatcommand("ignore", { |  | ||||||
| 	params = "name", |  | ||||||
| 	description = "ignore: Ignore a player", |  | ||||||
| 	func = function(name, param) |  | ||||||
| 		chatplus.poke(name) |  | ||||||
| 		if not chatplus.players[name].ignore[param] then |  | ||||||
| 			chatplus.players[name].ignore[param] = true |  | ||||||
| 			minetest.chat_send_player(name, param .. " has been ignored") |  | ||||||
| 			chatplus.save() |  | ||||||
| 		else |  | ||||||
| 			minetest.chat_send_player(name, "Player " .. param .. " is already ignored.") |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_chatcommand("unignore", { |  | ||||||
| 	params = "name", |  | ||||||
| 	description = "unignore: Unignore a player", |  | ||||||
| 	func = function(name, param) |  | ||||||
| 		chatplus.poke(name) |  | ||||||
| 		if chatplus.players[name].ignore[param] then |  | ||||||
| 			chatplus.players[name].ignore[param] = false |  | ||||||
| 			minetest.chat_send_player(name, param .. " has been unignored") |  | ||||||
| 			chatplus.save() |  | ||||||
| 		else |  | ||||||
| 			minetest.chat_send_player(name, "Player " .. param .. " is already unignored.") |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| -- |  | ||||||
| -- Distance |  | ||||||
| -- |  | ||||||
| chatplus.register_handler(function(from, to, msg) |  | ||||||
| 	local d = chatplus.setting("distance") |  | ||||||
| 	if d <= 0 then |  | ||||||
| 		return nil |  | ||||||
| 	end |  | ||||||
|  |  | ||||||
| 	local from_o = minetest.get_player_by_name(from) |  | ||||||
| 	local to_o = minetest.get_player_by_name(to) |  | ||||||
| 	if not from_o or not to_o then |  | ||||||
| 		return nil |  | ||||||
| 	end |  | ||||||
|  |  | ||||||
| 	return not d or vector.distance(from_o:getpos(), to_o:getpos()) <= tonumber(d) |  | ||||||
| end) |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| -- |  | ||||||
| -- Bad words |  | ||||||
| -- |  | ||||||
| chatplus.register_handler(function(from,to,msg) |  | ||||||
| 	local words = chatplus.setting("badwords"):split(",") |  | ||||||
| 	for _,v in pairs(words) do |  | ||||||
| 		if (v:trim()~="") and ( msg:find(v:trim(), 1, true) ~= nil ) then |  | ||||||
| 			minetest.chat_send_player(from, "Swearing is banned") |  | ||||||
| 			return false |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| 	return nil |  | ||||||
| end) |  | ||||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 161 B | 
		Reference in New Issue
	
	Block a user