Giter VIP home page Giter VIP logo

chatadditions_amxx's Introduction

Chat Additions

AMXModX plugin chat control tool with rich functionality and API.

Build status Build status Release AMXModX dependency Telegram


About

Chat Additions is a set of tools for managing voice as well as text chat, for your HLDS server. Allows you to fully or selectively limit the player to use any chat (voice, general, team, admin). Modular system, allows you to use only the necessary tasks capabilities, thereby saving server resources. Rich API capabilities allow the system to connect any functionality (work with player statistics, automation of decisions on blocking).

Chat Additions in work

Requirements

Installation

  • Download the latest stable version from the release section.
  • Extract the cstrike folder to the root folder of the HLDS server;
  • Make sure that all plugins are running and in the correct order, using the amxx list command.

Updating

  • Put new plugins and lang-files (plugins/*.amxx & data/lang/*.txt) into amxmodx/ folder on the HLDS server;
  • Restart the server (command restart or change the map);
  • Make sure that the versions of the plugins are up to date with the command amxx list.

Downloads

Features

  • Compatibility with any chat manager;
  • No VoiceTranscoder or ReVoice required;
  • Flexible system of access rights and immunities for players;
  • Modular system, rich API capabilities, and flexibility;
  • Simple, intuitive interface (UX);
  • Multi-language support;
  • Simple, user-friendly configuration;
  • CA_Gag: Simple, flexible templates system (reasons, times, punishment type);
  • CA_Gag: Support for SQLite, MySQL, CSBans, GameCMS;
  • User-friendly logging system with good customization;
  • Up-to-date support and updates.

Wiki

Do you need some help? Check the articles from the wiki.

Contributing

Got something interesting you'd like to share? Learn about contributing.

Credits

I would like to thank the creators of AMXModX and ReAPI and everyone who helps me in developing and testing this system, who supports my interest.

Thank you guys! 👍

Support

Reach out to me at one of the following places:

License

License: MIT Copyright © Sergey Shorokhov

chatadditions_amxx's People

Contributors

artakamod avatar fred0r avatar giferns avatar junesyngotoflex avatar nord1cwarr1or avatar pawel-itv avatar shadowsadi avatar ufame avatar wopox1337 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

chatadditions_amxx's Issues

Auto-gag ability

Need to add auto-gag ability for the most frequent muted players

Add access levels

Need to implement:

  • ca_gag_immunity_flags "a"
  • ca_gag_access_flags "c"
  • ca_gag_access_flags_high "l"

Enhance mute menu

  • Announcement in chat like:
    NAME1 can't hear anybody now
  • Announcement in chat like:
    Player NAME1 muted you
  • Show into menu players who mute you
    1. NAME1 [ + ] (Muted you)

add amx_gag command

Console command with the ability to gag

Format: amx_gag <#userID or authID or IP or nickname> (reason) (time) (flags)

Gag removal isn't working in some case

How to reproduce:

  1. Connect to server and get gag
  2. Disconnect from server, change SteamID
  3. Connect again from same IP, so gag will be loaded by IP matching
    https://github.com/wopox1337/ChatsAdditions_AMXX/blob/1e4ad05a07a2f1786cde9b9107f4241e36a122ac/amxmodx/scripting/include/ChatAdditions_inc/_SQLite.inc#L127-L128
  4. Remove gag
  5. Reconnect to server, and you may see that gag is active again.

The problem is that deletion requires both parameters to match
https://github.com/wopox1337/ChatsAdditions_AMXX/blob/1e4ad05a07a2f1786cde9b9107f4241e36a122ac/amxmodx/scripting/include/ChatAdditions_inc/_SQLite.inc#L166-L167


When gag loads from table we can get rowid (id) value, so we can use it to remove gag

Core API enhance

More API for Core:

  • CA_MuteClient(client, flags)
  • CA_UnmuteClient(client)
  • CA_IsClientMuted(client)
  • CA_OnClientStartSpeak(client)
  • CA_Client_Say(id, receiver, type)

Add support /chat commands

Когда у тебя гаг, ты не можешь использовать обычные чат-комнды, наподобие /rs, /rank и т.п.

Add configs with auto exec

Необходимо добавить конфигурационные файлы для каждого модуля (при необходимости).
Разместить их в amxmodx/configs/plugins/*.cfg

Remove only own gags

Need to make a feature, like in Fresh Bans, admins will be removing olny their gags, and head admin can remove all gags (cvar)

Support CA:Core for another poorly chat managers

Related to #41

Ни один из чат менеджеров не умеет работать нормально с изменением входных данных.
Вместо модификации данных каждый чат-менеджер останавливает оригинальный поток чата и формирует полностью свой.
Это плохо сказывается на работе других плагинов.

Допустим, нам необходимо заблокировать вывод клиентского сообщения, но позволить другим плагинам перехватывать клиентский say /top15.

Если воспользоваться в главном плагине правильной блокировкой клиентского сообщения:

#include <amxmodx>

// Some condition
new bool: g_block =  true;

public plugin_init() {
  register_clcmd("say", "cmdHandler_say")
}

public cmdHandler_say(id) {
  // we block any message if we need it
  if(g_block) {
    return PLUGIN_HANDLED_MAIN
  }
  
  return PLUGIN_CONTINUE
}

На данный момент такого рода код, будет позволять другим плагинам использовать хуки на эту же команду.

Допустим, есть другой плагин:

#include <amxmodx>

public plugin_init() {
  register_clcmd("say /rs", "cmdHandler_sayRS")
}

public cmdHandler_sayRS(id) {
  client_print(id, print_chat, "* Now you reset score")
}

И всё работает как надо. Обычные сообщения - блокируются, сообщения, контролируемые плагинами - обрабатываются.

Однако, имеющиеся чат-менеджеры: Chat RBS, LiteTranslite, Colored Translit и другие используют подобный код для формирования своего сообщения:

#include <amxmodx>

public plugin_init() {
  register_clcmd("say", "cmdHandler_say")
}

public cmdHandler_sayRS(id) {
  client_print_color(0, id, "%s", "Out formatted message")
  
  return PLUGIN_HANDLED
}

Что не позволяет нормально работать с таким реформированием сообщения и оно не будет блокироваться.

Missing support predefined gag flags

После выбора заранее заданной причины, всё равно приходится указывать флаги для блокировки.

Add support GameCMS as storage

Сделать поддержку GameCMS, чтобы весь список гаг'ов выводился на сайт (там есть такая возможность).

auto-gag for flood

Need to add ability to set auto-gag for flooders.
-Add CVars: block flooders, flood min time, warnings, warns_reset

Remove extra space ` , `

simplify gag menu

Предложение от пользователя:

На мой взгляд, быстрота когда вот так:
1. Выбираешь игрока
2. В следующем меню причины
3. После причины ещё далее меню, там уже выбираешь время
4. И уже выбирают "микрофон" "чат" "командный чат"
5. Подтверждение
  • Add cvar to change manual mode

Add support for /gag command arguments

Related #26

Необходимо добавить поддержку аргументов:

/say gag <nickname>

Если игроков найдено несколько - создать из них меню, подсветив нужные символы в никнеймах.

Error on reading config

Invalid array handle provided (0)
L 06/04/2020 - 13:08:34: [AMXX] Displaying debug trace (plugin "CA_Gag.amxx", version "1.0.0-beta")
L 06/04/2020 - 13:08:34: [AMXX] Run time error 10: native error (native "ArrayClear")
L 06/04/2020 - 13:08:34: [AMXX]    [0] CA_Gag.sma::_LoadConfig (line 773)
L 06/04/2020 - 13:08:34: [AMXX]    [1] CA_Gag.sma::OnConfigsExecuted (line 126)

Add sound UX

for users and for admins. For menus and for actions.

Rework log system

Необходимо предоставить каждому плагину, работающему с CA: Core многоуровневую систему для легирования действий.

/**
 * Log a message for every ChatAdditions module.
 *
 * @param level     Log level, see logLevel_* destination constants in ChatAdditions.inc
 * @param message   Formatting rules.
 * @param ...       Variable number of formatting parameters
 *
 * @return          True if a message logged, false otherwise.
 */

native bool: CA_Log(logLevel_s: level, const message[], any:...);

Add gag logging to files

  • Ability to log gags to default amxx file or another path with CVar for choose.
  • Autoclear old logs cvar

gag for an infinite time doesn't work

Описания с слов пользователей:

Обнаружил еще одну проблему, если использовать DB_SQLite и дать мут навсегда, то после смены карты мут слетает и даже в меню не отображается как молчун, если дать на время, то все ок

даю короче мут навсегда на голосовое общение, пишет мол готово , а через секунду время мута истекло, использую mysql

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.