Jump to content

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


Recommended Posts

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

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

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

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

 

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

 

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

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

Link to comment
8 часов назад, Deumus сказал:

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

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

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

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

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

Link to comment
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() который ты реализовал в классе команды

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

Edited by TeamLeader
Link to comment
2 часа назад, TeamLeader сказал:

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

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

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

 

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

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

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

 

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

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

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

 

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

 

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

Link to comment
13 минут назад, TeamLeader сказал:

твое мнение меня не волнует ваще

это было и не для тебя, с тобой и так всё понятно 🤡

Link to comment

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

gjpgTgH.png

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

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

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

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

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

 

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

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

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

 

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

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

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

Link to comment
1 минуту назад, Addefan сказал:

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

 

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

 

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

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

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

загугли

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

 

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

Link to comment

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

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

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

 

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

Edited by Refli
Link to comment
  • 2 weeks later...

Мне кажется уже нету смыслов в них, потому что щас их уже очень и очень много.

А когда их ни у кого не было их продавали, так что уже бессмысленно 

Link to comment
  • 2 weeks later...
02.09.2022 в 11:39, Refli сказал:

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

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

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

Link to comment
2 часа назад, FullPlz сказал:

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

Ну так напиши 

Mr Bean Reaction GIF

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...