yl_ticker 🔗
Purpose 🔗
This mod allows you to send messages to your players in an interval.
Download 🔗
Get it from https://gitea.your-land.de/your-land/yl_ticker
Installation 🔗
- Copy the "yl_ticker" folder to your mod directory.
- Enable the mod in your world.mt file.
Configuration 🔗
yl_ticker.debug = false
Set to true to enable debug mode
yl_ticker.save_path
Set this to where in the worldfolder you want the JSON files stored.
yl_ticker.chatcommand_domain
Set this to what the chatcommand should start with. Default is ticker, so chatcommands start with /ticker_
but if you set it to "towncrier", chatcommands will start with /towncrier_
yl_ticker.colour
Set this to the colour you want the ticker have in chat
yl_ticker.frequency
Set this to the default repeat timer you want the ticker have in chat. 3600 means "once per hour"
yl_ticker.examples
Set this to what the examples command should display. Break line with
yl_ticker.user_privs
yl_ticker.admin_privs
Set those to the list of privs you want to allow the execution of the corresponding commands:
yl_ticker.user_privs allows
- listing single ticker
- copy single ticker
- listing all tickers
- Show help
- Show examples
yl_ticker.admin_privs allows
- listing single ticker
- copy single ticker
- listing all tickers
- add ticker
- delete ticker
- say ticker to main chat
- say all tickers to main chat
Usage 🔗
This mod targets servers, but should work in singleplayer, too. It comes with no direct content but exposes functions you can use in your mod.
Data structure 🔗
One ticker consists of an id, a message, an owner, a runtime and a frequency. Example:
{
id = 1,
creation_date = os.time(),
message = "[EVENT] Don't forget to join the event tonight!",
owner = "Admin",
runtime = 1000000,
frequency = 3600,
param = "[EVENT] Don't forget to join the event tonight!$3600$1000000"
}
Those tickers sit in a table with id
as index:
{
1 = {ticker},
2 = {ticker},
[5] = {ticker}
}
Chatcommands 🔗
/ticker_add message$frequency in seconds/minutes/hours/days/weeks$runtime in seconds/minutes/hours/days/weeks/utc
Sends the message each frequency for runtime or until timestamp.
Time distances may be given as 60s
or 60 s
, allowed units are s = second, m = minute, h = hour, d = day and w = week.
Runtime may also be given as an enddate in utc timestamp 1704117600utc
or 1704117600 utc
/ticker_copy ticker_id
Open the ticker with ID in a formspec, so it can be copied.
/ticker_delete ticker_id
Delete the ticker ID.
/ticker_list
List attributes of ticker with ID to you.
/ticker_list_all
Lists all tickers to you.
/ticker_say ticker_id
Say the ticker with ID in main chat.
/ticker_say_all
Say all tickers in main chat.
/ticker_help
Displays a help overview of all ticker-related commands
/ticker_examples
Shows a formspec with (configurable) examples people can copy out of
Modmakers 🔗
Use the following public functions to get, set, list and remove ticker
yl_ticker.get(ticker_id)
Returns a table with the values of this ticker_id. Returns nil
, if it does not exist. Returns false, "errormessage"
if an error occurred.
yl_ticker.set(message, frequency, runtime, owner, param)
Adds this ticker to the list and returns true, ticker_id
if accepted, false, "errormessage"
if not.
yl_ticker.formspec(ticker_id)
Returns true, formspecstring
if a ticker was found, with formspecstring including the /ticker_add
string, so it can be easily copied from. Returns false, errormessage
if an error occurred.
yl_ticker.delete(ticker_id)
Returns true, {ticker}
if one ticker was successfully removed, false, "errormessage"
otherwise.
yl_ticker.list()
Returns true, { id = {ticker}, ... }
if one or more ticker were found or false, {}
if none were found.
yl_ticker.say(ticker_id, target)
Returns true, {ticker}
if one ticker was found or false, {}
if none were found.
Limitations 🔗
- No colours
- No tags like [EVENT]
Alternatives 🔗
- For immediate one-time ticker, use the notification mod
- For future one-time ticker, use the yl_scheduler mod
Supported versions 🔗
If you run yl_ticker, but something is wrong, please file a bug. PRs also welcome.
There is no reason to believe it doesn't work anywhere, but you never know.
Allied projects 🔗
If you know a project that uses this mod tell us and we will add it to the list.
Uninstall 🔗
Remove it from your mod folder or deactivate it in your world.mt
Mods that depend on it will cease to work, if the mod is removed without proper replacement.
License 🔗
See LICENSE.md
- Code MIT AliasAlreadyTaken
- Screenshot CC0 Styxcolor
Thank you 🔗
- Styxcolor