• IP Copiato!
    Premi per Copiare L'IP
    Caricamento in corso...
  • Entra nel nostro discord
    Caricamento in corso...
  • Non esisteva un bot Discord per visualizzare le statistiche dei giocatori, quindi ho creato il mio

    8hi

    Nuovo Membro
    Ho fatto degli aggiornamenti, premi qui per vederli

    Aggiungi il bot al tuo server

    Recentemente mi sono reso conto che non esisteva un bot di Discord per visualizzare le statistiche degli utenti di CoralMC. Per questo ho deciso di creare il mio e di renderlo pubblico.

    Il problema che ho avuto inizialmente (e anche il motivo per il quale ho deciso di pubblicare il bot nella sezione "Suggerimenti"), e che non esiste un'API ufficiale di Coral. Nel caso in cui non ne foste al corrente, un'API è un modo per far interagire due programmi o sistemi informatici in modo che possano scambiare dati e funzionalità.

    In mancanza di un'API ho dovuto trovare un modo per arrangiarmi. Visto che il comando /stats in gioco ritorna le statistiche di un giocatore, ho semplicemente fatto entrare un bot (non e' sempre il caso, ma lo trovare nella lobby delle bedwars poco dietro lo spawn che va avanti e indietro) nel server che, rispettando il limite di 3 secondi imposto dal server, controlla le statistiche degli utenti su richiesta. Ho quindi costruito una mia API non-ufficiale che mi ritorna qualcosa di simile a questo:
    JavaScript:
    interface PlayerStats {
      level: number,
      experience: number,
      coins: number,
      kills: number,
      deaths: number,
      finalKills: number,
      finalDeaths: number,
      bedsDestroyed: number,
      wins: number,
      losses: number,
      currentWinstreak: number,
      highestWinstreak: number,
    }
    Come potete ben vedere, contiene anche statistiche che non sono presenti nel comando /stats. Per farlo ho semplicemente fatto l'operazione inversa di alcuni campi e li ho formattati in maniera carina. L'API non ritorna campi come KD Ratio, FKD Ratio e WL Ratio perche' sarebbe ridondante considerando che puo' essere facilmente calcolato utilizzando gli altri valori.

    Per finire, ho anche implementanto una piccola cache, quindi utenti che sono stati richiesti di recente (<30 min) non vengono aggiornati. Ho fatto questo per non spammare il server di richieste inutili.

    Per finire, ho semplicemente creato un bot di Discord che fa richieste alla mia API e ritorna le seguenti statistiche:
    Il bot non richiede permessi particolari, e potete invitarlo al vostro server premendo qui.

    Ho piani di aggiungere nuove funzioni, ma il mio sistema sfortunatamente impone dei limiti che sono surmontabili, tra cui:
    - Visualizzare le skin degli utenti SP
    - Visualizzare gli amici di un certo utente
    - Visualizzare lo stato di un utente (online/offline)

    Spero che in futuro venga implementata un'API ufficiale, ma se per ora volete tenere traccia delle vostre statistiche da Discord e senza aver bisogno di entrare nel server fate pure! Nel caso in cui doveste trovare un bug potete contattarmi in privato su Discord (@gigantino)
     
    Ultima modifica:

    gvng

    Membro Attivo
    +1000
    è un'idea che ho sempre avuto, ma che non ho mai realizzato per mancanza di interesse.
    Ti faccio i miei più sinceri complimenti per esserti applicato così di tua spontanea volontà.
    Piccola curiosità: cosa hai utilizzato per il lato mc? MCP?
     

    8hi

    Nuovo Membro
    +1
    Forse non è la sezione giusta per parlare di questo ma quello che hai fatto è una figata. Complimenti!
    Grazie mille, sfortunatamente non sembrano esserci sezioni apposta e questa sembrava quella più appropriata
    +1000
    è un'idea che ho sempre avuto, ma che non ho mai realizzato per mancanza di interesse.
    Ti faccio i miei più sinceri complimenti per esserti applicato così di tua spontanea volontà.
    Piccola curiosità: cosa hai utilizzato per il lato mc? MCP?
    L'API è scritta in TypeScript e usa il modulo mineflayer. Ho considerato di mettere il codice aperto, ma considerando che il tutto mi ha preso 3/4 ore devo dire di non essere particolarmente fiero del codice.

    L'API per ora ha dei piccoli problemi, perché mi sono reso conto che, per qualche strano motivo, esattamente alle 4 di notte OGNI NOTTE Coral riavvia i proxy e va offline.
    Inoltre il tutto è hostato su un raspberry che ho ormai da 9 anni, che sicuramente non offre performance altissime.

    Comunque nel caso in cui dovesse esserci interesse stavo pensando di (sempre seguendo i limiti imposti da Coral) prendere le statistiche di tutti gli utenti una volta al giorno e creare dei grafici che tracciano l'andamento delle statistiche. Non lo trovo particolarmente difficile e credo che la comunità potrebbe apprezzare :)

    Comunque ribadisco, sarebbe 1000 volte più comodo avere un'API ufficiale che è anche il motivo del post. La mia API è estremamente spartana e dato che il tutto passa attraverso il mio piccolo raspberry da 1gb di RAM attaccato in un angolino del mio appartamento non me la sento di mettere la mia istanza pubblica. Sono sicuro che gli utenti ne farebbero buon uso, e l'API di Hypixel è un buon esempio.

    Edit: Typo
     

    Vegetazione

    Nuovo Membro
    +1 Innanzitutto bel lavoro, si vede che ti ci sei dedicato moltissimo, secondo me già l'idea è interessantissima, poi hai anche già creato un bot. Ho due suggerimenti. Il primo è che secondo me si potrebbe anche fare la stessa identica cosa con le stats del kitpvp, so che è più difficile perchè li le stats non appaiono in chat, ma credo che sia comunque possibile. Poi secondo me se qualcuno si vergogna delle sue stats o per qualche motivo non le vorrebbe mostrare si potrebbe mettere un'opzione sul discord che permette al giocatore che l'ha selezionata di non pubblicare le sue stats. Comunque complimenti, si vede che ti sei impegnato molto
    -Vegetazione
     

    ohNekoh

    Mod+
    Supporter
    Ciao, l'idea è fantastica e ti faccio i miei complimenti.
    Al momento il bot non funziona purtroppo, ma fammi sapere se tornerà on, mi farebbe molto piacere
     

    8hi

    Nuovo Membro
    Ciao, l'idea è fantastica e ti faccio i miei complimenti.
    Al momento il bot non funziona purtroppo, ma fammi sapere se tornerà on, mi farebbe molto piacere
    Si, il bot al momento non e' online perche' hanno fatto dei cambiamenti alle statistiche (fortunatamente).
    Per questo sto riscrivendo in maniera un po' piu' ordinata il tutto e sto migliorando la cache, il che mi permettera' di creare un'API pubblica per tutti gli sviluppatori. Non sono a casa da diversi giorni, ma domani pomeriggio dovrei riuscire a metterci mano :)
     

    8hi

    Nuovo Membro
    +1 Innanzitutto bel lavoro, si vede che ti ci sei dedicato moltissimo, secondo me già l'idea è interessantissima, poi hai anche già creato un bot. Ho due suggerimenti. Il primo è che secondo me si potrebbe anche fare la stessa identica cosa con le stats del kitpvp, so che è più difficile perchè li le stats non appaiono in chat, ma credo che sia comunque possibile. Poi secondo me se qualcuno si vergogna delle sue stats o per qualche motivo non le vorrebbe mostrare si potrebbe mettere un'opzione sul discord che permette al giocatore che l'ha selezionata di non pubblicare le sue stats. Comunque complimenti, si vede che ti sei impegnato molto
    -Vegetazione
    La prima idea mi piace e il fatto che le statistiche non siano in chat non e' un grande problema. Il problema piu' grande e' che una parte dell'API (ovvero quella che si occupa di entrare in partita e prendere le statistiche) e' hostata su un mio RaspberryPI molto vecchio (un computerino ARM con 1gb di RAM), gia' molto lento con un singolo bot, immagina con due!
    Ho un'altra scheda simile al RaspberryPI ma non mi sono mai preso il tempo di avviarlo nonostante lo abbia sulla scrivania da 2 mesi, ma appena tornero' dalle vacanze (circa un mese) ci faro' sicuramente un pensierino perche' KitPVP sembra essere una modalita' abbastanza attiva.

    Parlando della seconda idea, non credo abbia molto senso considerando che le statistiche sono pubbliche in ogni caso. Sarebbe piu' un qualcosa che Coral in se dovrebbe gestire...
     

    Larry

    Membro Attivo
    +1 Molto interessante ed utile per chi magari non è davanti al pc e vuole controllare le proprie statiche o di altri utenti.
    Se si accettano idea sarebbe molto più carino poter visualizzare le statistiche globali (di ogni singola modalità) e non soltanto delle bedwars.
     
    • Like
    Reactions: 8hi

    8hi

    Nuovo Membro
    Ho fatto delle modifiche al bot dopo mesi che era rimasto offline.

    - Aggiunto il comando /daily per vedere le statistiche giornaliere.
    - Aggiunto il comando /clan per vedere i giocatori in un clan.
    - Aggiunta possibilità di vedere i Rank degli utenti.
    - Aggiornato il link di invito del bot.

    Inoltre internamente ho fatto dei cambiamenti che mi permetto di sormontare dei limiti che avevo in passato.

    - Il bot ora ha un host vero e proprio, non dovrebbe andare offline senza motivo.
    - Ho trovato un modo per scaricare le skin degli utenti SP, quindi presto saranno visibili dal bot.

    Mi manca fare dei piccoli cambiamenti che in questo momento mi stanno dando problemi di performance (non prenderà troppo), e poi rilascerò qualcosa che credo potrebbe essere utile per tutti i giocatori di Coral. Stay tuned :)
     

    Letruxux

    Nuovo Membro
    +1, ho creato un'account nel forum solo per commentare qui. Grande!
    Comunque come hai detto un'API, o anche un modo per cercare i giocatori dal sito (per consentire il web scraping) sarebbe molto utile.
     
    Ultima modifica: