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

Идея Продолжение [CommandVote] - голосование на запуск команд

craftist

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
SavaSivkov
Upgrade 2 sep 2015! Нам нужно больше переменных!

Внимание! Создателя идеи ( @craftiste - зараза, ник спер ) уже больше 2 недель нет на руведре. Я решил продолжить его идею.
Возможно, такой плагин уже есть. Не посылайте меня в поиск, а лучше напишите ссылку на русское ведро.


Категория плагина: ГОЛОСОВАНИЕ, ВЫПОЛНЕНИЕ ЗАДАННЫХ КОМАНД

Предлагаемое название: CommandVote
Что я хочу: Человек с пермишеном пишет команду типа /cvote <Название отображаемое в конфиге> <Нужно голосов> <Выполняемая команда> [Таймаут] [Выполнять раз во сколько секунд]
Легенда скобок: <Обязательно> [Необязательно]
Пример:/cvote FirstOp 10 op_{LastVoted} false 10
Этот пример запустит голосование. Когда наберется 10 голосов за, опнется последний проголосовавший игрок.
Второй пример:/cvote SayAsKlichko 25 say_{YesVotes}_голосов_за 14
Этот пример запустит голосование. Когда наберется 25 голосов за, в чат высветится "25 голосов за"
Третий пример: /cvote NewVote 100 pex_user_{RandVoted}_group_set_Moder 120 604800
Этот пример запустит голосование, которое будет запускаться раз в 604800 секунд (раз в неделю). После набора 100 голосов, рандомный из голосовавших станет модератором, если 100 голосов наберется за 2 минуты.


Идеи для команд: /cvote <Название отображаемое в конфиге> <Нужно голосов> <Выполняемая команда> [Таймаут] [Выполнять раз в x секунд] - Запускает голосование (смотреть примеры)
/cvoteyes (или /cvote yes) - смотря как легче реализовать - голосует "За"
/cvoteno (или /cvote no) - голосует "Против"
/ccancel [Название отображаемое в конфиге] [if all] - Отменяет голосование. Если параметр не указан, отменяет последнее голосование. Если команда приобретает вид /ccancel false all - отменяются все. Следовательно, голосования с именем false не может быть
/cbroadcast [Message] - Пишет в чат сообщение [Message].
Просто сообщение. Без ника, и т.д. Просто такст. Если не указан, пишет тот, что указан в messages.yml по пути messages.broadcast
Идея от @tyumencev2004: /cv <Player> <Some> <Count> - в <Some> может быть либо Ban, либо Mute, либо Kick. Если наберется <count> голосов за, игрок <Player> будет либо кикнут (если <Some> == Kick), либо заглушен в чате (если <some> == Mute), либо забанен (если <Some> == Ban). Время мута или бана настраивается в конфиге.
/cyes <player> - голосует За в /cv за действие с <player>
/cnull <player> - обнуляет кол-во голосов за <player>
/cdelete <player> - удаляет VoteDo за <player>

Переменные (необязательно, но если можно реализовать - пожалуйста): {FirstVoted} - ник игрока, проголосовавшего первым
{LastVoted} - ник игрока, проголосовавшего последним
{Votes} - кол-во голосов (всего)
{YesVotes} - кол-во голосов "За"
{NoVotes} - кол-во голосов "Против"
{RandVoted} - рандомный игрок из проголосовавших
Не факт, что реализуется, может, другой синтаксис, но: {Rand:x,y} - рандомное число от x до y
{RandUser} - рандомный игрок на сервере (даже если он не голосовал)
Реализовать еще труднее, чем {Rand:x,y} - {RandWord="a","b"} - заменяется рандомным словом (а, или б) - причем этих слов может быть от 2 до бесконечности.
{RandPlayerPerm="example"} - рандомный игрок с правом cvote.perm.example
{RandBlockID} - рандомный ID блока
{RandItemID} - рандомный ID предмета
{RandMeta=1,0,4} - рандомный предмет с рандомной метадатой (в примере - вернет 1:0, 1:1:, 1:2, 1:3 или 1:4)

Update 2 sep 2015:
{CreatorNick} - ник создателя голосования
{TimesPlayed} - количество проигранных раз (если голосование таймерное, то есть запускается снова само раз в x секунд)
{NextTime} - кол-во секунд до следующего голосования (только если голосование таймерное)


Переменные можно конкатенировать, например {RandBlockID}{RandUser} может поменяться на 7VasyaPupkin (то есть, бедрок и ник рандомного игрока не сервере)

Идеи пермишенов: cvote.vote.yes - возможность голосовать "За"
cvote.vote.no - возможность голосовать "Против"
cvote.create.timed - возможность создавать голосования с таймаутом
cvote.create.notimed - возможность создавать вечные голосования
cvote.create.timed.timer - возможность создавать голосования, которые будут автоматически создаваться раз в x секунд (если ввести все аргументы, то по счету 5-ый аргумент) и с таймаутом
cvote.create.notimed.timer - возможность создавать вечные голосования, которые могут создаваться раз в x секунд
cvote.perm.abc - пермишен для переменной {RandPlayerPerm=""}
cvote.broadcast - пермишен для команды /cbroadcast
cvote.colored - пермишен для возможности писать цветовыми кодами в имени предмета (Item Meta Эссенциаловская) или в чате. Без нее все будет стандартного цвета, как без цветовых кодов.
cvote.player.create - пермишен для /cv
cvote.player.vote - пермишен для /cyes
cvote.adm.null - пермишен для /cnull
cvote.adm.delete - пермишен для /cdelete

