diff --git a/README.md b/README.md index 102ff8e..ae3623b 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/init.lua b/init.lua index dff5f29..25ecdf3 100644 --- a/init.lua +++ b/init.lua @@ -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 ") end diff --git a/settings.lua b/settings.lua new file mode 100644 index 0000000..a96910c --- /dev/null +++ b/settings.lua @@ -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