#
################################################
### Managed by someone's ansible provisioner ###
################################################
# Part of: https://git.somenet.org/root/pub/somesible.git
# 2017-2025 by someone <someone@somenet.org>
#

/*
 * First, create the service.
 * Note that an easy way to rename this service is to define{} the client name to something else.
 */
service
{
	nick = "MemoServ"
	user = "memoserv"
	host = "services.host"
	gecos = "Memo Service"
	#modes = "+o"
}

/*
 * Core MemoServ module.
 *
 * Provides essential functionality for MemoServ.
 */
module
{
	name = "memoserv"
	client = "MemoServ"
	maxmemos = 128
	senddelay = 5s
}

/*
 * Core MemoServ commands.
 *
 * In Anope modules can provide (multiple) commands, each of which has a unique command name. Once these modules
 * are loaded you can then configure the commands to be added to any client you like with any name you like.
 *
 * Additionally, you may provide a permission name that must be in the opertype of users executing the command.
 *
 * Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior.
 */

/* Give it a help command. */
command { service = "MemoServ"; name = "HELP"; command = "generic/help"; }

/*
 * ms_cancel
 *
 * Provides the command memoserv/cancel.
 *
 * Used to cancel memos already sent but not yet read.
 */
module { name = "ms_cancel" }
command { service = "MemoServ"; name = "CANCEL"; command = "memoserv/cancel"; }

/*
 * ms_check
 *
 * Provides the command memoserv/check.
 *
 * Used to check if a sent memo has been read.
 */
module { name = "ms_check" }
command { service = "MemoServ"; name = "CHECK"; command = "memoserv/check"; }

/*
 * ms_del
 *
 * Provides the command memoserv/del.
 *
 * Used to delete your memos.
 */
module { name = "ms_del" }
command { service = "MemoServ"; name = "DEL"; command = "memoserv/del"; }

/*
 * ms_ignore
 *
 * Provides the command memoserv/ignore.
 *
 * Used to ignore memos from specific users.
 */
module { name = "ms_ignore" }
command { service = "MemoServ"; name = "IGNORE"; command = "memoserv/ignore"; }

/*
 * ms_info
 *
 * Provides the command memoserv/info.
 *
 * Used to show memo related information about an account or a channel.
 */
module { name = "ms_info" }
command { service = "MemoServ"; name = "INFO"; command = "memoserv/info"; }

/*
 * ms_list
 *
 * Provides the command memoserv/list.
 *
 * Used to list your current memos.
 */
module { name = "ms_list" }
command { service = "MemoServ"; name = "LIST"; command = "memoserv/list"; }

/*
 * ms_read
 *
 * Provides the command memoserv/read.
 *
 * Used to read your memos.
 */
module { name = "ms_read" }
command { service = "MemoServ"; name = "READ"; command = "memoserv/read"; }

/*
 * ms_rsend
 *
 * Provides the command memoserv/rsend.
 *
 * Used to send a memo requiring a receipt be sent back once it is read.
 *
 * Requires configuring memoserv:memoreceipt.
 */
#module
{
	name = "ms_rsend"

	/*
	 * Only allow Services Operators to use ms_rsend.
	 *
	 * This directive is optional.
	 */
	operonly = false
}
#command { service = "MemoServ"; name = "RSEND"; command = "memoserv/rsend"; }

/*
 * ms_send
 *
 * Provides the command memoserv/send.
 *
 * Used to send memos.
 */
module { name = "ms_send" }
command { service = "MemoServ"; name = "SEND"; command = "memoserv/send"; }

/*
 * ms_sendall
 *
 * Provides the command memoserv/sendall.
 *
 * Used to send a mass memo to every registered user.
 */
module { name = "ms_sendall" }
command { service = "MemoServ"; name = "SENDALL"; command = "memoserv/sendall"; permission = "memoserv/sendall"; }

/*
 * ms_set
 *
 * Provides the command memoserv/set.
 *
 * Used to set settings such as how you are notified of new memos, and your memo limit.
 */
module { name = "ms_set" }
command { service = "MemoServ"; name = "SET"; command = "memoserv/set"; }

/*
 * ms_staff
 *
 * Provides the command memoserv/staff.
 *
 * Used to send a memo to all registered staff members.
 */
module { name = "ms_staff" }
command { service = "MemoServ"; name = "STAFF"; command = "memoserv/staff"; permission = "memoserv/staff"; }