Перейти к публикации

[Python] VimeCheckify - open source чекер для режима Prison


Рекомендованные сообщения

VimeCheckify - это чекер с открытым исходным кодом для режима Prison на сервере VimeWorld.

Он включает в себя следующий функционал:

  • оповещения о респауне боссов
  • оповещения о службах в церкви
  • оповещения о респауне шахт
  • настройки с возможностью их изменения с помощью команд внутри игры

Инструкции по запуску приложения и использованию команд находятся в README на GitHub

 

О багах, предложениях можно писать в эту тему или в Telegram (@Addefan)

 

P.S. В первую очередь приложение создавалось, чтобы применить полученные за год знания в работе над полезным проектом из реальной жизни.

К сожалению, пока что приложение консольное, с GUI вместо команд было бы намного удобнее, но пока что мне не хватает знаний и опыта для этого. Вполне возможно что следующим большим обновлением приложения станет переход на графический интерфейс. Ждём?

Ссылка на комментарий
8 часов назад, Deumus сказал:

lzjGMZV5M7U.jpg?size=521x138&quality=96&

Про год: "чтобы написать чекер"? Я изучаю питон для того, чтобы получить и улучшить свои профессиональные навыки, лол. А это просто один из проектов в процессе этого обучения.

Про 5 минут: Да, можно написать чекер в 5 строчек чисто для себя, где не будет ничего кроме обычных оповещений, но мой проект написать за 5 минут нельзя. Тут много другой работы, особенно над "обёрткой". Те же самые иконки, дополнительный функционал помимо боссов, докстринги, README. 

Про match: Чем ему не нравится match? Изначально эти команды были написаны через if, но я решил использовать новый функционал из 3.10. Match в данном случае выглядит приятней. Интересно, через что сделал бы команды этот гений.

Про "ужасный код": опять же интересно, в чём мой код ужасен xD. Pylint'у, например, всё нравится. Да, мне не нравятся пару строчек в моём коде и еще main-функция в итоговом экземпляре получилась жирноватая, но ничего ужасного не нахожу. Жду конкретных примеров от этого человека.

Ссылка на комментарий
13 часов назад, Addefan сказал:

Про год: "чтобы написать чекер"? Я изучаю питон для того, чтобы получить и улучшить свои профессиональные навыки, лол. А это просто один из проектов в процессе этого обучения.

Про 5 минут: Да, можно написать чекер в 5 строчек чисто для себя, где не будет ничего кроме обычных оповещений, но мой проект написать за 5 минут нельзя. Тут много другой работы, особенно над "обёрткой". Те же самые иконки, дополнительный функционал помимо боссов, докстринги, README. 

Про match: Чем ему не нравится match? Изначально эти команды были написаны через if, но я решил использовать новый функционал из 3.10. Match в данном случае выглядит приятней. Интересно, через что сделал бы команды этот гений.

Про "ужасный код": опять же интересно, в чём мой код ужасен xD. Pylint'у, например, всё нравится. Да, мне не нравятся пару строчек в моём коде и еще main-функция в итоговом экземпляре получилась жирноватая, но ничего ужасного не нахожу. Жду конкретных примеров от этого человека.

тогда это твой худший проект за весь год начиная от кода, заканчивая навыками
Команды можно реализовать путем создания что-то вроде CommandMap и создать абстрактный класс самой команды и делаешь там абстрактный метод execute и соответственно когда тебе захочется добавить новую команду, то тебе будет достаточно просто добавить новый класс с командой наследуясь от абстрактной и зарегистрировать ее в CommandMap, я, конечно, не знаю, есть ли вообще понятие ооп в питоне, но если его нет, то ты зря выбрал этот язык
в итоге получилось бы что-то вроде этого

commandMap.register(new YourCommand(name, desc, usage, aliases));

В map ты просто добавляешь в лист команды и можно еще сделать готовый метод getCommand() который на вход принимает строку (аля название или алиас команды) который будет возвращать команду проверяя по имени и алиасам всех команд соответственно

