## Lua chatbox

The Lua scripting language allows you to give your plugin more advanced features.

Moderator: Plugin Moderators

Jeremiah Stephens
Metropolitan
Reactions:
Posts: 131
Joined: Thu Jan 30, 2020 16:56
Plugins: Show

### Re: Lua chatbox

Screenshot_20201022-205028_TheoTown.png (31.95 KiB) Viewed 719 times

rjroldan1
Inhabitant of a Megalopolis
Reactions:
Posts: 644
Joined: Mon Jul 17, 2017 16:16
Location: Philippines
Plugins: Show
Contact:

### Re: Lua chatbox

Check Gui Compendium @Jeremiah Stephens

.╔═╗─────────────╔╗────────
║╬║─╔╗╔╦╗╔═╗╔╗─╔╝║╔═╗─╔═╦╗
║╗╣─╠╣║╔╝║╬║║╚╗║╬║║╬╚╗║║║║
╚╩╝╔╝║╚╝─╚═╝╚═╝╚═╝╚══╝╚╩═╝
───╚═╝────────────────────
T.P.C.
Theotown Philippine Corporation

rjroldan1
Inhabitant of a Megalopolis
Reactions:
Posts: 644
Joined: Mon Jul 17, 2017 16:16
Location: Philippines
Plugins: Show
Contact:

### Re: Lua chatbox

@Lobby is there any Runtime modules that detects user inputs in all Textfields?

im making a text sensor that will censored all inappropriate words that the user used, this will be nice addon for the game if you want too

.╔═╗─────────────╔╗────────
║╬║─╔╗╔╦╗╔═╗╔╗─╔╝║╔═╗─╔═╦╗
║╗╣─╠╣║╔╝║╬║║╚╗║╬║║╬╚╗║║║║
╚╩╝╔╝║╚╝─╚═╝╚═╝╚═╝╚══╝╚╩═╝
───╚═╝────────────────────
T.P.C.
Theotown Philippine Corporation

Lobby
Developer
Reactions:
Posts: 3629
Joined: Sun Oct 26, 2008 12:34
Plugins: Show
Version: Beta

### Re: Lua chatbox

I'm afraid there's no mechanism to do that.
=^._.^= ∫

ian
Townsman
Reactions:
Posts: 87
Joined: Sat Apr 04, 2020 17:36
Location: Indonesien
Plugins: Show
Version: Beta

### Re: Lua chatbox

i think you can use string.gmatch and table of the "words" you want to censor.

rjroldan1
Inhabitant of a Megalopolis
Reactions:
Posts: 644
Joined: Mon Jul 17, 2017 16:16
Location: Philippines
Plugins: Show
Contact:

### Re: Lua chatbox

ian wrote:
Wed Nov 18, 2020 12:24
i think you can use string.gmatch and table of the "words" you want to censor.
I used string.gsub and works but can only censor Author name and City name :/

.╔═╗─────────────╔╗────────
║╬║─╔╗╔╦╗╔═╗╔╗─╔╝║╔═╗─╔═╦╗
║╗╣─╠╣║╔╝║╬║║╚╗║╬║║╬╚╗║║║║
╚╩╝╔╝║╚╝─╚═╝╚═╝╚═╝╚══╝╚╩═╝
───╚═╝────────────────────
T.P.C.
Theotown Philippine Corporation

DESOLAN
Villager
Reactions:
Posts: 21
Joined: Sat Jan 25, 2020 6:19
Location: Philippines
Plugins: Show
Version: Beta

### Re: Lua chatbox

Can i use lua to make fence animation?

KINGTUT10101
1,000,000 inhabitants
Reactions:
Posts: 2103
Joined: Thu Jul 07, 2016 22:50
Location: 'Merica
Plugins: Show
Version: Beta
Contact:

### Re: Lua chatbox

I'm sorry for bother you Lua experts lately, but could you tell me how I could get a sidebar button to open the building tool for an item with the ID "test.kt101"? I haven't been able to find any documentation or examples of it.

rjroldan1
Inhabitant of a Megalopolis
Reactions:
Posts: 644
Joined: Mon Jul 17, 2017 16:16
Location: Philippines
Plugins: Show
Contact:

### Re: Lua chatbox

KINGTUT10101 wrote:
Wed Dec 23, 2020 23:33
I'm sorry for bother you Lua experts lately, but could you tell me how I could get a sidebar button to open the building tool for an item with the ID test.kt101"? I haven't been able to find any documentation or examples of it.
Here refering from GUI compedium

Code: Select all    Reset

function script:buildCityGUI()
-- Let's append the button to the sidebar line
local sidebar = GUI.get('sidebarLine')
local size = sidebar:getFirstPart():getChild(2):getWidth()
width = size,
height = size,
icon = Icon.OK,
frameDefault = Icon.NP_BLUE_BUTTON,
frameDown = Icon.NP_BLUE_BUTTON_PRESSED,
onClick = function() City.createDraftDrawer("test.kt101")end
}
end

