Skubman b1c29bc460 NanoChat QoL And Bug Fixes (#1460)
# Description

Fixes notifications so that they always trigger when the chat is not
open, fixes a possible exploit where a user can send a message that is
longer than the max message length, and improves the UX of NanoChat in a
few areas.

Original message from
https://github.com/Goob-Station/Goob-Station/pull/1313:
> Fixed NanoChat message notifications not showing up in situations
where you'd definitely expect them to occur.
>
> Now, for a chat to not send a notification upon a new message, three
conditions need to be fulfilled:
> - You don't have the chat muted
> - Your PDA UI is open
> - You have NanoChat as your open program
> - Your currently-selected chat is the aforementioned chat

More changes:
- Validate NanoChat message length & chat name/job title length on the
server
c063001ca9.
  -If they are too long, they will be truncated to the maximum length.
- Improve the UI for editing a chat:
- Added a proper icon (used to be the letter E) for the Edit Chat
button.

![image](https://github.com/user-attachments/assets/ce868829-a9f5-494b-9d15-2cbc4a7e2a86)
- The Edit Chat popup now has correct text: the title is now "Edit a
contact", not "Add a new chat" and the Create button has been renamed to
the Confirm button.

![image](https://github.com/user-attachments/assets/aabd84b3-0f3c-410a-a74e-06420eb336dc)
  - Editing a chat no longer deselects the current chat.
- This is done by adding a new NanoChatUiMessageType entry, `EditChat`
and a new server-side handler function just for chat edits. The previous
edit chat method simply *deleted* the chat from the client and created a
new one.
- Form validation is now more robust: you can now only submit the edit
if you've made changes to the name or job title.
- Fixed NanoChat not appearing in PDAs with more than 5 pre-installed
programs by increasing the PDA disk space (max program count) from 5 to
8, the current disk space in Wizden.

![image](https://github.com/user-attachments/assets/e214fa21-5365-4f8a-8919-c6019d3b94bb)
- The job title now appears on the notification title.

![image](https://github.com/user-attachments/assets/486f5b2a-c555-4d1a-97ef-4dab3d8e1102)
  - The title will be truncated if it's too long.

![image](https://github.com/user-attachments/assets/ef99805c-b004-456a-9b59-e48f4abbe4ab)
- Improved form validation on the New Chat popup by only allowing users
to submit if the Number field is 4 numbers long. Previously, inputs like
"0" "12" "289" were valid which is ultimately incorrect as phone numbers
function more like strings that just happen to be digit-only and less
like actual numbers.

![image](https://github.com/user-attachments/assets/e3a767ff-71cb-4c61-b3e9-be13af66fd60)
- The left chat list will now truncate names and job titles if they're
too long.

![image](https://github.com/user-attachments/assets/76a8fbfa-e5e5-495c-ad13-fc9444e6ce9a)

## Changelog
🆑 Skubman
- add: NanoChat message notifications will now show you the job title of
the sender alongside their name.
- add: The NanoChat edit button now has a proper icon.
- tweak: The disk space (max amount of installable programs) on PDAs has
been increased from 5 to 8. This also fixes a bug where NanoChat was not
being installed on PDAs with more than 5 pre-installed cartridges.
- tweak: The character limit for names and job titles in NanoChat has
been increased to their actual limit on ID cards (30 characters).
- tweak: NanoChat chat list names/titles and notification titles that
are too long will be shortened, indicated with "..." at the end.
- tweak: The NanoChat edit popup now displays the correct text, instead
of appearing identical to the new chat popup.
- fix: NanoChat will now send a new message notification no matter what
if you don't have the chat open.
- fix: Editing a chat in NanoChat no longer deselects that chat.
- fix: Fixed a issue where users could potentially send NanoChat
messages longer than the maximum allowed message length.
- fix: Fixed being able to create a new chat when you haven't typed in 4
digits in the number field.

(cherry picked from commit f11d2e7976491a5c95aeb36eaa7a313624197a88)
2025-01-14 01:44:26 +03:00

WWDP logo

WWDP - форк Einstein Engines, представляющего из себя хард-форк Space Station 14, построенный на идеалах и дизайнерском вдохновении семейства серверов BayStation 12 от Space Station 13 с упором на модульный код, который каждый может использовать для создания RP-сервера своей мечты.

WWDP - один из основных серверов русского коммьюнити, который выступает за идеалы свободы отыгрыша, свободы слова и настоящей классической атмосферы Space Station 13 - хаос, веселье, возможности.

Space Station 14 - это ремейк SS13, который работает на собственном движке Robust Toolbox, собственном игровом движке, написанном на C#.

Поскольку это хард-форк, любой код, взятый из другого апстрима, не может быть напрямую замержен сюда, а должен быть перенесен. Весь код, представленный в этом репозитории, может быть изменен по желанию кодербаса Белой Мечты.

Ссылки

Steam | Клиент без Steam | Основной репозиторий

Контрибуция

В процессе разработки, ожидайте новостей!

Сборка

Следуйте гайду от Space Wizards по настройке рабочей среды, но учитывайте, что наши репозитории отличаются и некоторые вещи могут отличаться. Мы предлагаем несколько скриптов, показанных ниже, чтобы облегчить работу.

Необходимые зависимости

  • Git
  • .NET SDK 8.0.100

Windows

  1. Склонируйте данный репозиторий
  2. Запустите git submodule update --init --recursive в командной строке, чтобы скачать движок игры
  3. Запускайте Scripts/bat/buildAllDebug.bat после любых изменений в коде проекта
  4. Запустите Scripts/bat/runQuickAll.bat, чтобы запустить клиент и сервер
  5. Подключитесь к локальному серверу и играйте

Linux

  1. Склонируйте данный репозиторий.
  2. Запустите git submodule update --init --recursive в командной строке, чтобы скачать движок игры
  3. Запускайте Scripts/sh/buildAllDebug.sh после любых изменений в коде проекта
  4. Запустите Scripts/sh/runQuickAll.sh, чтобы запустить клиент и сервер
  5. Подключитесь к локальному серверу и играйте

MacOS

Предположительно, также, как и на Линуксе.

Лицензия

Содержимое, добавленное в этот репозиторий после коммита 87c70a89a6 (17 February 2024 23:00:00 UTC), распространяется по лицензии GNU Affero General Public License версии 3.0, если не указано иное. См. LICENSE-AGPLv3.

Содержимое, добавленное в этот репозиторий до коммита 87c70a89a6 (17 February 2024 23:00:00 UTC) распространяется по лицензии MIT, если не указано иное. См. LICENSE-MIT.

Большинство ресурсов лицензировано под CC-BY-SA 3.0, если не указано иное. Лицензия и авторские права на ресурсах указаны в файле метаданных. Example.

Обратите внимание, что некоторые активы лицензированы под некоммерческой CC-BY-NC-SA 3.0 или аналогичной некоммерческой лицензией и должны быть удалены, если вы хотите использовать этот проект в коммерческих целях.

Description
No description provided
Readme 951 MiB
Languages
C# 78.7%
Fluent 20.9%
Python 0.2%