dev | ||
.luacheckrc | ||
api.lua | ||
chatcommand_add.lua | ||
chatcommand_copy.lua | ||
chatcommand_delete.lua | ||
chatcommand_help.lua | ||
chatcommand_list_all.lua | ||
chatcommand_list.lua | ||
chatcommand_say_all.lua | ||
chatcommand_say.lua | ||
chatcommands.lua | ||
config.lua | ||
globalsteps.lua | ||
init.lua | ||
initialize.lua | ||
internal.lua | ||
LICENSE | ||
mod.conf | ||
README.md | ||
screenshot.png | ||
settingtypes.txt | ||
setup.lua |
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.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.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
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
}
Those tickers sit in a table with id
as index:
{
1 = {ticker},
2 = {ticker},
["5"] = {ticker}
}
Chatcommands
/ticker_add message$frequency in seconds$runtime in seconds
Sends the message each frequency seconds for a maximum number of runtime seconds.
/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 ticker with ID to you.
/ticker_list_all
Lists all ticker to you.
/ticker_say ticker_id
Say the ticker with ID in main chat.
/ticker_say_all
Say all tickers in main chat.
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)
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)
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
- Code MIT AliasAlreadyTaken
- Screenshot CC0 Styxcolor
Thank you
- Styxcolor