Когда мне это нужно? В сентябре -_- надоело ждать

Зачем плагин? Возможность развлечь игроков. Администратор или человек с правом cvote.create.* создает голосование, игроки голосуют. После получения необходимого кол-ва голосов выполняется команда, в которой вместо пробелов - нижнее подчеркивание _. Также можно использовать переменные. Конфиг таким образом вообще не нужен, но можно создавать файлик yml, в котором будут все голосования.
А так же с помощью этого плагина можно сделать VoteBan, VoteMute или VoteKick.

Примерный вид конфига:
votes_main:
ИмяГолосования:
Timed: true
Timer:
- false
- 0
Timeout: 25
Command:
- '/kill {FirstVoted}'
VoteName:
Timed: false
Timer:
- true
- 604800
Timeout: -1
Command:
- '/gamemode {LastVoted} 1'
votes_players:
VasyaPupkin: #Ник игрока в голосовании
expiry: 10 #Сколько голосов осталось до действия
action: ban #Действие (ban, kick, mute)
Second:
expiry: 20
action: kick
settings:
broadcast: true #true - пишет в чат при создании голосования, adminonly - пишет только создателю, false - ваще никому не пишет
maxvotes: inf #число - максимально голосований. Если inf - то бесконечно.
maximals:
player_votes:
ban: 30 #Макс время бана - 30 секунд
kick: 10 #Зайти можно ток через 10 секунд после кика
mute: 120 #Макс время мута - 2 минуты (120 секунд)
Вид файла с языками:
messages:
error: '&4Ошибка в команде. Попробуйте снова'
noperm: '&4У вас нет прав!'
created:
timed: 'Создано временное голосование!'
notimed: 'Создано вечное голосование!'
timertimed: 'Создано временное таймерное голосование!'
timernotimed: 'Создано вечное таймерное голосование!'
broadcast: 'Стандартное сообщение для команды /cbroadcast'
#Еще необходимые сообшения.

Как-то так. Будут вопросы - задавайте.
Если вы видите конфиг по-другому (но с теми же функциями), то можете поделиться им в комментариях. Самый удобный конфиг попадет в шапку (чтобы его увидели девелоперы) с указанием авторства (можете попросить и без, я укажу без указания)
Критика (не жесткая) принимается. Тапки, валенки, другая обувь - нет.
 
Последнее редактирование:
Я уже когда то говорил, напишу за определенное количество монет.
Его уже пишет @fromgate . Наверное, пишет. А может, времени нету.
Я уже когда то говорил, напишу за определенное количество монет.
В таком случае тебе сюда, потому что в этом разделе - идеи, а не покупка плагина.
 
Если вы ему заплатили то он однозначно его пишет.
Этот человек уже ни раз показывал свои навыки в кодинге и создании стабильных плагинов.
1) ReActions
2) Он уже начал писать (наверное). И что вы все его так ненавидите?
Подождем плагин. Раз вам всем так неймется, что ж, просто подождем плагин, и вы исправите его, раз вам не нравится fromgate.
 
Я жду моей реализации - VoteBan/VoteMute. Это эта же реализация, но нужно что бы мог запускать любой игрок и параметров не было так много, а был один - ник игрока за которого голосуешь в бан/мут.
 
Я жду моей реализации - VoteBan/VoteMute. Это эта же реализация, но нужно что бы мог запускать любой игрок и параметров не было так много, а был один - ник игрока за которого голосуешь в бан/мут.
Жди =) Хорошо. Добавлю в идею VoteBan
Я жду моей реализации - VoteBan/VoteMute. Это эта же реализация, но нужно что бы мог запускать любой игрок и параметров не было так много, а был один - ник игрока за которого голосуешь в бан/мут.
Читай и радуйся. Готова простая команда. Для голосования дай игрокам пеимишен cvote.player.* и все! Они смогут создавать голосования и голосовать за!
 
1) ReActions
2) Он уже начал писать (наверное). И что вы все его так ненавидите?
Подождем плагин. Раз вам всем так неймется, что ж, просто подождем плагин, и вы исправите его, раз вам не нравится fromgate.
Мы не говорили что он плохой.
Я не заставляют вас покупать у меня плагин, просто предложил ускорить написание плагина.
 
Жди =) Хорошо. Добавлю в идею VoteBan

Читай и радуйся. Готова простая команда. Для голосования дай игрокам пеимишен cvote.player.* и все! Они смогут создавать голосования и голосовать за!
Уже радуюсь :P
 
О! Ооооо! ОООООО!!! Я совсем забыл. Постараюсь впихнуть в "свой график" ;)
 
@craftist
В общем, я сейчас пишу один большой плагин под nukkit. Когда закончу - займусь этим.
 

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

Назад
Верх