* Store hashes of passwords
cleartext password storage is bad practice.
* Depricate factions.get_password()
returns nil after first run
* loaded message
* Properly use the configurable admin priv in output
* Don't show password, since we can't anymore
* remove code that is never reached
* chown: reorder to first check if player has any factions at all
There is no point in checking other params if this part fails.
* chown: fix command signature
password is required
* proper admin priv listing in help for invite
* wrap fixup code in do-block
variable save_needed is not used for anything else
* locale: many -> multiple
* locale: remove unused entry
* locale: ownership rephrasing
* locale: tweak and add "No factions found."
* locale: exists -> exist
* locale: this -> that or better
also fixed a french mistake: player doesn't own these -> player owns
these
* locale: reuse string for missing name
besides, "nil" is a valid name. This way there is no confusion.
* locale: reuse "missing player name"
* locale: reuse "faction x doesn't exist"
* locale: faction x already exists
* locale: the player -> player x
* locale: some more de-Frenching
* add local is_admin
stash commit...
* disband: allow admin
- permit admin to disband a faction without having any factions himself
- permit admin to skip password check (he can supply any placeholder)
- permit admin to disband his own single faction
- don't call get_owner or valid_password if is admin
- streamline duplicate code
* list: check for true first instead of using negation
- check for no factions first -> simpler code
- whitespace: linebreak for easier reading
* info: cleanup
- whitespace linebreaks for easier reading and consistancy
- update helptext signiture (also for disband) to reflect actual
requirements and standard
- loop members into table for consistant and easier to read code
* player_info: cleanup
- move depricated log entry to start of get_player_faction(), no point
in skipping warning.
- simplify get_player_factions()
- whitespace linebreaks for easier reading and consistancy
- loop members into table for consistant and easier to read code
- simplify get_owned_factions()
- make player_name param optional, default to caller (still need to
check as caller name can be missing)
- loop factions into table for consistant and easier to read code (also
presumpted faster)
* join: cleanup
- don't call get_player_factions() unless needed
- use get_player_factions() instead of depricated get_player_faction()
- truth check of password in valid_password() for easier understanding
of code
- remove explicit nil check where not needed
* leave: cleanup
- update help text to standard syntax
- remove unnecessary param count checks
- simplify leave_faction() argument checking
* kick: cleanup
- simplify and reduce calls of core.get_player_privs()
- update help text to standard syntax
- streamline duplicate code
- remove unnecessary param count checks
- remove explicit nil check where not needed
- don't call get_owner if is admin (until needed)
* passwd: cleanup
- update help text to standard syntax
- streamline duplicate code
- remove unnecessary param count checks
- remove explicit nil check where not needed
- don't call get_owner if is admin
* chown: cleanup and tweak
- update help text to standard syntax
- streamline duplicate code
- remove unnecessary param count checks
- remove explicit nil check where not needed
- updated locale to be neutral to admin or owner
- don't call get_owner or valid_password if is admin
- remove core.player_exists() call since target was checked when joined
faction
- abort early if no target or password provided
* invite: cleanup and tweaks
- reduced needed indents
- remove explicit nil check where not needed
- use get_player_factions() instead of depricated get_player_faction()
and reduce calls of it
- tweaked join_faction()
- adds check if player already is in that faction
* more tweaks
- join: check if already member
- leave: checks if user is in given faction at all
- kick: early abort if no player provided
- create: early abort if no faction or password are provided
- create: use get_player_factions() instead of get_player_faction()
- create: reduce explicit nil checks
- disband: early abort if missing password
- disband: reduce param-count-checks and use table.getn()
- info: reduce explicit nil checks and use table.getn()
- passwd: early abort if no password provided
- in general remove explicit nil-checks where not needed
* is_admin -> not_admin
for slightly easier reading and shorter lines
* fix translator missing argument
* some facepalm fixes
and tweaks of table.getn() for consistency, here # would work just as
well.
* set minimum server version to 5.9.0
* another facepalm moment
* add mtt support
* refactor handle_command for mtt
It could've been done by only exposing handle_command, but this is
cleaner for future maintenance as tasks are well separated.
* bundle mtt related lines
* needs fakelib, not areas
areas will need this mod for testing
* remove unused arguments
* add owner to members on cleanup
* rename chat to cc
also no need to expose cc directly to mtt
* register the actually set priv when it is missing
* label data correctly
* move settings higher up where they are expected to be
* consistancy with variable names
use faction_name, player_name, target_name, password etc.
instead of a jumble of pw, fname, name, player_name etc.
* reduce needles table-copy
* fail to register same named factions
* no-op depricated and useless get_password
* some more checks in some API methods
* whitespace and comments
* pass translator to mtt
* bugfix cc.disband inverted password check
* standardize var name and reduce looping
* add get_members() api-method and use it
* player_info: count empty string as no player
* player_info: switch if-else to avoid negation
* unreachable comments
* simpler check
* add mtt-checks for front and backend commands
* update french locale
- informal tone
- adds missing entries
* add Spanish locale
* add German locale
* whitespace cleanup
* add fakelib comment
* provide alternative to table.pack()
* add disband hook support
* remove local f == factions
* general overhaul for 5.0.0
- overhauled English language
- overhauled French language
- adds Spanish locale
- adds German locale
- adds mtt integration testing
- adds github workflow for mtt
- refactores handle_command
- standardizes usage of table.getn() (nothing crucial in this mod)
- standardizes variables to have same format and same name for same
purpouse
- DB-fix also adds missing owners to members
- fixes some situations where admins couldn't do things
- fixes display of dynamic admin priv and registration
- alows uppercase for subcommands
- adds valid_password() for cleaner checks
- ensures that existing factions don't get overwritten
* provide alternative to table.pack()
* add disband hooks support
* remove local f == factions
Player storage isn't available when players are offline, so get_player_faction wouldn't work. Fixed by adding a secondary data structure, which will be removed once a mechanism for offline player storage has been added to the engine