Skip to content

Commit a2ce5cf

Browse files
committed
fix error on new mt ver, fixes #11
1 parent 4fbad56 commit a2ce5cf

File tree

3 files changed

+76
-26
lines changed

3 files changed

+76
-26
lines changed

LICENSE.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2018 muhdnurhidayat MNH48 <mnh48mail@gmail.com>
3+
Copyright (c) 2018 Yaya MNH48 <minetest@mnh48.moe>
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Unicode Parser
2-
[![License: MIT](https://img.shields.io/github/license/MuhdNurHidayat/unicodeparser.svg?label=License&style=flat-square)](https://github.com/MuhdNurHidayat/unicodeparser/blob/master/LICENSE.txt) ![GitHub repo size](https://img.shields.io/github/repo-size/MuhdNurHidayat/unicodeparser.svg?label=Repo%20size&style=flat-square) [![GitHub opened issues](https://img.shields.io/github/issues/MuhdNurHidayat/unicodeparser.svg?label=Issues&style=flat-square)](https://github.com/MuhdNurHidayat/unicodeparser/issues?q=is%3Aopen+is%3Aissue) [![GitHub closed issues](https://img.shields.io/github/issues-closed/MuhdNurHidayat/unicodeparser.svg?label=Issues&style=flat-square)](https://github.com/MuhdNurHidayat/unicodeparser/issues?q=is%3Aissue+is%3Aclosed) [![Current version](https://img.shields.io/github/release/MuhdNurHidayat/unicodeparser.svg?label=Current%20version&style=flat-square)](https://github.com/MuhdNurHidayat/unicodeparser/releases/latest) [![GitHub Release Date](https://img.shields.io/github/release-date/MuhdNurHidayat/unicodeparser.svg?label=Latest%20release&style=flat-square)](https://github.com/MuhdNurHidayat/unicodeparser/releases/latest) [![Minetest CSM](https://img.shields.io/badge/Minetest-Client%20Side%20Mod-orange.svg?style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIiIGhlaWdodD0iNjgiIHZpZXdCb3g9IjAgMCA3MiA2OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMSAyOS40MDM1VjQ4LjM0MDRMMzUuODE2IDY3LjQyMUw3MC42MzMgNDcuODU3OVYyOS43MTQ2TDM1LjQ4NSAxMC40NjY2TDEgMjkuNDAzNVoiIGZpbGw9IiNFOUI5NkUiIHN0cm9rZT0iIzU3M0EwRCIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIvPjxwYXRoIGQ9Ik05LjM0OTAyIDQzLjQzOTZMNi4wMzMwMiA0MS41NDU5VjUxLjAxMjVMMjMuOTM5IDYwLjk1MlY1Ny43OTM2TDIxLjEyMSA1Ni4yMTU5VjUzLjA2MzJMMTcuNjM5IDUxLjE2OTVWNDQuODU5NEw5LjM0OTAyIDQwLjI4NDFWNDMuNDM5NloiIGZpbGw9IiMyRTM0MzYiIHN0cm9rZT0iIzJFMzQzNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTYuNjk3MDIgNTEuNDg2NEwxMi40OTcgNDguMzMwOUwxOC4yOTcgNTEuNDg2NEwyMC45NSA1Mi45MDYyVjU2LjA2MTdMMjQuMjY2IDU3Ljk1NTRWNjEuMTEwOUw2LjY5NzAyIDUxLjQ4NjRaIiBmaWxsPSIjNTU1NzUzIiBzdHJva2U9IiMyRTM0MzYiLz48cGF0aCBkPSJNMzguMzYzIDI0LjY2NTRMNDcuNDgyIDI5LjcxMzdWMzIuODY5Mkw1OC40MjQgMzguODY0M0w2NC4yMjQgMzUuNzA4OEw3MC42OSAzMi4wODAzVjI5LjcxMzdMNDkuODAzIDE4LjM1NDRMMzguMzYzIDI0LjY2NTRaIiBmaWxsPSIjRkNFOTRGIiBzdHJva2U9IiM2MjU4MDIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0zNi4zNzMgMjMuNTYxNkw1MC43OTcgMTUuNjcyOFYxOC44MjgzTDM2LjM3MyAyNi43MTYyVjIzLjU2MTZaIiBmaWxsPSIjRTlCOTZFIiBzdHJva2U9IiM1NzNBMEQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0zOC4zNiA4Ljg4ODc5TDEuMDYgMjkuMzk4N0wyNC4yNzEgNDIuMTc3OEw0Ny40ODIgMjkuNzExOEwzNi4zNzQgMjMuNTYxNkw1MC43OTggMTUuNjcyOEwzOC4zNiA4Ljg4ODc5WiIgZmlsbD0iIzczRDIxNiIgc3Ryb2tlPSIjMzI1QjA5IiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PHBhdGggZD0iTTI0LjI3MSA0NS4zMzUyVjQ4LjQ5MDdMMjYuOTI0IDQ5LjkxMDVWNTMuMDY2TDM1Ljg3NyA1Ny45NTczTDU1Ljc3MSA0Ni43NTMxVjQzLjQzOTZMNTkuMDg3IDQxLjU0NTlWMzkuMTgwMkw0Ny40ODIgMzIuODY5MkwyNC4yNzEgNDUuMzM1MloiIGZpbGw9IiM3MjlGQ0YiIHN0cm9rZT0iIzE5MzE0QiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggb3BhY2l0eT0iMC4zIiBkPSJNMTguMzAyIDI2LjI0MzJMMjkuNzQyIDMyLjU1NDJMMTguMzAyIDM4Ljg2NDNMNi44NjIgMzIuNTU0MkwxOC4zMDIgMjYuMjQzMloiIGZpbGw9IiMyRTM0MzYiLz48cGF0aCBkPSJNMTUuMzc3IDMwLjk3NTVMMTguMTk1IDMyLjU1MzNMMjEuMDEzIDMwLjk3NTVWMjEuNTA5OUwxOC4xOTUgMTkuOTMyMkwxNS4zNzcgMjEuNTA5OVYzMC45NzY1VjMwLjk3NTVaIiBmaWxsPSIjQzE3RDExIiBzdHJva2U9IiM4RjU5MDIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik02LjA5MzAyIDE5LjYxNzJMMTguMTkzIDI2LjI0MzJMMjkuMTM1IDIwLjI0ODFWNy4xNTMwN0wxOC4xOTMgMUw2LjA5MzAyIDcuNjI2MDJWMTkuNjE2MlYxOS42MTcyWiIgZmlsbD0iIzRFOUEwNiIgc3Ryb2tlPSIjMzE2MDA0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBvcGFjaXR5PSIwLjMiIGQ9Ik01OC41MDQgMjYuMjQzMkw2Ny4xMjUgMzAuOTc2NUw1OC41MDQgMzUuNzA5N0w0OS44ODMgMzAuOTc2NUw1OC41MDQgMjYuMjQzMloiIGZpbGw9IiMyRTM0MzYiLz48cGF0aCBkPSJNNTUuNzQ1IDMxLjEzMzVMNTguMzk4IDMyLjU1MzNMNjAuNzE5IDMxLjI5MTVWMTguMDM4NUw1OC4zOTggMTYuNzc2Nkw1NS43NDUgMTguNTEyNFYzMS4xMzM1WiIgZmlsbD0iIzRFOUEwNiIgc3Ryb2tlPSIjMzE2MDA0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNMTUuMzE3IDQ2Ljc1MzFMMTMuOTkxIDQ1Ljk2NDIiIHN0cm9rZT0iI0VGMjkyOSIgc3Ryb2tlLXdpZHRoPSIwLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjAuNSAwLjUiLz48cGF0aCBkPSJNNzAuNjkyIDM2LjgxMzZMNjQuMDYgNDAuNDQyMVY0Mi4wMTk4TDYwLjc0NCA0My45MTM1VjQ3LjA2OUw1Ny40MjkgNDguOTYxOFY1NS4yNzQ3TDcwLjY5MiA0OC4wMTc4VjM2LjgxMzZaIiBmaWxsPSIjODg4QTg1IiBzdHJva2U9IiMyRTM0MzYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==)](https://forum.minetest.net/viewtopic.php?f=53&t=20003)
2+
[![License: MIT](https://img.shields.io/github/license/mnh48-minetest/unicodeparser.svg?label=License&style=flat-square)](https://github.com/mnh48-minetest/unicodeparser/blob/master/LICENSE.txt) ![GitHub repo size](https://img.shields.io/github/repo-size/mnh48-minetest/unicodeparser.svg?label=Repo%20size&style=flat-square) [![GitHub opened issues](https://img.shields.io/github/issues/mnh48-minetest/unicodeparser.svg?label=Issues&style=flat-square)](https://github.com/mnh48-minetest/unicodeparser/issues?q=is%3Aopen+is%3Aissue) [![GitHub closed issues](https://img.shields.io/github/issues-closed/mnh48-minetest/unicodeparser.svg?label=Issues&style=flat-square)](https://github.com/mnh48-minetest/unicodeparser/issues?q=is%3Aissue+is%3Aclosed) [![Current version](https://img.shields.io/github/release/mnh48-minetest/unicodeparser.svg?label=Current%20version&style=flat-square)](https://github.com/mnh48-minetest/unicodeparser/releases/latest) [![GitHub Release Date](https://img.shields.io/github/release-date/mnh48-minetest/unicodeparser.svg?label=Latest%20release&style=flat-square)](https://github.com/mnh48-minetest/unicodeparser/releases/latest) [![Minetest CSM](https://img.shields.io/badge/Minetest-Client%20Side%20Mod-orange.svg?style=flat-square&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNzIiIGhlaWdodD0iNjgiIHZpZXdCb3g9IjAgMCA3MiA2OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMSAyOS40MDM1VjQ4LjM0MDRMMzUuODE2IDY3LjQyMUw3MC42MzMgNDcuODU3OVYyOS43MTQ2TDM1LjQ4NSAxMC40NjY2TDEgMjkuNDAzNVoiIGZpbGw9IiNFOUI5NkUiIHN0cm9rZT0iIzU3M0EwRCIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIvPjxwYXRoIGQ9Ik05LjM0OTAyIDQzLjQzOTZMNi4wMzMwMiA0MS41NDU5VjUxLjAxMjVMMjMuOTM5IDYwLjk1MlY1Ny43OTM2TDIxLjEyMSA1Ni4yMTU5VjUzLjA2MzJMMTcuNjM5IDUxLjE2OTVWNDQuODU5NEw5LjM0OTAyIDQwLjI4NDFWNDMuNDM5NloiIGZpbGw9IiMyRTM0MzYiIHN0cm9rZT0iIzJFMzQzNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTYuNjk3MDIgNTEuNDg2NEwxMi40OTcgNDguMzMwOUwxOC4yOTcgNTEuNDg2NEwyMC45NSA1Mi45MDYyVjU2LjA2MTdMMjQuMjY2IDU3Ljk1NTRWNjEuMTEwOUw2LjY5NzAyIDUxLjQ4NjRaIiBmaWxsPSIjNTU1NzUzIiBzdHJva2U9IiMyRTM0MzYiLz48cGF0aCBkPSJNMzguMzYzIDI0LjY2NTRMNDcuNDgyIDI5LjcxMzdWMzIuODY5Mkw1OC40MjQgMzguODY0M0w2NC4yMjQgMzUuNzA4OEw3MC42OSAzMi4wODAzVjI5LjcxMzdMNDkuODAzIDE4LjM1NDRMMzguMzYzIDI0LjY2NTRaIiBmaWxsPSIjRkNFOTRGIiBzdHJva2U9IiM2MjU4MDIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0zNi4zNzMgMjMuNTYxNkw1MC43OTcgMTUuNjcyOFYxOC44MjgzTDM2LjM3MyAyNi43MTYyVjIzLjU2MTZaIiBmaWxsPSIjRTlCOTZFIiBzdHJva2U9IiM1NzNBMEQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0zOC4zNiA4Ljg4ODc5TDEuMDYgMjkuMzk4N0wyNC4yNzEgNDIuMTc3OEw0Ny40ODIgMjkuNzExOEwzNi4zNzQgMjMuNTYxNkw1MC43OTggMTUuNjcyOEwzOC4zNiA4Ljg4ODc5WiIgZmlsbD0iIzczRDIxNiIgc3Ryb2tlPSIjMzI1QjA5IiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PHBhdGggZD0iTTI0LjI3MSA0NS4zMzUyVjQ4LjQ5MDdMMjYuOTI0IDQ5LjkxMDVWNTMuMDY2TDM1Ljg3NyA1Ny45NTczTDU1Ljc3MSA0Ni43NTMxVjQzLjQzOTZMNTkuMDg3IDQxLjU0NTlWMzkuMTgwMkw0Ny40ODIgMzIuODY5MkwyNC4yNzEgNDUuMzM1MloiIGZpbGw9IiM3MjlGQ0YiIHN0cm9rZT0iIzE5MzE0QiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggb3BhY2l0eT0iMC4zIiBkPSJNMTguMzAyIDI2LjI0MzJMMjkuNzQyIDMyLjU1NDJMMTguMzAyIDM4Ljg2NDNMNi44NjIgMzIuNTU0MkwxOC4zMDIgMjYuMjQzMloiIGZpbGw9IiMyRTM0MzYiLz48cGF0aCBkPSJNMTUuMzc3IDMwLjk3NTVMMTguMTk1IDMyLjU1MzNMMjEuMDEzIDMwLjk3NTVWMjEuNTA5OUwxOC4xOTUgMTkuOTMyMkwxNS4zNzcgMjEuNTA5OVYzMC45NzY1VjMwLjk3NTVaIiBmaWxsPSIjQzE3RDExIiBzdHJva2U9IiM4RjU5MDIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjxwYXRoIGQ9Ik02LjA5MzAyIDE5LjYxNzJMMTguMTkzIDI2LjI0MzJMMjkuMTM1IDIwLjI0ODFWNy4xNTMwN0wxOC4xOTMgMUw2LjA5MzAyIDcuNjI2MDJWMTkuNjE2MlYxOS42MTcyWiIgZmlsbD0iIzRFOUEwNiIgc3Ryb2tlPSIjMzE2MDA0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBvcGFjaXR5PSIwLjMiIGQ9Ik01OC41MDQgMjYuMjQzMkw2Ny4xMjUgMzAuOTc2NUw1OC41MDQgMzUuNzA5N0w0OS44ODMgMzAuOTc2NUw1OC41MDQgMjYuMjQzMloiIGZpbGw9IiMyRTM0MzYiLz48cGF0aCBkPSJNNTUuNzQ1IDMxLjEzMzVMNTguMzk4IDMyLjU1MzNMNjAuNzE5IDMxLjI5MTVWMTguMDM4NUw1OC4zOTggMTYuNzc2Nkw1NS43NDUgMTguNTEyNFYzMS4xMzM1WiIgZmlsbD0iIzRFOUEwNiIgc3Ryb2tlPSIjMzE2MDA0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48cGF0aCBkPSJNMTUuMzE3IDQ2Ljc1MzFMMTMuOTkxIDQ1Ljk2NDIiIHN0cm9rZT0iI0VGMjkyOSIgc3Ryb2tlLXdpZHRoPSIwLjUiIHN0cm9rZS1kYXNoYXJyYXk9IjAuNSAwLjUiLz48cGF0aCBkPSJNNzAuNjkyIDM2LjgxMzZMNjQuMDYgNDAuNDQyMVY0Mi4wMTk4TDYwLjc0NCA0My45MTM1VjQ3LjA2OUw1Ny40MjkgNDguOTYxOFY1NS4yNzQ3TDcwLjY5MiA0OC4wMTc4VjM2LjgxMzZaIiBmaWxsPSIjODg4QTg1IiBzdHJva2U9IiMyRTM0MzYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIvPjwvc3ZnPg==)](https://forum.minetest.net/viewtopic.php?f=53&t=20003)
33

44
## What is Unicode Parser
55
Unicode Parser `unicodeparser` is a client-side mod (CSM) for [Minetest](https://www.minetest.net).
@@ -58,15 +58,33 @@ CLI version and as workaround of paste problem:
5858
- Include translation support (which seems to be impossible right now because CSM can't access other files)
5959

6060

61+
## It does not work!
62+
63+
### Chat appear as empty or as boxes
64+
65+
Please change your Minetest font to something that actually have support for language you're using, for example, change it to [Noto Sans CJK JP](https://www.google.com/get/noto/#noto-sans-jpan) if you're writing Japanese.
66+
67+
68+
### It says "Character conversion failed!"
69+
70+
The server is running as ASCII or other non-Unicode locale, there's nothing you can do to fix this.
71+
72+
6173
## License
6274

63-
(C) muhdnurhidayat (MNH48.com) and contributors
75+
(C) Yaya MNH48 and contributors
6476

6577
Licensed under The MIT License, see [LICENSE.txt](/LICENSE.txt "The MIT License").
6678

6779

6880
## Changelog
6981

82+
### v1.3
83+
84+
- Fix for Minetest 5.3.0
85+
- Add error message for servers that restricted usage of CSM that sends chat messages
86+
87+
7088
### v1.2
7189

7290
- The tool now convert the codepoint when you press enter after writing the text, so you don't need to click the button "Convert" anymore, but the button is still there for compatibility reasons.

init.lua

Lines changed: 55 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
| | | | | | | |\ \ ____| | | |___ | |\ \
1313
|_| |_| |_| |_| \_\ |______/ |_____| |_| \_\
1414
15-
written by (C) 2018 muhdnurhidayat (MNH48.com) and contributors
15+
written by (C) 2018 Yaya MNH48 and contributors
1616
released under The MIT License
1717
--]]
1818

@@ -22,7 +22,7 @@ local texttemp = "" -- declare as empty string
2222
local serverprotocol -- declare the name without type
2323

2424
-- on connect to server, gets server protocol version
25-
minetest.register_on_connect(function()
25+
minetest.register_on_mods_loaded(function()
2626
serverprotocol = minetest.get_server_info().protocol_version
2727
end)
2828

@@ -32,7 +32,7 @@ minetest.register_chatcommand("uc", {
3232
description = "Directly convert and send out converted unicode escape.",
3333
func = function(param)
3434
texttemp = string.gsub(param, "\\u", "\\0x")
35-
sendForProcess(texttemp)
35+
sendForProcess(texttemp,"cli")
3636
end
3737
})
3838

@@ -50,32 +50,39 @@ minetest.register_chatcommand("ug", {
5050

5151
-- define what to do when gui accepted input
5252
minetest.register_on_formspec_input(function(formname, fields)
53-
if formname ~= "unicodeparser:upgui" then
53+
if formname == "unicodeparser:upgui" then
54+
texttemp = string.gsub(fields.text, "\\u", "\\0x")
55+
sendForProcess(texttemp, "gui")
56+
elseif formname == "unicodeparser:uperr" then
5457
return false
58+
else
59+
return true
5560
end
56-
texttemp = string.gsub(fields.text, "\\u", "\\0x")
57-
sendForProcess(texttemp)
5861
end)
5962

6063
-- parse the input escaped strings
61-
function sendForProcess(texts)
64+
function sendForProcess(texts,interface)
6265
local allinput=half(texts,"\\")
63-
64-
local toProcess = {}
65-
if allinput == nil then
66-
return false
67-
else
68-
for i,line in ipairs(allinput) do
69-
local lineTemp = utf8(tonumber(line))
70-
table.insert(toProcess,lineTemp)
71-
end
72-
local finalOut = table.concat(toProcess)
73-
if serverprotocol < 32 then
74-
minetest.display_chat_message("You wrote: "..finalOut)
66+
if checkMessagePermission() == true then
67+
displayError(interface,"Unfortunately, this server does not allow you to send chat message using CSM, so this mod will not work.")
68+
else
69+
local toProcess = {}
70+
if allinput == nil then
71+
displayError(interface,"Please input some text!")
72+
return false
73+
else
74+
for i,line in ipairs(allinput) do
75+
local lineTemp = utf8(tonumber(line))
76+
table.insert(toProcess,lineTemp)
77+
end
78+
local finalOut = table.concat(toProcess)
79+
if serverprotocol < 32 then
80+
minetest.display_chat_message("You wrote: "..finalOut)
81+
end
82+
minetest.send_chat_message(finalOut)
83+
return true
7584
end
76-
minetest.send_chat_message(finalOut)
77-
return true
78-
end
85+
end
7986
end
8087

8188
-- split the input escaped strings
@@ -123,7 +130,32 @@ do
123130
end
124131
end
125132

133+
-- check if server allow sending message from CSM
134+
function checkMessagePermission()
135+
local restr = minetest.get_csm_restrictions()["chat_messages"]
136+
return restr
137+
end
138+
139+
-- display error according to message interface
140+
function displayError(interface,text)
141+
if interface == "cli" then
142+
print("[unicodeparser] ERROR: "..text)
143+
elseif interface == "gui" then
144+
minetest.after(1, showGui, text)
145+
else
146+
return false
147+
end
148+
end
149+
150+
-- show the actual GUI
151+
function showGui(text)
152+
minetest.show_formspec("unicodeparser:guierr",
153+
"size[6,6]"..
154+
"label[2.5,1;".."ERROR".."]"..
155+
"textarea[1,2;5,4;;"..text..";]"..
156+
"button_exit[2,5;2,1;ok;OK]")
157+
end
158+
126159
-- log the CSM
127160
local msg = "[unicodeparser] CSM loaded."
128161
minetest.log("info", msg)
129-

0 commit comments

Comments
 (0)