1
0
mirror of https://github.com/Refactorio/RedMew.git synced 2025-01-30 04:30:58 +02:00

Use locale for new rank system

This commit is contained in:
Matthew Heguy 2019-02-12 20:20:35 -05:00
parent d6a44388e5
commit 52a0622995
6 changed files with 35 additions and 14 deletions

View File

@ -84,21 +84,26 @@ local function regular(args)
if add_remove == 'add' then
if Rank.less_than(name, Ranks.guest) then
Game.player_print('Cannot promote someone on probation to regular. Instead remove their probation and then promote them.', Color.red)
-- Cannot promote someone on probation to regular. You must remove them from probation and then promote them.
Game.player_print({'admin_commands.regular_add_fail_probation'}, Color.red)
end
local success, rank = Rank.increase_player_rank_to(name, Ranks.regular)
if success then
game.print(format('%s promoted %s to %s.', Utils.get_actor(), name, rank), Color.yellow)
-- __1__ promoted __2__ to __3__.
game.print({'admin_commands.regular_add_success', Utils.get_actor(), name, rank}, Color.yellow)
else
Game.player_print(format('%s is already rank %s.', name, rank), Color.red)
-- __1__ is already rank __2__.
Game.player_print({'admin_commands.regular_add_fail', name, rank}, Color.red)
end
elseif add_remove == 'remove' then
if Rank.equal(name, Ranks.regular) then
local new_rank = Rank.decrease_player_rank(name)
game.print(format('%s demoted %s to %s.', Utils.get_actor(), name, new_rank), Color.yellow)
-- __1__ demoted __2__ to __3__.
game.print({'admin_commands.regular_remove_success', Utils.get_actor(), name, new_rank}, Color.yellow)
else
local rank_name = Rank.get_player_rank_name(name)
Game.player_print(format('%s is rank %s, their regular status cannot be removed.', name, rank_name), Color.red)
-- __1__ is rank __2__ their regular status cannot be removed.
Game.player_print({'admin_commands.regular_remove_fail', name, rank_name}, Color.red)
end
end
end

View File

@ -31,9 +31,8 @@ local sorted_ranks = {}
local rank_to_index = {}
for k, v in pairs(Ranks) do
rank_name_lookup[v] = k
rank_name_lookup[v] = {'ranks.' .. k}
end
for k, v in pairs(Ranks) do
sorted_ranks[#sorted_ranks + 1] = v
end
@ -258,7 +257,7 @@ function Public.increase_player_rank(player_name)
local new_rank_name = rank_name_lookup[new_rank]
if new_rank_name then
player_ranks[player_name] = (new_rank)
player_ranks[player_name] = new_rank
return new_rank_name
else
return nil
@ -291,7 +290,7 @@ function Public.decrease_player_rank(player_name)
local new_rank_name = rank_name_lookup[new_rank]
if new_rank_name then
player_ranks[player_name] = (new_rank)
player_ranks[player_name] = new_rank
return new_rank_name
else
return nil

View File

@ -242,7 +242,7 @@ local function print_player_info(args, player)
'Name: ' .. name,
target.connected and 'Online: yes' or 'Online: no',
'Index: ' .. target.index,
'Rank: ' .. Rank.get_player_rank_name(name),
--'Rank: ' .. Rank.get_player_rank_name(name),
Donator.is_donator(target.name) and 'Donator: yes' or 'Donator: no',
'Time played: ' .. Utils.format_time(target.online_time),
'AFK time: ' .. Utils.format_time(target.afk_time or 0),

17
locale/en/redmew.cfg Normal file
View File

@ -0,0 +1,17 @@
[ranks]
probation=Probation
guest=Guest
auto_trusted=Auto Trusted
regular=Regular
admin=Admin
donator=Donator
donator_abbreviation=D
[admin_commands]
regular_add_success=__1__ promoted __2__ to __3__.
regular_add_fail=__1__ is already rank __2__.
regular_add_fail_probation=Cannot promote someone on probation to regular. You must remove them from probation and then promote them.
regular_remove_success=__1__ demoted __2__ to __3__.
regular_remove_fail=__1__ is rank __2__ their regular status cannot be removed.
[redmew_commands]

View File

@ -32,7 +32,7 @@ function Module.distance(pos1, pos2)
end
--- Takes msg and prints it to all players except provided player
-- @param msg <string> The message to print
-- @param msg <string|table> table if locale is used
-- @param player <LuaPlayer> the player not to send the message to
-- @param color <table> the color to use for the message, defaults to white
function Module.print_except(msg, player, color)
@ -48,8 +48,8 @@ function Module.print_except(msg, player, color)
end
--- Prints a message to all online admins
--@param msg <string> The message to print
--@param source <LuaPlayer|string|nil> string must be the name of a player, nil for server.
-- @param msg <string|table> table if locale is used
-- @param source <LuaPlayer|string|nil> string must be the name of a player, nil for server.
function Module.print_admins(msg, source)
local source_name
local chat_color

View File

@ -64,7 +64,7 @@ function Game.get_player_from_any(obj)
end
--- Prints to player or console.
-- @param str <string>
-- @param str <string|table> table if locale is used
-- @param color <table> defaults to white
function Game.player_print(str, color)
color = color or Color.white