ну и потом проверяешь просто введенную строку на '/' убираешь и разбиваешь на массив встроенным методом, получаешь первый элемент массива -> это и будет самой командой, а остальные элементы - аргументы
По имени получаешь команду через getCommand(name) и если null то соответственно команды такой нет, если есть то просто у этой команды вызываешь метод execute() который ты реализовал в классе команды

но мне кажется ты и не понял ничего из того, что я написал

Изменено пользователем TeamLeader
Ссылка на комментарий
2 часа назад, TeamLeader сказал:

тогда это твой худший проект за весь год начиная от кода, заканчивая навыками

Ваше мнение очень важно для нас, вам перезвонят

Для меня проект полезный, получил немало знаний благодаря нему (работа с конфиг. файлами, с регулярками, с оформлением проекта)

 

2 часа назад, TeamLeader сказал:

есть ли вообще понятие ооп в питоне

Всё есть, не переживай

 

2 часа назад, TeamLeader сказал:

но мне кажется ты и не понял ничего из того, что я написал

Тебе кажется, перекрестись

 

А за идею спасибо, и правда так будет удобнее и правильнее. Ко мне пока что так явно в голову не приходит использование ООП, видимо опыта не хватает.

 

Да и вообще, я обеими руками за конструктивную критику, не стоит токсичить, это выглядит блевотно

Ссылка на комментарий

Во-первых, цвета лучше выносить в отдельные константы, чтобы не это выглядело настолько ужасно, да и удобности это тоже добавит

gjpgTgH.png

Во-вторых, команды, как сказали выше, выносить в отдельные классы

В-третьих, не использовать sleep() это дурнейший тон, не знаю, как в питоне, но в других языках за это бы казнили

Ссылка на комментарий
3 часа назад, Refli сказал:

цвета лучше выносить в отдельные константы

Понял, принял

 

3 часа назад, Refli сказал:

команды, как сказали выше, выносить в отдельные классы

уже в процессе

 

3 часа назад, Refli сказал:

но в других языках за это бы казнили

Насчёт этого первый раз в жизни слышу, вообще не вижу другого пути в случае моего использования. Если не сложно, можешь объяснить в чем проблема sleep'a в других языках?

Ссылка на комментарий
1 минуту назад, Addefan сказал:

Понял, принял

 

уже в процессе

 

Насчёт этого первый раз в жизни слышу, вообще не вижу другого пути в случае моего использования. Если не сложно, можешь объяснить в чем проблема sleep'a в других языках

загугли там более подробно скажут в чем проблема

Ссылка на комментарий
3 часа назад, Refli сказал:

загугли

Я как раз до ответа погуглил немного, и вот сейчас ещё раз, но ничего особого я не нашел. Почти всё, что я нашёл, было о потоках, но у меня однопоточное приложение

 

В общем надеюсь если опытные питонисты заглянут, то прояснят ситуацию 

Ссылка на комментарий

Блокируя поток переднего плана ты не сможешь закрыть приложение, пока не пройдет x время, указанное в sleep, в питоне не знаю как, возможно это не так работает - одна из причин

41 минуту назад, Addefan сказал:

Я как раз до ответа погуглил немного, и вот сейчас ещё раз, но ничего особого я не нашел. Почти всё, что я нашёл, было о потоках, но у меня однопоточное приложение

 

В общем надеюсь если опытные питонисты заглянут, то прояснят ситуацию 

Изменено пользователем Refli
Ссылка на комментарий
  • 2 недели спустя...
  • 2 недели спустя...
02.09.2022 в 11:39, Refli сказал:

В-третьих, не использовать sleep() это дурнейший тон, не знаю, как в питоне, но в других языках за это бы казнили

У нег овсе ещё в впереди (по поводу казни)

Ну я не знаю мне кажется что боссчекер это самое легкое что можно сделать, его можно даже на телефона написать

Ссылка на комментарий
  • 2 месяца спустя...

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...