Skocz do zawartości

Ranking

Popularna zawartość

Treść z najwyższą reputacją w 05/11/21 uwzględniając wszystkie działy

  1. Witam, wszystkich w tym poradniku dowiesz się jak stworzyć plugin, który będzie wyświetlał ilość graczy z naszego serwera na kanale Discord. Zaczynajmy! Krok 1. Stworzenie serwera discord. Klikamy plusik na pasku serwerów po lewej stronie naszego discorda następnie klikamy "Stwórz serwer" wpisujemy nazwe serwer i klikamy przycisk Stwórz. Krok 2. Stworzenie kanału głosowego. Kanał głosowy tworzymy dlatego, iż w kanałach tekstowych nie możemy używać spacji, a wygląd kanału "online-0" jest niezbyt profesjonalny. Kanał możemy już nazwać nazwą "Online: 0". Krok 3. Stworzenie aplikacji Discord oraz bota. Przejdź na stronę https://discord.com/developers/applications zaloguj się następnie przejdź do zakładki Applications i w prawym górnym rogu kliknij przycisk New Application wpisz nazwę aplikacji np.: minecraft i klikamy przycisk Create. Teraz przejdź do zakładki Bot i klikamy przycisk Add bot po prawo. Bot został stworzony. Krok 4. Zaproszenie bota na nasz serwer discord. Przechodzimy do zakładki OAuth2 w SCOPES zaznaczamy bot, w BOT_PERMISSIONS Admininistrator kopiujemy link i wklejamy go w nową kartę w przeglądarce wybieramy serwer i dołączamy do niego. Szczegółowo jest to opisane tutaj: https://discordpy.readthedocs.io/en/latest/discord.html#inviting-your-bot. Bot jest już na naszym serwerze teraz przejdźmy do pisania wtyczki pod serwer. Do stworzenia wtyczki będziemy potrzebowali api discorda my użyjemy JDA (Java Discord API). Aktualizować nazwę kanału możemy 2 razy na 10 minut, więc aktualizowanie nazwy kanału zrobimy w tasku co 6 minut. Repozytoria maven: Spigot: https://www.spigotmc.org/wiki/spigot-maven/. JDA (Java Discord API) https://github.com/DV8FromTheWorld/JDA. Teraz zaczniemy tworzyć wtyczkę. 1. Stwórz klasę główną z jej statyczną instancją. import org.bukkit.plugin.java.JavaPlugin; public class DiscordPlugin extends JavaPlugin { private static DiscordPlugin discordPlugin; @Override public void onEnable(){ discordPlugin = new DiscordPlugin(); } public static DiscordPlugin getDiscordPlugin() { return discordPlugin; } } 2. Stwórz klasę Bot w której uruchomimy bota. import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; import javax.security.auth.login.LoginException; public class Bot { private JDA jda; //Tworzymy voida z zmienną String która będzie przechowywała token. public Bot(String token){ try { jda = new JDABuilder(token).build(); } catch (LoginException e) { e.printStackTrace(); } } public JDA getJda() { return jda; } } 3. Tworzymy zmienną long o nazwie channelOnlineID, do której przypisujemy ID kanału, w którym chcemy zmienić nazwę. Aby otrzymać ID kanału kliknij PPM na kanał i z samego dołu wybierz: Kopiuj ID. import org.bukkit.plugin.java.JavaPlugin; public class DiscordPlugin extends JavaPlugin { private static DiscordPlugin discordPlugin; private long channelOnlineID; private Bot bot; @Override public void onEnable(){ discordPlugin = new DiscordPlugin(); //Token który odbierasz na stronie discord developer w zakładce bot this.bot = new Bot("NzI1MDkzNDc5MjIyMzQ1ODUy.XvdcVw.3NxaTmfIKYr6fsPnxOuaW2ZwFBg"); //ID kanału na którym nazwa ma być odświeżana this.channelOnlineID = 724920522042900533l; } public static DiscordPlugin getDiscordPlugin() { return discordPlugin; } public Bot getBot() { return bot; } public long getChannelOnlineID() { return channelOnlineID; } } 4. Tworzenie taska. import org.bukkit.Bukkit; import org.bukkit.scheduler.BukkitRunnable; public class Task extends BukkitRunnable { @Override public void run() { DiscordPlugin .getDiscordPlugin() .getBot() .getJda() .getVoiceChannelById(DiscordPlugin.getDiscordPlugin().getChannelOnlineID()) .getManager() .setName("Online: "+ Bukkit.getOnlinePlayers().size()) .queue(); } } 5. Rejestracja taska. Ja taska zarejestrowałem co 6 min, bo wiadomo na styk nie wszystko jest dobre. @Override public void onEnable(){ discordPlugin = new DiscordPlugin(); this.bot = new Bot("NzI1MDkzNDc5MjIyMzQ1ODUy.XvdcVw.3NfaTmBIKYr6fsPnxOuaW2ZwFBg"); this.channelOnlineID = 724920522042900533l; //Rejestracja taska new Task().runTaskTimerAsynchronously(this, ((60*20L)*6), ((60*20L)*6)); } Stwórz plugin.yml, a następnie zbuduj plugin i wgraj go na serwer. Dziękuję za obejrzenie całego poradnika. W razie problemów proszę pisać tutaj chętnie pomogę. Czekam na jakieś propozycje do innych poradników.
    1 punkt
  2. Kubo0208

    Witam mam pytanie?

    on mine diamond ore: loop all players: if %loop-player% has permission "admin.xray.message": send "&7[&6OreMessage&7] &f%player% wykopal diament." to loop-players
    1 punkt
  3. _skr1t

    SkEditor

    Od mnie jeszcze jedna propozycja na dodanie rpc discord (wykrywa discorda na komputerze i wyświetla) jak te ponuiżej, tylko że 1 linijka: Edytuje: <nazwaSkryotu>, A 2 linijka to: Linijka Skryptu: <i linijka na ktorej jestem w edytorze> a 3 linijka to ile upłyneło na podstawie timestapa s - Imgur
    1 punkt
  4. Helios1993

    skrypt na sektory

    Eclipse jest fuj, zalecam użyć intellij.
    1 punkt
  5. podasz discorda? bo wolałbym wypełnić to tobie na pv
    1 punkt
  6. ChlebekPlayer

    Liczba osób w scoreboardzie

    Tryby masz zrobione jako oddzielne światy czy oddzielne tryby podpięte do proxy? Jak na światy to kolega wyżej dobrze napisał. Jeżeli chodzi o tryby podpięte pod proxy to musisz posiadać np. PlaceholderAPI i wprowadzić placeholder %bungee_<nazwaserwera>% czyli jak powiedzmy chcesz sczytać liczbę osób z serwera nazwanego "skywars" to używasz placeholdera %bungee_skywars%.
    1 punkt
  7. To mówi samo za siebie "Nowe wioski, oceany" itd, 1.16+ są przekombinowane bo każdy pamięta minecrafta na którym było wszystko kwadratowe i nie było "Delfinów" które dodają speeda przez co się deda na np manhunt
    0 punktów
  8. Arrd1337

    kim ty jestes?

    kim ty jestes?
    0 punktów
Ten Ranking jest ustawiony na Warszawa/GMT+02:00
  • Najwięcej postów w tygodniu

    xSebixx1
    xSebixx1
    2 posty
    Fendi
    Fendi
    2 posty
    kinimod5021
    kinimod5021
    1 post
    bug128
    bug128
    1 post
    F3lip3za
    F3lip3za
    1 post
    Nieaktywny
    Nieaktywny
    1 post
    LusiaMC
    LusiaMC
    1 post
    Antychryst
    Antychryst
    1 post
    MICHALBEZSKINOW
    MICHALBEZSKINOW
    1 post
  • Najwięcej tematów w tygodniu

    bug128
    bug128
    1 temat
    Nieaktywny
    Nieaktywny
    1 temat
    LusiaMC
    LusiaMC
    1 temat
    Antychryst
    Antychryst
    1 temat
    MICHALBEZSKINOW
    MICHALBEZSKINOW
    1 temat
    artur9010
    artur9010
    1 temat
    0j_12
    0j_12
    1 temat
    xSebixx1
    xSebixx1
    1 temat
    karepas
    karepas
    1 temat
  • Aktywni użytkownicy

×
×
  • Dodaj nową pozycję...