# LuxinfineBonusCodes-5.0-1.7.10

**Информация:**

Мод, позволяющий создавать и использовать бонускоды с тонкой настройкой - кол-во активаций и наградой. Поддерживает как отдельные коды, так и группы кодов, например, можно создать 10 кодов, при активации одного из них все остальные коды становятся неиспользуемые. Присутствует логирование активаций кодов, мультисерверность.

**Конфигурация:**

```json
{
  "configuration": {
    "max_code_length": {
      "comment": "Максимальное кол-во символов в бонускоде",
      "range": "От 0 до 64",
      "type": "int",
      "default": 16,
      "value": 16
    },
    "activation": {
      "comment": "Тип id активации кода для записи в лог. Сам по себе не несет в себе информации, нужен для определения места активации.",
      "range": "От 0 до 2147483647",
      "type": "int",
      "default": 1,
      "value": 1
    },
    "command": {
      "properties": {
        "bonuscode_aliases": {
          "comment": "Список алиасов команды мода",
          "type": "List<String>",
          "default": [
            "code",
            "bcode",
            "bonus",
            "codes",
            "bcodes"
          ],
          "value": [
            "code",
            "bcode",
            "bonus",
            "codes",
            "bcodes"
          ]
        },
        "bonuscode_enabled": {
          "comment": "Включение команды мода",
          "type": "boolean",
          "default": true,
          "value": true
        }
      }
    },
    "database": {
      "properties": {
        "table": {
          "type": "String",
          "default": "bonuscodes",
          "value": "bonuscodes"
        },
        "reward_column": {
          "type": "String",
          "default": "reward",
          "value": "reward"
        },
        "logs_table": {
          "type": "String",
          "default": "bonuscodes_logs",
          "value": "bonuscodes_logs"
        },
        "user_column": {
          "type": "String",
          "default": "user",
          "value": "user"
        },
        "code_column": {
          "type": "String",
          "default": "code",
          "value": "code"
        },
        "codes_id": {
          "range": "От -2147483648 до 2147483647",
          "type": "int",
          "default": 0,
          "value": 1
        },
        "limits_table": {
          "type": "String",
          "default": "bonuscodes_limits",
          "value": "bonuscodes_limits"
        },
        "users_column": {
          "type": "String",
          "default": "users",
          "value": "users"
        },
        "activation_type_column": {
          "type": "String",
          "default": "activation_type",
          "value": "activation_type"
        },
        "count_column": {
          "type": "String",
          "default": "count",
          "value": "count"
        },
        "id_column": {
          "type": "String",
          "default": "id",
          "value": "id"
        }
      }
    },
    "economy": {
      "comment": "Провайдер экономики",
      "type": "Economy",
      "default": "dummy",
      "value": "LuxinfineEconomy"
    },
    "permissions": {
      "comment": "Провайдер прав",
      "type": "Permissions",
      "default": "dummy",
      "value": "LuxinfinePermissions"
    }
  }
}
```

**SQL скрипт развёртывания структуры БД для мода:**

```sql
CREATE TABLE `bonuscodes` (
  `id` int NOT NULL,
  `code` char(16) NOT NULL,
  `reward` double NOT NULL,
  `count` smallint NOT NULL
);

CREATE TABLE `bonuscodes_limits` (
  `id` tinyint NOT NULL,
  `users` mediumtext NOT NULL
);

CREATE TABLE `bonuscodes_logs` (
  `id` tinyint NOT NULL DEFAULT '-1',
  `activation_type` tinyint DEFAULT NULL,
  `code` char(16) NOT NULL,
  `reward` double NOT NULL,
  `user` char(36) NOT NULL
);
```

**Команды:**

<table><thead><tr><th width="229">Команда</th><th width="280">Права и атрибуты</th><th>Описание</th></tr></thead><tbody><tr><td>/code &#x3C;код></td><td><code>command.bonuscodes.code</code></td><td>Активация промокода</td></tr><tr><td>/code list</td><td><code>command.bonuscodes.code.list</code></td><td>Список существующих промокодов</td></tr><tr><td>/code delete &#x3C;код></td><td><code>command.bonuscodes.code.delete</code></td><td>Удаление промокода</td></tr><tr><td>/code create &#x3C;код> &#x3C;сумма> [ID_кода] [лимит_использований]</td><td><code>command.bonuscodes.code.create</code></td><td><p>Создание промокода.<br><br>Если ID_кода не указан - генерируется случайный. <br></p><p>Если лимит использований не указан - ставится лимит 1 использование</p></td></tr></tbody></table>
