Moved settings to a standalone file, ability to customize everything

master
SonoMichele 2021-01-25 22:17:58 +01:00
parent 7d9652bdc6
commit ddbb567b7a
3 changed files with 43 additions and 18 deletions

View File

@ -1,14 +1,14 @@
# BetterPM
BetterPM is a minetest mod that improves private messages.
BetterPM is a minetest mod that improves private messages. It is completely customizable but also ready to use.
## Config
- You can customize message text color by changing `msg_color` value, default is white.
- You can customize prefix color by changing `prefix_color` value, default is white.
- You can customize the prefix text and you can use placeholders (`{sender}` and `{target}`):
- `senderPrefix` is the prefix that is shown to who sends the message.
- `targetPrefix` is the prefix that is shown to who receives the message.
All these values can be changed in the file `settings.lua`
- `target` represents who receives the message, `sender` represents who sends the message.
- You can customize message text color by changing `targetMsgColor` and `senderMsgColor`.
- You can customize prefix color by changing `targetPrefixColor` and `senderPrefixColor`.
- You can customize the prefix text by changing `targetPrefix` and `senderPrefix`. You can use `{target}` and `{sender}` placeholders to respectively represent the target and the sender names.
## Usage

View File

@ -1,14 +1,11 @@
local prefix_color = "#ffffff" -- use a color hex to change the color of private messages prefix
local msg_color = "#ffffff" -- use a color hex to change the color of private messages
-- {target} is who receives the message, {sender} is who sends the message
local senderPrefix = "[You -> {target}] " -- the sender will see this
local targetPrefix = "[{sender} -> You] " -- the target will receive this
dofile(minetest.get_modpath("betterpm") .. "/chatcmdbuilder.lua")
betterpm = {}
local modpath = minetest.get_modpath("betterpm")
local reply_to = {}
dofile(modpath .. "/settings.lua")
dofile(modpath .. "/chatcmdbuilder.lua")
local function formatPrefix(prefix, sender, target)
local res, _ = prefix:gsub("{sender}", sender)
res, _ = res:gsub("{target}", target)
@ -19,8 +16,12 @@ end
local function sendMessage(sender, target, message)
reply_to[sender] = target
reply_to[target] = sender
minetest.chat_send_player(target, minetest.colorize(prefix_color, formatPrefix(targetPrefix, sender, target) .. minetest.colorize(msg_color, message)))
minetest.chat_send_player(sender, minetest.colorize(prefix_color, formatPrefix(senderPrefix, sender, target) .. minetest.colorize(msg_color, message)))
minetest.chat_send_player(target,
minetest.colorize(betterpm.targetPrefixColor, formatPrefix(betterpm.targetPrefix, sender, target) ..
minetest.colorize(betterpm.targetMsgColor, message)))
minetest.chat_send_player(sender,
minetest.colorize(betterpm.senderPrefixColor, formatPrefix(betterpm.senderPrefix, sender, target) ..
minetest.colorize(betterpm.senderMsgColor, message)))
end
ChatCmdBuilder.new("msg", function(cmd)
@ -45,8 +46,12 @@ ChatCmdBuilder.new("r", function(cmd)
cmd:sub(":message:text", function (sender, message)
if reply_to[sender] ~= nil then
reply_to[reply_to[sender]] = sender
minetest.chat_send_player(reply_to[sender], minetest.colorize(prefix_color, formatPrefix(targetPrefix, sender, reply_to[sender]) .. minetest.colorize(msg_color, message)))
minetest.chat_send_player(sender, minetest.colorize(prefix_color, formatPrefix(senderPrefix, sender, reply_to[sender]) .. minetest.colorize(msg_color, message)))
minetest.chat_send_player(reply_to[sender],
minetest.colorize(betterpm.targetPrefixColor, formatPrefix(betterpm.targetPrefix, sender, reply_to[sender]) ..
minetest.colorize(betterpm.targetMsgColor, message)))
minetest.chat_send_player(sender,
minetest.colorize(betterpm.senderPrefixColor, formatPrefix(betterpm.senderPrefix, sender, reply_to[sender]) ..
minetest.colorize(betterpm.senderMsgColor, message)))
else
minetest.chat_send_player(sender, "You must write to someone before replying. Use /msg <name> <message>")
end

20
settings.lua Normal file
View File

@ -0,0 +1,20 @@
-- use hex codes for colors
-- protip: if you want to use the same color in multiple places you could create
-- a variable and do it like this:
-- local myColor = "#a5cbf8"
-- and then use it where you want this color like this:
-- betterpm.senderPrefixColor = myColor
-- you don't have to use "--" otherwise it will be a comment and won't work
-- if you want a different color for everything you don't need to create variables, just put values
local senderColor = "#d8dee9" -- nord4 from nordtheme.com
local targetColor = "#ebcb8b" -- nord13 from nordtheme.com
betterpm.senderPrefixColor = senderColor
betterpm.targetPrefixColor = targetColor
betterpm.senderMsgColor = senderColor
betterpm.targetMsgColor = targetColor
-- {target} is who receives the message, {sender} is who sends the message
betterpm.senderPrefix = "[You -> {target}] " -- the sender will see this
betterpm.targetPrefix = "[{sender} -> You] " -- the target will receive this