Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин RandomTeleport [TP/MECH] [1.7-1.12] - легкий плагин на случайный телепорт с полезными дополнениями

Заинтересовал ли Вас функционал этой версии популярного плагина?

  • Да

    21 голосов 80,8%
  • Нет

    5 голосов 19,2%

EvilGeek

Новичок
Пользователь
Баллы
6
Имя в Minecraft
EvilGeek
RandomTeleport​
Версия плагина: 1.0
Под версию сервера: 1.7-1.12

Привет! Идея плагина не нова и есть много вариантов реализации, но этот плагин я писал, потому что не мог найти легкое решение с нужным мне функционалом. Делюсь им с теми, кто тоже в поиске хорошего плагина на рандомную телепортацию. Код написан мною с 0 и не заимствуется у других авторов, все реализовано максимально просто для меньшей нагрузки. Предлагайте идеи по улучшению, всегда рад адекватной критичке.

Особенности:

  • Случайная телепортация по серверу без лишнего
  • Встроенная задержка на команду для простых игроков
  • Возможность снимать задержку для игроков с правом mc.moder
  • Не телепортирует в воду или лаву (идея написания плагина возникла именно из-за этого)
  • Полная настройка всех сообщений в конфиге
  • Установка координат для телепортации в конфиге
Команды
  • /rtp или /randomtp - телепортация (требуется право randomtp.мир)
Код:
#Требуется прописать для каждого мира
world:
  xFrom: 1
  xTo: 10000
  zFrom: 1
  zTo: 10000
world_nether:
  xFrom: 1
  xTo: 2000
  zFrom: 1
  zTo: 2000
cooldown-secs: 10
cooldown: '§fОждиайте §6%cooldown% секунд§f перед следующей телепортацией.'
error: '§6Произошла ошибка во время нахождения безопасного места.'
teleporting: '§6Телепортирую...'
#Права для телепорта по миру: rantomtp.нвазние.мира
noperm: '&cУ тебя нет прав на случайный телепорт в этом мире. Приобрети &6[VIP]'

 
Представляю, если за VIP можно будет случайно телепортироваться. Лул.
 
Представляю, если за VIP можно будет случайно телепортироваться. Лул.
это может быть полезно для дополнения возможностей доната, например, телепортация по аду - только випам. Так же для кастомных RPG сборок пригодиться.
 
это может быть полезно для дополнения возможностей доната, например, телепортация по аду - только випам. Так же для кастомных RPG сборок пригодиться.
Возможно, но это удобный инструмент, чтобы не тратить лишнее время.
 
Возможно, но это удобный инструмент, чтобы не тратить лишнее время.
С моей версией можно регулировать это по своему желанию. По-моему, это скорее плюс. В целом плагин писался, чтобы не было телепортации в воду, лишнего для меня функционала и нормальной задержки. Если ставить задержку сторонним плагином, то использование алиасов (/rtp, /randomtp) дает дополнительную возможность телепорта, в один момент мои игроки нашли её и стали использовать. К тому же я постарался максимально оптимизировать код.
 
С моей версией можно регулировать это по своему желанию. По-моему, это скорее плюс. В целом плагин писался, чтобы не было телепортации в воду, лишнего для меня функционала и нормальной задержки. Если ставить задержку сторонним плагином, то использование алиасов (/rtp, /randomtp) дает дополнительную возможность телепорта, в один момент мои игроки нашли её и стали использовать. К тому же я постарался максимально оптимизировать код.
Тем не менее об названии пермишеннов ничего не знаешь. Первая часть должна называться самим плагином, тоесть randomteleport.moder
 
Задержки лучше хранить в файле, хотя бы в yml, иначе сервер перезагрузится и все, пока задержкам. Зачем каждую секунду обновлять задержки? Записываешь дату, когда задержка должна убраться, и сравниваешь это время с текущим, если текущее больше или равно, то задержка прошла.
Теперь по поводу нахождения рандомной точки. Лучше использовать ThreadLocalRandom (ThreadLocalRandom.current()), и не создавай каждый раз новый объект Random'a, сделай статик поле и вызывай его. Так же получить наивысшую точку по координатам можно методом: world.getHighestBlockYAt(x, z)
 
Вот конфиг. По идее должно портовать от -99983, -99686 до 100017, 100314 (у меня центр в 17, 314 и границы по 100к в каждую сторону). Теперь вопрос, почему кидает в пределах -99983, -99686 до 0, 0 (примерно) ?

#Требуется прописать для каждого мира
world:
xFrom: -99983
xTo: 100017
zFrom: -99686
zTo: 100314
world_nether:
xFrom: -99983
xTo: 100017
zFrom: -99686
zTo: 100314
cooldown-secs: 5
cooldown: '§fОждиайте §6%cooldown% секунд§f перед следующей телепортацией.'
error: '§6Произошла ошибка во время нахождения безопасного места.'
teleporting: '§6Телепортирую...'
#Права для телепорта по миру: rantomtp.название_мира
noperm: '&cУ тебя нет прав на случайный телепорт в этом мире.'
 
если делать от 1 до 100к то портует в положительном диапазоне т.е. от 0,0 до 100000,100000
 
Зачем делать кастомный кулдаун там? Это же не плагин на кулдауны, если нужно они поставять кулдаун на команду сами.
Так же у тебя в аду всегда будет тпхать на самый верх ада.
Еще сделай глобальные переменные в которых ты будешь хранить уже готовые смс, так тоже получше будет.
Еще в run() можно обойтись одним try{}.
 
Помогите хочу что бы игроки могли писать /rtp ето возможно без permission?
 
Помогите хочу что бы игроки могли писать /rtp ето возможно без permission?
Плагин хреновый, поставь другой нормальный или напиши свой, тут хватит 5 кб кода с учетом конфига, не более.
 

Поделиться этой страницей

Назад
Верх