diff --git a/modules/game_console/console.lua b/modules/game_console/console.lua index 07280931..4ec82b7f 100644 --- a/modules/game_console/console.lua +++ b/modules/game_console/console.lua @@ -446,7 +446,11 @@ function processMessageMenu(mousePos, mouseButton, creatureName, text) if not g_game.getLocalPlayer():hasVip(creatureName) then menu:addOption(tr('Add to VIP list'), function () g_game.addVip(creatureName) end) end - -- TODO ignore creatureName + if isIgnored(creatureName) then + menu:addOption(tr('Unignore') .. ' ' .. creatureName, function() removeIgnoredPlayer(creatureName) end) + else + menu:addOption(tr('Ignore') .. ' ' .. creatureName, function() addIgnoredPlayer(creatureName) end) + end menu:addSeparator() end --TODO select all @@ -765,15 +769,25 @@ function saveIgnoreSettings() end function isIgnored(name) - return table.find(ignoreSettings.players, name) + return table.find(ignoreSettings.players, name) +end + +function addIgnoredPlayer(name) + if not isIgnored(name) then + table.insert(ignoreSettings.players, name) + end +end + +function removeIgnoredPlayer(name) + table.removevalue(ignoreSettings.players, name) end function isIgnoringPrivate() - return ignoreSettings.privateMessages + return ignoreSettings.privateMessages end function isIgnoringYelling() - return ignoreSettings.yelling + return ignoreSettings.yelling end function onClickIgnoreButton() @@ -821,7 +835,8 @@ function onClickIgnoreButton() saveButton.onClick = function() ignoreSettings.players = {} for i = 1, ignoreListPanel:getChildCount() do - table.insert(ignoreSettings.players, ignoreListPanel:getChildByIndex(i):getText()) + addIgnorePlayer(ignoreListPanel:getChildByIndex(i):getText()) + --table.insert(ignoreSettings.players, ignoreListPanel:getChildByIndex(i):getText()) end ignoreSettings.yelling = ignoreYellingBox:isChecked() diff --git a/modules/game_interface/gameinterface.lua b/modules/game_interface/gameinterface.lua index 2fe9cdb2..b9346af5 100644 --- a/modules/game_interface/gameinterface.lua +++ b/modules/game_interface/gameinterface.lua @@ -411,6 +411,12 @@ function createThingMenu(menuPosition, lookThing, useThing, creatureThing) if (not Player:hasVip(creatureName)) then menu:addOption(tr('Add to VIP list'), function() g_game.addVip(creatureName) end) end + + if modules.game_console.isIgnored(creatureName) then + menu:addOption(tr('Unignore') .. ' ' .. creatureName, function() modules.game_console.removeIgnoredPlayer(creatureName) end) + else + menu:addOption(tr('Ignore') .. ' ' .. creatureName, function() modules.game_console.addIgnoredPlayer(creatureName) end) + end local localPlayerShield = localPlayer:getShield() local creatureShield = creatureThing:getShield()