ScriptsLab
WikiDownloadsSourcesSupport
ScriptsLab
DocumentationDownloadsGitHubDiscord

© 2026 ScriptsLab

Back to wiki
M

permissions.md

Markdown · 393 lines · 8.9 KB

wiki/permissions.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
# 🔐 Права доступа ScriptsLab

Полное руководство по системе разрешений (permissions) плагина ScriptsLab.

---

## Обзор системы прав

ScriptsLab использует стандартную систему прав Bukkit/Paper. Права определяют, какие команды и функции доступны игрокам.

### Где хранятся права?

- **LuckPerms**: `plugins/LuckPerms/expressions/`
- **PermissionsEx**: `plugins/PermissionsEx/permissions.yml`
- **Vault** (с другими провайдерами): зависит от провайдера

---

## Список прав ScriptsLab

### Основные права

| Право | Описание | По умолчанию |
|-------|----------|-------------|
| `scriptslab.use` | Использовать базовые команды | true (все) |
| `scriptslab.reload` | Перезагружать плагин | op |
| `scriptslab.module` | Управлять модулями | op |
| `scriptslab.script` | Управлять скриптами | op |
| `scriptslab.admin` | Полный админ-доступ | op |

### Группы прав

| Право | Описание |
|-------|----------|
| `scriptslab.*` | Все права ScriptsLab |

---

## Настройка прав

### Через plugin.yml

Права автоматически регистрируются через `plugin.yml`:

```yaml
permissions:
  scriptslab.*:
    description: All ScriptsLab permissions
    children:
      scriptslab.use: true
      scriptslab.reload: true
      scriptslab.module: true
      scriptslab.script: true
      scriptslab.admin: true

  scriptslab.use:
    description: Use basic ScriptsLab commands
    default: true

  scriptslab.reload:
    description: Reload the plugin
    default: op

  scriptslab.module:
    description: Manage modules
    default: op

  scriptslab.script:
    description: Manage scripts
    default: op

  scriptslab.admin:
    description: Full administrative access
    default: op
```

### Значения по умолчанию

| Значение | Описание | Доступ |
|----------|----------|--------|
| `true` | Разрешено всем | Все игроки |
| `op` | Только для OP | Операторы сервера |
| `false` | Запрещено всем | Никто |

---

## Настройка прав для скриптов

### Пример: Права для команд

При создании команды в скрипте можно указать право:

```javascript
Commands.register('heal', function(sender, args) {
    sender.setHealth(sender.getMaxHealth());
    sender.sendMessage('§aВы исцелены!');
}, 'scriptslab.heal');  // Право для команды
```

### Регистрация прав в скрипте

Права для своих команд добавляйте в `permissions.yml`:

```yaml
# PermissionsEx example
groups:
  player:
    permissions:
      - scriptslab.use
      - scriptslab.heal      # Команда /heal
      - scriptslab.fly       # Команда /fly
      
  vip:
    permissions:
      - scriptslab.use
      - scriptslab.heal
      - scriptslab.fly
      - scriptslab.getlightningsword
      
  admin:
    permissions:
      - scriptslab.*
```

---

## Настройка с LuckPerms

### Создание групп

```bash
# Создать группу VIP
lp creategroup vip

# Добавить право
lp group vip permission set scriptslab.fly true

# Добавить наследование
lp group vip parent add player
```

### Настройка игрока

```bash
# Дать право игроку
lp user NickName permission set scriptslab.admin true

# Добавить в группу
lp user NickName parent set vip
```

### Пример конфигурации LuckPerms

```yaml
# luckperms/groups.yml
groups:
  default:
    weight: 0
    permissions:
      - scriptslab.use
      - bukkit.command.help
      - bukkit.command.list
      
  player:
    weight: 10
    inheritance:
      - default
    permissions:
      - scriptslab.heal
      - scriptslab.fly
      
  vip:
    weight: 20
    inheritance:
      - player
    permissions:
      - scriptslab.getlightningsword
      
  moder:
    weight: 50
    inheritance:
      - player
    permissions:
      - scriptslab.module
      - scriptslab.script
      
  admin:
    weight: 100
    inheritance:
      - moder
    permissions:
      - scriptslab.*
      - bukkit.command.*
```