Interactive Lua editor

.╔═╗─────────────╔╗────────
║╬║─╔╗╔╦╗╔═╗╔╗─╔╝║╔═╗─╔═╦╗
║╗╣─╠╣║╔╝║╬║║╚╗║╬║║╬╚╗║║║║
╚╩╝╔╝║╚╝─╚═╝╚═╝╚═╝╚══╝╚╩═╝
───╚═╝────────────────────
T.P.C.
Theotown Philippine Corporation

KINGTUT10101
1,000,000 inhabitants
Reactions:
Posts: 2103
Joined: Thu Jul 07, 2016 22:50
Location: 'Merica
Plugins: Show
Version: Beta
Contact:

### Re: Lua chatbox

Gosh darn undocumented functions. Thank you for the help.

rjroldan1
Inhabitant of a Megalopolis
Reactions:
Posts: 644
Joined: Mon Jul 17, 2017 16:16
Location: Philippines
Plugins: Show
Contact:

### Re: Lua chatbox

KINGTUT10101 wrote:
Sat Dec 26, 2020 0:42
Gosh darn undocumented functions. Thank you for the help.
i forgot you need first to get the draft of the building by using Draft.getDraft("")

.╔═╗─────────────╔╗────────
║╬║─╔╗╔╦╗╔═╗╔╗─╔╝║╔═╗─╔═╦╗
║╗╣─╠╣║╔╝║╬║║╚╗║╬║║╬╚╗║║║║
╚╩╝╔╝║╚╝─╚═╝╚═╝╚═╝╚══╝╚╩═╝
───╚═╝────────────────────
T.P.C.
Theotown Philippine Corporation

KINGTUT10101
1,000,000 inhabitants
Reactions:
Posts: 2103
Joined: Thu Jul 07, 2016 22:50
Location: 'Merica
Plugins: Show
Version: Beta
Contact:

### Re: Lua chatbox

Code: Select all

function script:buildCityGUI()
-- Let's append the button to the sidebar line
local sidebar = GUI.get('sidebarLine')
local size = sidebar:getFirstPart():getChild(2):getWidth()
width = size,
height = size,
icon = Icon.BIGBIGBIG_MAP,
frameDefault = Icon.NP_BLUE_BUTTON,
frameDown = Icon.NP_BLUE_BUTTON_PRESSED,
onClick = function() City.createDraftDrawer(Draft.getDraft("AreaTool.kt101"))end
}
end
Should this work? I tried it in my project, but it didn't open the building tool after I pressed the button like I was hoping it would.

rjroldan1
Inhabitant of a Megalopolis
Reactions:
Posts: 644
Joined: Mon Jul 17, 2017 16:16
Location: Philippines
Plugins: Show
Contact:

### Re: Lua chatbox

KINGTUT10101 wrote:
Wed Dec 30, 2020 2:34

Code: Select all

function script:buildCityGUI()
-- Let's append the button to the sidebar line
local sidebar = GUI.get('sidebarLine')
local size = sidebar:getFirstPart():getChild(2):getWidth()
width = size,
height = size,
icon = Icon.BIGBIGBIG_MAP,
frameDefault = Icon.NP_BLUE_BUTTON,
frameDown = Icon.NP_BLUE_BUTTON_PRESSED,
onClick = function() City.createDraftDrawer(Draft.getDraft("AreaTool.kt101"))end
}
end
Should this work? I tried it in my project, but it didn't open the building tool after I pressed the button like I was hoping it would.
Ive done this before maybe try to remove the Draft.getDraft()

.╔═╗─────────────╔╗────────
║╬║─╔╗╔╦╗╔═╗╔╗─╔╝║╔═╗─╔═╦╗
║╗╣─╠╣║╔╝║╬║║╚╗║╬║║╬╚╗║║║║
╚╩╝╔╝║╚╝─╚═╝╚═╝╚═╝╚══╝╚╩═╝
───╚═╝────────────────────
T.P.C.
Theotown Philippine Corporation

rjroldan1
Inhabitant of a Megalopolis
Reactions:
Posts: 644
Joined: Mon Jul 17, 2017 16:16
Location: Philippines
Plugins: Show
Contact:

### Re: Lua chatbox

one more thing it can't open Draft that was hidden from building tool (hidden:true) unless you gonna move it to hidden categories

.╔═╗─────────────╔╗────────
║╬║─╔╗╔╦╗╔═╗╔╗─╔╝║╔═╗─╔═╦╗
║╗╣─╠╣║╔╝║╬║║╚╗║╬║║╬╚╗║║║║
╚╩╝╔╝║╚╝─╚═╝╚═╝╚═╝╚══╝╚╩═╝
───╚═╝────────────────────
T.P.C.
Theotown Philippine Corporation

ian
Townsman
Reactions:
Posts: 87
Joined: Sat Apr 04, 2020 17:36
Location: Indonesien
Plugins: Show
Version: Beta

### Re: Lua chatbox

You forgot to add .select() after draft drawer.

Code: Select all

City.createaDraftDrawer(draft).select()

KINGTUT10101
1,000,000 inhabitants
Reactions:
Posts: 2103
Joined: Thu Jul 07, 2016 22:50
Location: 'Merica
Plugins: Show
Version: Beta
Contact:

### Re: Lua chatbox

That worked! Thanks to you both.

KINGTUT10101
1,000,000 inhabitants
Reactions:
Posts: 2103
Joined: Thu Jul 07, 2016 22:50
Location: 'Merica
Plugins: Show
Version: Beta
Contact:

### Re: Lua chatbox

I think I found a bug or maybe an oversight in my coding. I am using that function to open the building tool when a sidebar button is pressed, but it creates multiple instances of the item in the recent tab for every time I push the button:
Oddly enough, these extra instances will disappear after the GUI is refreshed. Is there a way I could fix this?

ian
Townsman
Reactions:
Posts: 87
Joined: Sat Apr 04, 2020 17:36
Location: Indonesien
Plugins: Show
Version: Beta

### Re: Lua chatbox

KINGTUT10101 wrote:
Thu Dec 31, 2020 1:09
I think I found a bug or maybe an oversight in my coding. I am using that function to open the building tool when a sidebar button is pressed, but it creates multiple instances of the item in the recent tab for every time I push the button:
image.png
Oddly enough, these extra instances will disappear after the GUI is refreshed. Is there a way I could fix this?
It is. I just realized that thing happen on my plugin (the sidebar small button). I thought it no problem because there are not multiple build mode.

To prevent that, you can try this code

Code: Select all

if City.createDraftDrawer(draft):getHistory()[1] ~= selectId then
City.createDraftDrawer(selectDraft).select()
end
If that code not work, try to make local var of the history.

rjroldan1
Inhabitant of a Megalopolis
Reactions:
Posts: 644
Joined: Mon Jul 17, 2017 16:16
Location: Philippines
Plugins: Show
Contact:

### Re: Lua chatbox

ian wrote:
Thu Dec 31, 2020 11:40
KINGTUT10101 wrote:
Thu Dec 31, 2020 1:09
I think I found a bug or maybe an oversight in my coding. I am using that function to open the building tool when a sidebar button is pressed, but it creates multiple instances of the item in the recent tab for every time I push the button:
image.png
Oddly enough, these extra instances will disappear after the GUI is refreshed. Is there a way I could fix this?
It is. I just realized that thing happen on my plugin (the sidebar small button). I thought it no problem because there are not multiple build mode.

To prevent that, you can try this code

Code: Select all

if City.createDraftDrawer(draft):getHistory()[1] ~= selectId then
City.createDraftDrawer(selectDraft).select()
end
If that code not work, try to make local var of the history.
i think these will not work if there is already previous history

.╔═╗─────────────╔╗────────
║╬║─╔╗╔╦╗╔═╗╔╗─╔╝║╔═╗─╔═╦╗
║╗╣─╠╣║╔╝║╬║║╚╗║╬║║╬╚╗║║║║
╚╩╝╔╝║╚╝─╚═╝╚═╝╚═╝╚══╝╚╩═╝
───╚═╝────────────────────
T.P.C.
Theotown Philippine Corporation

KINGTUT10101
1,000,000 inhabitants
Reactions:
Posts: 2103
Joined: Thu Jul 07, 2016 22:50
Location: 'Merica
Plugins: Show
Version: Beta
Contact:

### Re: Lua chatbox

ian wrote:
Thu Dec 31, 2020 11:40
KINGTUT10101 wrote:
Thu Dec 31, 2020 1:09
I think I found a bug or maybe an oversight in my coding. I am using that function to open the building tool when a sidebar button is pressed, but it creates multiple instances of the item in the recent tab for every time I push the button:
image.png
Oddly enough, these extra instances will disappear after the GUI is refreshed. Is there a way I could fix this?
It is. I just realized that thing happen on my plugin (the sidebar small button). I thought it no problem because there are not multiple build mode.

To prevent that, you can try this code

Code: Select all

if City.createDraftDrawer(draft):getHistory()[1] ~= selectId then
City.createDraftDrawer(selectDraft).select()
end
If that code not work, try to make local var of the history.
Unfortunately, it didn't seem to work for me. I did notice something though. One odd quirk about these multiple instances is that getHistory() ignores the extra ones, even if they fill the menu.