Готовые скрипты
📜 Готовые скрипты
Полностью готовые к использованию скрипты для ScriptsLab.
Приветственное сообщение
Полная система приветствия и прощания игроков.
Файл: plugins/ScriptsLab/scripts/welcome_message.js
/**
* Приветственное сообщение при входе
* Убирает ванильное сообщение и показывает кастомное
*/
API.registerEvent('PlayerJoinEvent', function(event) {
var player = event.getPlayer();
// Убираем ванильное сообщение
event.joinMessage(null);
// Отправляем кастомное приветствие
var Bukkit = Java.type('org.bukkit.Bukkit');
player.sendMessage('§8§m ');
player.sendMessage('');
player.sendMessage(' §6§l⚡ Добро пожаловать на сервер! ⚡');
player.sendMessage('');
player.sendMessage(' §7Привет, §e' + player.getName() + '§7!');
player.sendMessage(' §7Онлайн: §a' + Bukkit.getOnlinePlayers().size() + ' §7игроков');
player.sendMessage('');
player.sendMessage(' §7Используй §e/help §7для помощи');
player.sendMessage('');
player.sendMessage('§8§m ');
// Сообщение всем остальным
Bukkit.getOnlinePlayers().forEach(function(p) {
if (p.getName() !== player.getName()) {
p.sendMessage('§8[§a+§8] §7' + player.getName() + ' §aзашёл на сервер');
}
});
Console.log(player.getName() + ' joined the server');
});
// Кастомное сообщение при выходе
API.registerEvent('PlayerQuitEvent', function(event) {
var player = event.getPlayer();
// Убираем ванильное сообщение
event.quitMessage(null);
// Отправляем кастомное сообщение всем
var Bukkit = Java.type('org.bukkit.Bukkit');
Bukkit.getOnlinePlayers().forEach(function(p) {
if (p.getName() !== player.getName()) {
p.sendMessage('§8[§c-§8] §7' + player.getName() + ' §cвышел с сервера');
}
});
Console.log(player.getName() + ' left the server');
});
Console.log('Приветственное сообщение активировано');
Система лечения
Команда /heal для восстановления здоровья.
Файл: plugins/ScriptsLab/scripts/heal_command.js
/**
* Команда /heal - Восстановление здоровья
*/
Commands.register('heal', function(sender, args) {
if (!sender.isPlayer()) {
sender.sendMessage('§cТолько для игроков!');
return;
}
var player = sender;
// Восстановить здоровье
player.setHealth(player.getMaxHealth());
// Восстановить голод
player.setFoodLevel(20);
player.setSaturation(20.0);
// Убрать эффекты
player.getActivePotionEffects().forEach(function(effect) {
player.removePotionEffect(effect.getType());
});
player.sendMessage('§a✓ Вы полностью исцелены!');
Console.log(player.getName() + ' used /heal');
}, 'scriptslab.heal');
Console.log('Команда /heal зарегистрирована');
Система полёта
Команда /fly для включения полёта.
Файл: plugins/ScriptsLab/scripts/fly_command.js
/**
* Команда /fly - Включение/выключение полёта
*/
Commands.register('fly', function(sender, args) {
if (!sender.isPlayer()) {
sender.sendMessage('§cТолько для игроков!');
return;
}
var player = sender;
var currentFlight = player.getAllowFlight();
player.setAllowFlight(!currentFlight);
var msg = player.getAllowFlight() ? '§a✓ Полёт включен!' : '§c✗ Полёт выключен!';
player.sendMessage(msg);
Console.log(player.getName() + ' toggled flight: ' + player.getAllowFlight());
}, 'scriptslab.fly');
Console.log('Команда /fly зарегистрирована');
Автоматические объявления
Регулярные объявления для игроков.
Файл: plugins/ScriptsLab/scripts/auto_broadcast.js
/**
* Автоматические объявления
*/
var messages = [
'§6[Объявление] §eНе забудьте проголосовать за сервер!',
'§6[Объявление] §eПосетите наш Discord!',
'§6[Объявление] §eИспользуйте §a/fly §eдля полёта!',
'§6[Объявление] §eИспользуйте §a/heal §eдля лечения!'
];
var currentIndex = 0;
// Отправлять сообщение каждые 5 минут
Scheduler.runTimer(function() {
Server.broadcast(messages[currentIndex]);
currentIndex = (currentIndex + 1) % messages.length;
}, 100, 6000); // 100 тиков задержка, 6000 тиков = 5 минут
Console.log('Автоматические объявления запущены');
Легендарный Меч Молний
Сложный кастомный предмет с несколькими способностями.
Файл: plugins/ScriptsLab/scripts/custom_sword.js
/**
* ⚔️ ЛЕГЕНДАРНЫЙ МЕЧ МОЛНИЙ ⚔️
*
* Особенности:
* - Вызывает молнию при ударе
* - +10 к урону (атрибут)
* - +20% к скорости атаки
* - Даёт эффект Силы II при держании
* - Светится (enchant glow)
* - Неразрушимый
*/
var Material = Java.type('org.bukkit.Material');
var ItemStack = Java.type('org.bukkit.inventory.ItemStack');
var Enchantment = Java.type('org.bukkit.enchantments.Enchantment');
var ItemFlag = Java.type('org.bukkit.inventory.ItemFlag');
var ArrayList = Java.type('java.util.ArrayList');
Console.log('=== Инициализация Меча Молний ===');
// Команда для получения меча
Commands.register('getlightningsword', function(sender, args) {
if (!sender.isPlayer()) {
sender.sendMessage('§cЭта команда только для игроков!');
return;
}
var player = org.bukkit.Bukkit.getPlayer(sender.getName());
(!player) ;
sword = (.);
meta = sword.();
(meta) {
meta.();
lore = ();
lore.();
lore.();
lore.();
lore.();
lore.();
lore.();
lore.();
lore.();
lore.();
lore.();
lore.();
lore.();
meta.(lore);
meta.();
meta.(.);
meta.(.);
meta.(.);
meta.(., , );
.(meta, , , , , );
.(meta, , , , , );
sword.(meta);
}
player.().(sword);
player.();
player.();
}, );
.();
.(, () {
= .();
(!(event.() )) ;
attacker = event.();
victim = event.();
item = attacker.().();
(!item || item.() !== .) ;
meta = item.();
(!meta || !meta.()) ;
displayName = meta.();
(displayName.() === -) ;
.(victim.());
event.(event.() + );
attacker.();
.(attacker.() + );
});
.();
.(, () {
player = event.();
newSlot = event.();
item = player.().(newSlot);
(item && item.() === .) {
meta = item.();
(meta && meta.() && meta.().() !== -) {
= .();
.(player, ., , , , );
player.();
}
}
oldSlot = event.();
oldItem = player.().(oldSlot);
(oldItem && oldItem.() === .) {
oldMeta = oldItem.();
(oldMeta && oldMeta.() && oldMeta.().() !== -) {
= .();
.(player, .);
player.();
}
}
});
.();
.();
Быстрая установка скриптов
Шаг 1: Создайте папку скриптов
Создайте папку plugins/ScriptsLab/scripts/, если её нет.
Шаг 2: Скопируйте скрипт
Скопируйте код скрипта в новый файл .js в папке скриптов.
Шаг 3: Перезагрузите
Выполните /script reload для загрузки скрипта.
Таблица готовых скриптов
| Скрипт | Файл | Команда | Описание |
|---|---|---|---|
| Приветствие | welcome_message.js | Автоматически | Вход/выход |
| Лечение | heal_command.js | /heal | Восстановить HP |
| Полёт | fly_command.js | /fly | Включить полёт |
| Объявления | auto_broadcast.js | Автоматически | Объявления |
| Меч | custom_sword.js | /getlightningsword | Легендарный меч |
Дальнейшие шаги
| Раздел | Описание |
|---|---|
| Script API | Полный API |
| Модули | Система модулей |
| Тroubleshooting | Решение проблем |
📜 Ready Scripts (English)
Complete ready-to-use scripts for ScriptsLab.
Welcome Message#
Full join/quit message system.
File: plugins/ScriptsLab/scripts/welcome_message.js
/**
* Welcome message on join
* Removes vanilla message and shows custom
*/
API.registerEvent('PlayerJoinEvent', function(event) {
var player = event.getPlayer();
// Remove vanilla message
event.joinMessage(null);
// Send custom welcome
var Bukkit = Java.type('org.bukkit.Bukkit');
player.sendMessage('§8§m ');
player.sendMessage('');
player.sendMessage(' §6§l⚡ Welcome! ⚡');
player.sendMessage('');
player.sendMessage(' §7Hello, §e' + player.getName() + '§7!');
player.sendMessage(' §7Online: §a' + Bukkit.getOnlinePlayers().size() + ' §7players');
player.sendMessage('');
player.sendMessage(' §7Use §e/help §7for help');
player.sendMessage('');
player.sendMessage('§8§m ');
// Message to others
.().(() {
(p.() !== player.()) {
p.( + player.() + );
}
});
.(player.() + );
});
.(, () {
player = event.();
event.();
= .();
.().(() {
(p.() !== player.()) {
p.( + player.() + );
}
});
.(player.() + );
});
.();
Heal System#
Command /heal to restore health.
File: plugins/ScriptsLab/scripts/heal_command.js
/**
* Command /heal - Restore health
*/
Commands.register('heal', function(sender, args) {
if (!sender.isPlayer()) {
sender.sendMessage('§cOnly for players!');
return;
}
var player = sender;
// Restore health
player.setHealth(player.getMaxHealth());
// Restore hunger
player.setFoodLevel(20);
player.setSaturation(20.0);
// Remove effects
player.getActivePotionEffects().forEach(function(effect) {
player.removePotionEffect(effect.getType());
});
player.sendMessage('§a✓ You have been fully healed!');
Console.log(player.getName() + ' used /heal');
}, 'scriptslab.heal');
Console.log('Command /heal registered');
Flight System#
Command /fly to toggle flight.
File: plugins/ScriptsLab/scripts/fly_command.js
/**
* Command /fly - Toggle flight
*/
Commands.register('fly', function(sender, args) {
if (!sender.isPlayer()) {
sender.sendMessage('§cOnly for players!');
return;
}
var player = sender;
var currentFlight = player.getAllowFlight();
player.setAllowFlight(!currentFlight);
var msg = player.getAllowFlight() ? '§a✓ Flight enabled!' : '§c✗ Flight disabled!';
player.sendMessage(msg);
Console.log(player.getName() + ' toggled flight: ' + player.getAllowFlight());
}, 'scriptslab.fly');
Console.log('Command /fly registered');
Auto Broadcast#
Regular announcements for players.
File: plugins/ScriptsLab/scripts/auto_broadcast.js
/**
* Auto broadcasts
*/
var messages = [
'§6[Broadcast] §eDon\'t forget to vote for the server!',
'§6[Broadcast] §eJoin our Discord!',
'§6[Broadcast] §eUse §a/fly §e for flight!',
'§6[Broadcast] §eUse §a/heal §e to heal!'
];
var currentIndex = 0;
// Send message every 5 minutes
Scheduler.runTimer(function() {
Server.broadcast(messages[currentIndex]);
currentIndex = (currentIndex + 1) % messages.length;
}, 100, 6000); // 100 tick delay, 6000 ticks = 5 minutes
Console.log('Auto broadcasts started');
Lightning Sword#
Complex custom item with multiple abilities.
File: plugins/ScriptsLab/scripts/custom_sword.js
/**
* ⚔️ LIGHTNING SWORD ⚔️
*
* Features:
* - Strikes lightning on hit
* - +10 damage (attribute)
* - +20% attack speed
* - Gives Strength II when held
* - Glows (enchant glow)
* - Unbreakable
*/
var Material = Java.type('org.bukkit.Material');
var ItemStack = Java.type('org.bukkit.inventory.ItemStack');
var Enchantment = Java.type('org.bukkit.enchantments.Enchantment');
var ItemFlag = Java.type('org.bukkit.inventory.ItemFlag');
var ArrayList = Java.type('java.util.ArrayList');
Console.log('=== Initializing Lightning Sword ===');
// Command to get sword
Commands.register('getlightningsword', function(sender, args) {
if (!sender.isPlayer()) {
sender.sendMessage('§cThis command is only for players!');
return;
}
var player = org.bukkit.Bukkit.getPlayer(sender.getName());
if (!player) ;
sword = (.);
meta = sword.();
(meta) {
meta.();
lore = ();
lore.();
lore.();
lore.();
lore.();
lore.();
lore.();
lore.();
lore.();
lore.();
lore.();
lore.();
lore.();
meta.(lore);
meta.();
meta.(.);
meta.(.);
meta.(.);
meta.(., , );
.(meta, , , , , );
.(meta, , , , , );
sword.(meta);
}
player.().(sword);
player.();
player.();
}, );
.();
.(, () {
= .();
(!(event.() )) ;
attacker = event.();
victim = event.();
item = attacker.().();
(!item || item.() !== .) ;
meta = item.();
(!meta || !meta.()) ;
displayName = meta.();
(displayName.() === -) ;
.(victim.());
event.(event.() + );
attacker.();
.(attacker.() + );
});
.();
.(, () {
player = event.();
newSlot = event.();
item = player.().(newSlot);
(item && item.() === .) {
meta = item.();
(meta && meta.() && meta.().() !== -) {
= .();
.(player, ., , , , );
player.();
}
}
oldSlot = event.();
oldItem = player.().(oldSlot);
(oldItem && oldItem.() === .) {
oldMeta = oldItem.();
(oldMeta && oldMeta.() && oldMeta.().() !== -) {
= .();
.(player, .);
player.();
}
}
});
.();
.();
Quick Setup Guide#
Step 1: Create Scripts Folder#
Create plugins/ScriptsLab/scripts/ folder if it doesn't exist.
Step 2: Copy Script#
Copy script code into a new .js file in scripts folder.
Step 3: Reload#
Execute /script reload to load the script.
Ready Scripts Table#
| Script | File | Command | Description |
|---|---|---|---|
| Welcome | welcome_message.js | Automatic | Join/quit |
| Heal | heal_command.js | /heal | Restore HP |
| Flight | fly_command.js | /fly | Toggle flight |
| Broadcasts | auto_broadcast.js | Automatic | Announcements |
| Sword | custom_sword.js | /getlightningsword | Legendary sword |
Further Steps#
| Section | Description |
|---|---|
| Script API | Full API |
| Modules | Module system |
| Troubleshooting | Problem solving |