Giter VIP home page Giter VIP logo

astreatss / realmsplayerlistbot Goto Github PK

View Code? Open in Web Editor NEW
25.0 2.0 10.0 1.4 MB

A bot that helps out owners of Minecraft: Bedrock Edition Realms by showing various statistics related to player join/leaves.

Home Page: https://rpl.astrea.cc

License: GNU Affero General Public License v3.0

Python 99.90% Dockerfile 0.10%
realm minecraft minecraft-bedrock minecraft-bedrock-realm discord bot minecraft-realms minecraft-bedrock-realms playerlist discord-bot

realmsplayerlistbot's Introduction

Realm Playerlist Bot's Banner.

Server Setup Guide Support Server Purchase Premium

A bot that helps out owners of Minecraft: Bedrock Edition Realms by showing various statistics related to player join/leaves.

It's:

  • πŸš€ Fast: Under the right (and typical) circumstances, it can send a list of ~300 players in under 2 seconds, most of which (~1.5 seconds) is spent just sending messages to Discord.
  • πŸ“Š Informative: The main feature of the bot, the playerlist, can give a detailed log of players on a Realm at a moment's notice. You can also get a breakdown for an individual player to analyze as you wish.
  • πŸ‘Œ Easy to Use: Simply add the bot, link your Realm, and you already have join/leave tracking enabled - no need to use your Xbox account for the bot's features. Take a look at the Server Setup Guide for more information.
  • πŸ”“ Open Source: The code is available to the public and able to be audited and learned from. Dedicated users can even (try to) self-host the bot, if they wish.

For more information, please check the official website.

Copyright and License Notice

Copyright 2020-2024 AstreaTSS.

Unless otherwise stated, all files in this repository are licensed under the GNU Affero General Public License v3.0. A copy of the license is available in the LICENSE file.

The Realms Playerlist Bot is not an official Minecraft product, and is not approved by or associated with Mojang or Microsoft.

realmsplayerlistbot's People

Contributors

astreatss avatar dependabot[bot] avatar pre-commit-ci[bot] avatar pyup-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

realmsplayerlistbot's Issues

Randomly sorted and automatically updated splash texts

Make splash texts come out in a random order (IE a randomly sorted list - every entry should appear once before looping), instead of following the splash texts in the order listed in the file. This should be able to handle new entries being added to the end (all new entries should be added to the end, FYI), adding them into the randomly sorted list as needed.

Allow for "nicknaming" users

Per guild, of course. This should replace mentions of their name in online, playerlist, and features correlated to those with the nickname. This should not affect the inputting of names, however.

Some weird error while self hosting.

Error Code is

C:\Users\PC\Downloads\RealmsPlayerlistBot-main\RealmsPlayerlistBot-main>py main.py
Traceback (most recent call last):
  File "C:\Users\PC\Downloads\RealmsPlayerlistBot-main\RealmsPlayerlistBot-main\main.py", line 92, in <module>
    sentry_sdk.init(dsn=os.environ["SENTRY_DSN"], before_send=default_sentry_filter)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\hub.py", line 120, in _init
    client = Client(*args, **kwargs)  # type: ignore
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\client.py", line 106, in __init__
    self._init_impl()
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\client.py", line 128, in _init_impl
    self.transport = make_transport(self.options)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\transport.py", line 534, in make_transport
    return transport_cls(options)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\transport.py", line 142, in __init__
    Transport.__init__(self, options)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\transport.py", line 56, in __init__
    self.parsed_dsn = Dsn(options["dsn"])
                      ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\utils.py", line 200, in __init__
    raise BadDsn("Unsupported scheme %r" % parts.scheme)
sentry_sdk.utils.BadDsn: Unsupported scheme ''