---

## Настройка с PermissionsEx

### Пример permissions.yml

```yaml
groups:
  Default:
    default: true
    permissions:
      - scriptslab.use
      - bukkit.command.help
      
  Player:
    prefix: '&7[Игрок]'
    permissions:
      - scriptslab.heal
      - scriptslab.fly
      
  VIP:
    prefix: '&6[VIP]'
    inheritance:
      - Player
    permissions:
      - scriptslab.getlightningsword
      
  Moderator:
    prefix: '&c[Модер]'
    permissions:
      - scriptslab.module
      - scriptslab.script
      
  Admin:
    prefix: '&4[Админ]'
    permissions:
      - scriptslab.*
      
users:
  Никнейм:
    group: Admin
```

---

## Права для кастомных команд

### Список стандартных прав

| Команда | Право | Описание |
|---------|-------|----------|
| `/heal` | `scriptslab.heal` | Восстановить здоровье |
| `/fly` | `scriptslab.fly` | Включить полёт |
| `/getlightningsword` | `scriptslab.getlightningsword` | Получить меч |
| `/spawn` | `scriptslab.spawn` | Телепорт на спавн |
| `/warp` | `scriptslab.warp` | Телепорт на варп |

### Добавление своих прав

При регистрации команды:

```javascript
Commands.register('mycommand', function(sender, args) {
    // код команды
}, 'myplugin.mycommand');  // право
```

Затем добавьте право в ваш плагин прав:

```yaml
# Пример для LuckPerms
lp group player permission set myplugin.mycommand true
```

---

## Права для событий

### Автоматические права

Некоторые события могут требовать права:

```javascript
// Команда heal проверяет право scriptslab.heal
Commands.register('heal', function(sender, args) {
    // код
}, 'scriptslab.heal');
```

### Ручная проверка прав

```javascript
Commands.register('adminonly', function(sender, args) {
    if (!sender.hasPermission('myplugin.admin')) {
        sender.sendMessage('§cНет прав!');
        return;
    }
    // код для админов
});
```

---

## Troubleshooting

### Игрок не получает право

Проверьте:

1. **Право существует**: Убедитесь, что право зарегистрировано
2. **Перезагрузка**: Выполните `/luckperms reload` или перезапустите сервер
3. **Приоритет**: Проверьте вес группы
4. **Кэш**: Очистите кэш прав

### Право не работает

1. Проверьте, пр��вильно ли оно написано
2. Убедитесь, что группа/игрок имеет это право
3. Перезагрузите систему прав

### Конфликт прав

Если права конфликтуют:

```bash
# Удалите старое право
lp user NickName permission unset old.permission

# Или измените приоритет
lp user NickName permission set new.permission context=server=lobby
```

---

## Примеры конфигураций

### Простой сервер

```yaml
# permissions.yml
groups:
  default:
    permissions:
      - scriptslab.use
      
  vip:
    permissions:
      - scriptslab.use
      - scriptslab.heal
      - scriptslab.fly
      
  admin:
    permissions:
      - scriptslab.*
```

### Сервер с магазином

```yaml
groups:
  default:
    permissions:
      - scriptslab.use
      - scriptslab.heal
      
  premium:
    permissions:
      - scriptslab.use
      - scriptslab.heal
      - scriptslab.fly
      - scriptslab.getlightningsword
      
  donator:
    permissions:
      - scriptslab.use
      - all_shop_commands
      
  admin:
    permissions:
      - scriptslab.*
```

---

## Следующие шаги

| Шаг | Описание |
|-----|----------|
| [Script API](script-api.md) | API для создания команд |
| [Примеры](examples/commands.md) | Примеры команд |
| [troubleshooting](troubleshooting.md) | Решение проблем |

---

## Поддержка

- **LuckPerms Wiki**: [ luckperms.net](https://luckperms.net/wiki)
- **PermissionsEx**: [ github.com/PEXDevs](https://github.com/PEXDevs/PermissionsEx)