Commit Graph

82 Commits

Author SHA1 Message Date
Leifa♥
657a47b029 Added flexible ACL roles (#7)
Resolve #4
2022-06-15 17:52:27 -05:00
Leifa♥
b0555207d6 Privatization rework (#2)
* Add clang-format

* Multiple privatization changes

"Participation handshake" this refers to the moment that the user's client sends the `askchaa` packet.

* Server::m_clients is now private. Get a copy with Server::getClients()
* Server::m_player_count is now private. Get a copy with Server::getPlayerCount() (Additional logic was added to handle the player count.)
* AOClient::m_joined is now private. Get a copy with AOClient::hasJoined()
* Added signal AOClient::joined(); will be emitted when the client first complete the participation handshake.
* Renamed Server::updatePlayerCount to Server::playerCountUpdated

* Privatized Server

* Made Server members private: m_characters, m_areas, m_area_names
* Added Server methods: getCharacters(), getAreas(), getAreaById(f_area_id), getAreaByName(f_area_name), getAreaNames(), getAreaName(f_area_id), getMusicList
* Added Server helper methods: getCharacterCount(), getAreaCount()
- This reduce code repetition of the following example: server->getCharacters().length(), server->getAreas().size()

* Solved other merge conflicts

* Added Server methods, various fixes

* Added Server methods: getCharacterById(f_chr_id)
* Various optimizations

* More Server privatization changes

* Made Server members private: db_manager, next_message_timer, can_send_ic_messages
* Renamed Server members:
  * next_message_timer -> m_message_floodguard_timer
  * can_send_ic_message -> m_can_send_ic_message
Added Server methods: getDatabaseManager, isMessageAllowed, startMessageFloodguard(f_duration)
Made Server methods private: allowMessage

* Added new fields to load for AreaData

* Added fields: `area_message` (default: empty string) and `send_area_message_on_join` (default: false)

* Added Server::clearAreaMessage

* Cleaned up headers include (AOPacket excluded)

* Removed most project file includes, moved to source file (cpp)
  * AOPacket was excluded because some methods modify the copy

* Fix compile error when using MingW compiler

* Appease clang by using proper or and putting it in parentheses
* Remove extra semicolon
2022-06-15 17:52:27 -05:00
Salanto
b98f7b88bb Fix double CM bug
* Add check to see if owner tries to add an ID that is already owner of the area, to the owners of the area.
2022-05-26 14:29:34 +02:00
AwesomeAim
79c6e5e395
Ensure /changepass always has arg 1 as the password
Otherwise, the syntax is /changepass <Password> or /changepass <Moderator> <Password>, rather than /changepass <Password> 'Moderator', like how it's specified to be
2022-05-05 22:58:56 -07:00
AwesomeAim
8859f35fcd
Don't Display IPIDs to Users via Global Chat
Slightly better variable names too while we're at it
2022-05-05 11:16:51 -07:00
AwesomeAim
a4f93033ac Correct loadCommandHelp variable names, return if too many arguments on help, and add behaviour if no help exists 2022-03-20 21:20:47 -07:00
Salanto
dff37687c0 Fix /play not setting the currentmusic correctly 2022-03-13 03:28:58 +01:00
Salanto
0a0e36f4fe
Symmetry is everything
Co-authored-by: Rosemary Witchaven <32779090+in1tiate@users.noreply.github.com>
2022-03-10 19:41:58 +01:00
Salanto
464eab3515 Make /getareas work like its Tsu counterpart
This is honestly the better variant. ngl.
Fixes #235
2022-03-09 09:14:07 +01:00
in1tiate
83c41c05f7 Squashed commit of the following:
commit e946bf124602f224ce0e371ba1374f0355b537eb
Merge: d6a4e64 4505909
Author: Rosemary Witchaven <32779090+in1tiate@users.noreply.github.com>
Date:   Fri Jan 28 19:43:36 2022 -0600

    Merge pull request #225 from Salanto/Dynamic-Area-Musiclist-Take2

    Allow users to add custom songs to the music list on a per-area basis

commit 45059092d2888b60912f721e43a380910d10ccd8
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Mon Jan 24 22:05:27 2022 +0100

    TIL what a typedef is

commit 02584db9640fff0a1969a7f516c4bccfae9b5388
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Mon Jan 24 21:39:17 2022 +0100

    Not all OR are equal. Explain weird command splitting

    Remove hardcoded URLs

commit d00ebd5692296cd0c29dd377113b53fe0e7b99c0
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Mon Jan 24 21:28:08 2022 +0100

    Salanto PR Language Update by in1tiate

    As usual, my English is absolutely unreadable.

    Co-authored-by: Rosemary Witchaven <32779090+in1tiate@users.noreply.github.com>

commit d3842106e06350dc02d8864bb28232fdc5643f00
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Mon Jan 24 20:35:32 2022 +0100

    Add missing config file + document commands for help

commit ac64360e1c1741023b01052977de77a7d5ea4f8c
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Mon Jan 24 19:52:13 2022 +0100

    Minor improvements to command usage and addition of clear command

commit c614578e78ce9afa0c8e22aa36bdf46a70a97169
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Sun Jan 23 22:19:54 2022 +0100

    Purge last traces of old songInformation system

commit 07618761f044a13d75587b28a9c994342a5980e2
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Sun Jan 23 22:10:54 2022 +0100

    Working version, needs some refinement and debugging in AOClient

commit 33c0358c98c0fd2de805356a9aa3ac7bbed204e1
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Sun Jan 23 21:48:05 2022 +0100

    Almost functional implementation

    Now only need to determine why I can't play the customs yet

commit b0acbace78b3f16f2fe4f3c6f65a422e3343f992
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Sun Jan 23 15:26:42 2022 +0100

    Fix build error, expand validation test slightly

commit a48c4f503998ce8e42f0bb409c5a3c7dc5e40329
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Sun Jan 23 01:03:27 2022 +0100

    Add commands

commit 88ab0b473953873166e291e5009b97df31547b3f
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Sat Jan 22 15:10:26 2022 +0100

    Float sucks, int has to be good enough

    + add retrival of song information

commit e924e1340be1a0909eba84072f1646fe9770bd02
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Thu Jan 20 22:28:35 2022 +0100

    Fix removing moving

    Add necessary tests

commit 3df088f8d07ce7e0d8fe08b6a97608a623e6ef97
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Wed Jan 19 19:34:16 2022 +0100

    Start work on adding this shit into commands

commit c293ecfa99d1b2bd1e0b34cb8752d69b2eca057c
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Tue Jan 18 19:07:11 2022 +0100

    Fix typo and add singal for incremental upgrades

commit 10a42322e1e23af5795278a40b2ac59f3ab952ef
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Tue Jan 18 06:17:51 2022 +0100

    Hookup packet sending to music manager

    This might sound like a bad idea on first glance, but otherwise it breaks the AreaData tests and I am NOT gonna try to fix those without even understanding why they break.

commit 319836296374162b0b847432e8a626778317b869
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Tue Jan 18 06:17:51 2022 +0100

    Enraged comments, make area send FM packet

    Revert "Enraged comments, make area send FM packet"

    This reverts commit ec7a1a25646b2c2acc8a3a748b853851cc47d205.

commit 224a0d7efe989a5f336167c3f716061813f93ee3
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Tue Jan 18 05:10:18 2022 +0100

    Change packet communication from area to client

    First steps to hookup the custom musiclist.

commit 65aa8f7855a36f2c668b1399a5ed22fefeaf186d
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Mon Jan 17 00:48:38 2022 +0100

    Add test for custom list sanitisation.

    + Fix intentionally broken tests

commit 7c00ab437a6ff12033742d029ce49037f5bb1ebe
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Mon Jan 17 00:29:51 2022 +0100

    Sanitise the custom list opposed to deleting it

    This will fail tests intentionally to test the CI.

commit 80ad401267068e75707b2517a0bf836763141f8b
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Sun Jan 16 17:17:12 2022 +0100

    Add custom category capabilities

commit 08d8f5f8f683816ceba532f9c47cd0d5ab34389a
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Sun Jan 16 03:58:18 2022 +0100

    Fix music addition and move relevant tests

commit 6ebf0d03b5da61a9c287115009d28038710ba7af
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Sat Jan 15 08:08:20 2022 +0100

    Hookup music_manager into server, change default musiclist source for new clients

    + More tests 🆒

commit bd50c62376f131e2508ecdd3e272209894ecaec1
Author: Salanto <62221668+Salanto@users.noreply.github.com>
Date:   Sat Jan 15 03:13:42 2022 +0100

    Add central song validator for other classes

    Also added applicable test cases to ensure proper operation.
2022-01-28 19:51:30 -06:00
Salanto
57dc4ee9ec
Merge pull request #218 from Salanto/area_message
Add Area Messages
2021-12-17 21:24:40 +01:00
Salanto
dabc7c1abe Apply suggestion batch that fixes bad english
Co-Authored-By: Rosemary Witchaven <32779090+in1tiate@users.noreply.github.com>
2021-12-17 21:19:15 +01:00
Salanto
de3680eb87 Add backwards compatability with older config folders
Prevents an oopsie where logs are non-functional when the config folder was not updated yet.
Also, it's reloadable. How neat is that?
2021-12-17 02:42:54 +01:00
Salanto
9d9cbdb4e2 Implement an area specific message
This feature improves RP/Casing slightly by allowing an automatic message to be send when they enter the area.
2021-12-17 02:31:52 +01:00
Rosemary Witchaven
48dc849b32
Merge pull request #201 from PresJoeBiden/Keeping-People-Out-With-an-IP-Subnet-Ban,-man!
Executive Order 14042 : Implement IPRange Ban
2021-12-13 19:30:42 -06:00
Salanto
578aee2251 More example implementation. 2021-11-20 18:15:36 +01:00
Salanto
d943981ef1 Allow easier handling of targeting user groups when sending packets 2021-11-20 18:15:36 +01:00
Salanto
7dbbf41d33 Add IPID to global messages when user is authenticated
This adds the ability to send altered packets to a specific group of users and the original to everyone else.
2021-11-20 18:15:36 +01:00
Salanto
ae190311bd Reload the list so that vile people shall no longer enter 2021-11-14 13:28:37 +01:00
Salanto
d3a46b8ce2 Add more error messages and tell the mod if the command actually worked. 2021-10-02 14:57:45 +02:00
Salanto
18281ae401 Implement clearcm command 2021-09-19 17:00:14 +02:00
Salanto
970b0975b4 Add command to retrieve help information
+ Rename old help that displays available commands to commands
+ Layout basic helpfile
2021-09-15 20:27:05 +02:00
Salanto
3f212aeb35 Add reload capability for the musiclist 2021-09-13 15:29:25 +02:00
Salanto
00da956ec8 Add ACL check so moderators can toggle jukebox 2021-09-12 23:49:20 +02:00
Salanto
8bdfe1e045 Ensure that no stale songs are in the jukebox queue when its disabled
Housekeeping and fix /currentmusic not returning a song
2021-09-12 23:20:09 +02:00
Salanto
f9dcaa2aa5 Implement a basic and functional jukebox implementation 2021-09-12 22:32:10 +02:00
Salanto
f523fc6ec0 AOClient madness 2021-09-11 19:46:40 +02:00
Salanto
318d12eb7d Rename AOClient member variables
Cleanup a lot of of the variables naming inside area.cpp
2021-09-11 17:33:46 +02:00
Salanto
a4e8442657 Cleanup some variable naming
+ move file reading operations into ConfigManager
2021-09-10 23:33:37 +02:00
Salanto
70a63dd8b3 emit most log slots from AOClient
- Still need to figure out how login handles it
2021-08-25 05:34:16 +02:00
Rosemary Witchaven
624fe41e12
Fix or suppress compiler warnings (#158)
* purge warnings

* indentation change

* unused macros for notice cmd

* cleanup clazy/clang-tidy diagnostics
2021-08-23 19:07:22 -05:00
Salanto
8daca2eee0 fix-#191 2021-08-21 11:53:53 +02:00
Salanto
9148e522aa Make webhook reloadable 2021-08-12 21:44:53 +02:00
Rose Witchaven
2f2f57c8f0
Merge pull request #184 from Salanto/Fix-#183
Notify target of invite and uninvite
2021-08-10 15:02:12 -05:00
Salanto
fadafd2588 Notify target client of uninvite 2021-08-10 20:06:05 +02:00
Salanto
969089bf69 Notify target client of invite 2021-08-10 19:56:47 +02:00
Salanto
8211ab352e Send OOC message on success of /pm
Send OOC message on success of /pm

Add missing space in message layout
2021-08-10 19:26:17 +02:00
Rose Witchaven
d7d5984631
Merge pull request #177 from AttorneyOnline/pay-attention
Add /notice, for moderators to be heard above the noise
2021-08-10 09:19:07 -05:00
in1tiate
91131c8970 swap out ternary for simpler if 2021-08-10 00:29:58 -05:00
in1tiate
c6b0c5f6de move notice functionality to helper function 2021-08-10 00:28:36 -05:00
Salanto
401f98b23e Set the background in area data.
Currently, Akashi does not save the changed background in the area, meaning clients will default to the configs background.

This commit addresses the issue by saving the new background in the area data, meaning it is persistent between people moving in and out of the area.
2021-08-07 22:21:53 +02:00
in1tiate
7b1845aa8d add global version of/notice 2021-08-04 06:12:25 -05:00
in1tiate
e60f18554b add notice box command for moderators to get attention quickly 2021-08-04 05:30:22 -05:00
scatterflower
af353b942e
Merge pull request #164 from Salanto/Ban-Webhook
Implement ban webhook
2021-08-02 16:53:15 -05:00
Salanto
9e824e1256 Implement Webhook for Ban Information
Co-Authored-By: Rose Witchaven <32779090+in1tiate@users.noreply.github.com>
2021-08-02 23:49:37 +02:00
Salanto
2f92ca99f4 Correct configuration update oversight during config reload for the modern advertiser
Corrects oversight that causes ports to be reloaded in case they change in the config. Since Akashi cannot change its port mid-operation, that information needs to be excluded during a reload.
2021-08-02 00:38:31 +02:00
Rose Witchaven
231e33434e
Merge pull request #168 from AttorneyOnline/cm-areakick
disallow cms from being area kicked
2021-08-01 09:46:59 -05:00
Rose Witchaven
8b09c8bab4
Merge pull request #170 from Salanto/public_coinflip
Send conflip to the area instead of the client
2021-08-01 09:46:02 -05:00
in1tiate
e84bf53840 uninvite users who are area-kicked 2021-08-01 09:43:02 -05:00
Salanto
727c9e4f04 Coinflip result is send to the area
Freedom of information!
2021-08-01 16:33:33 +02:00