C:\Users\PC\Downloads\RealmsPlayerlistBot-main\RealmsPlayerlistBot-main>pip install xbox-webapi
Requirement already satisfied: xbox-webapi in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (2.0.11)
Requirement already satisfied: aiohttp in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from xbox-webapi) (3.8.3)
Requirement already satisfied: appdirs in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from xbox-webapi) (1.4.4)
Requirement already satisfied: ms-cv in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from xbox-webapi) (0.1.1)
Requirement already satisfied: pydantic in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from xbox-webapi) (1.10.4)
Requirement already satisfied: ecdsa in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from xbox-webapi) (0.18.0)
Requirement already satisfied: attrs>=17.3.0 in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from aiohttp->xbox-webapi) (22.2.0)
Requirement already satisfied: charset-normalizer<3.0,>=2.0 in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from aiohttp->xbox-webapi) (2.1.1)
Requirement already satisfied: multidict<7.0,>=4.5 in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from aiohttp->xbox-webapi) (6.0.4)
Requirement already satisfied: async-timeout<5.0,>=4.0.0a3 in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from aiohttp->xbox-webapi) (4.0.2)
Requirement already satisfied: yarl<2.0,>=1.0 in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from aiohttp->xbox-webapi) (1.8.2)
Requirement already satisfied: frozenlist>=1.1.1 in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from aiohttp->xbox-webapi) (1.3.3)
Requirement already satisfied: aiosignal>=1.1.2 in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from aiohttp->xbox-webapi) (1.3.1)
Requirement already satisfied: six>=1.9.0 in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from ecdsa->xbox-webapi) (1.16.0)
Requirement already satisfied: typing-extensions>=4.2.0 in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from pydantic->xbox-webapi) (4.4.0)
Requirement already satisfied: idna>=2.0 in c:\users\pc\appdata\local\programs\python\python311\lib\site-packages (from yarl<2.0,>=1.0->aiohttp->xbox-webapi) (3.4)

C:\Users\PC\Downloads\RealmsPlayerlistBot-main\RealmsPlayerlistBot-main>py main.py
Traceback (most recent call last):
  File "C:\Users\PC\Downloads\RealmsPlayerlistBot-main\RealmsPlayerlistBot-main\main.py", line 92, in <module>
    sentry_sdk.init(dsn=os.environ["SENTRY_DSN"], before_send=default_sentry_filter)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\hub.py", line 120, in _init
    client = Client(*args, **kwargs)  # type: ignore
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\client.py", line 106, in __init__
    self._init_impl()
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\client.py", line 128, in _init_impl
    self.transport = make_transport(self.options)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\transport.py", line 534, in make_transport
    return transport_cls(options)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\transport.py", line 142, in __init__
    Transport.__init__(self, options)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\transport.py", line 56, in __init__
    self.parsed_dsn = Dsn(options["dsn"])
                      ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python311\Lib\site-packages\sentry_sdk\utils.py", line 200, in __init__
    raise BadDsn("Unsupported scheme %r" % parts.scheme)
sentry_sdk.utils.BadDsn: Unsupported scheme ''

and i dont seem to see a solution.

Add in webhook support for the autorunning features

Currently, the bot just sends messages for autorunning features as itself. Using webhooks would both provide a nice cushion for futureproofing against Discord ratelimits and allow some customization on people's ends. This should be opt-in, as some people may not want to give the bot permission to make webhooks and may not want to give the bot a webhook to use.

Is "Playerlist Premium" available if selfhosting the bot?

In the description of this feature, it says "Realms Playerlist Premium allows for extra features that otherwise could not be provided by the bot without funding." which I assume is talking about the main bot that's hosted by you.

The main reason for not making this feature freely available seems to be the extra load generated by having this feature available to everyone who invites this particular instance of the bot, which brings me to my question:

Is this feature available in the publicly released source code? If so, would it work by default, or does the source code implement the same paid verification system in your public instance of the bot?

EDIT: Poking around in the example configuration file reveals the option PREMIUM_ENCRYPTION_KEY, so I assume that the Premium features are publicly available in the source code (and are activated in the same way as on the publicly invite-able instance of the bot)

Import issues

Hey so the import things don’t work can you send me the updated ones. I did install them all

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.