Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Подключи Vault, WorldGuard проекту и задай Scheduler, который будет снимать деньги. Вариантов для Scheduler'a много: он может просто запускаться через каждые два дня - проблема в том, что сервер может перезагружаться, он может брать определённое время, например, из конфига и проверять, сходится ли время системы с указанным и снимать деньги с игроков и т.д. 😁Хочу сделать плагин, который раз в 2 реальных дня будет снимать с овнеров определенных регионов определенную сумму, но если овнеров несколько, сумма будет делиться на всех. Не понимаю, как это осуществить. Помогите пожалуйста
final static int MAX_DIFFERENCE = 5;
{ // тело планировщика
// если разность текущего времени и времени проверки больше пяти минут - забить хер
if (currentMinutes - checkMinuter > MAX_DIFFERENCE
|| currentMinutes - checkMinuter < 0)
return;
// получить список арендуемых регионов
rgList = getRentedRegions();
// Для каждого региона
for (Region rg : rgList) {
// Получить список владельцев
owners = rg.getOwners();
for (Player owner : owners) {
// Если не получилось снять деньги у игрока - удалить его из владельцев
if (!vault.withdrawMoney(owner)) {
rg.removeOwner(owner);
} else {
// code...
}
}
}
}
Названия регионов будут прописаны в конфиге, а напротив названия будет сумма, которая будет списываться с игрока. Пример ниже.Подключи Vault, WorldGuard проекту и задай Scheduler, который будет снимать деньги. Вариантов для Scheduler'a много: он может просто запускаться через каждые два дня - проблема в том, что сервер может перезагружаться, он может брать определённое время, например, из конфига и проверять, сходится ли время системы с указанным и снимать деньги с игроков и т.д. 😁
Также, как я понимаю, необходимо хранить регионы, которые арендуются, т.к., видимо, не все регионы будут такими 😁 Далее уже просто в Scheduler'е можно брать список владельцев/участников, делать проверки и снимать деньги.
Важно сразу проверять время в Scheduler'e, чтобы не создавать дополнительную нагрузку, т.к. время тут самый важный фактор.
Материал по планировщикам: клик, клик
UPD: псевдокод, приближённый к Java:
PHP:final static int MAX_DIFFERENCE = 5; { // тело планировщика // если разность текущего времени и времени проверки больше пяти минут - забить хер if (currentMinutes - checkMinuter > MAX_DIFFERENCE || currentMinutes - checkMinuter < 0) return; // получить список арендуемых регионов rgList = getRentedRegions(); // Для каждого региона for (Region rg : rgList) { // Получить список владельцев owners = rg.getOwners(); for (Player owner : owners) { // Если не получилось снять деньги у игрока - удалить его из владельцев if (!vault.withdrawMoney(owner)) { rg.removeOwner(owner); } else { // code... } } } }
Regions:
rgtest: 200
rgtestn: 300
rgtestnn: 400
Да, вполне хороший вариант - сохранять дату последней оплаты и смотреть разность между ней и текущей: нет большой нагрузки и интуитивно понятно)По сути, я могу запускать при включении плагина ранебл, который время от времени будет сравнивать текущую дату с датой последней оплаты, но вот не будет ли это парашным вариантом? Прошу совета от опытных кодеров =)
https://www.spigotmc.org/resources/residence-1-7-10-up-to-1-13-1.11480/Хочу сделать плагин, который раз в 2 реальных дня будет снимать с овнеров определенных регионов определенную сумму, но если овнеров несколько, сумма будет делиться на всех. Не понимаю, как это осуществить. Помогите пожалуйста