From f8916e818ea192374aea9f3513b0e5a3c5ab1496 Mon Sep 17 00:00:00 2001 From: jakub Date: Tue, 2 Jul 2024 09:50:27 +0200 Subject: [PATCH] pp --- .gitignore | 0 .../DiscordAuthorizator.java | 1 + .../events/playerJoin.java | 38 ++++++++++++++++++ .../events/playerLogin.java | 5 --- .../DiscordAuthorizator.class | Bin 10139 -> 10218 bytes .../events/playerJoin$1.class | Bin 860 -> 860 bytes .../events/playerJoin.class | Bin 1263 -> 6505 bytes .../events/playerLogin.class | Bin 9610 -> 8275 bytes 8 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/xyz/soukup/discordauthorizator/DiscordAuthorizator.java b/src/main/java/xyz/soukup/discordauthorizator/DiscordAuthorizator.java index 503580e..2a19d44 100644 --- a/src/main/java/xyz/soukup/discordauthorizator/DiscordAuthorizator.java +++ b/src/main/java/xyz/soukup/discordauthorizator/DiscordAuthorizator.java @@ -65,6 +65,7 @@ public final class DiscordAuthorizator extends JavaPlugin { jda.getPresence().setActivity(Activity.customStatus("Nikdo na serveru")); Bukkit.getPluginManager().registerEvents(new playerLogin(),this ); Bukkit.getPluginManager().registerEvents(new playerLeave(),this ); + Bukkit.getPluginManager().registerEvents(new playerJoin(), this); Bukkit.getPluginManager().registerEvents(new playerDie(),this ); Bukkit.getPluginManager().registerEvents(new ChatEvent(), this); diff --git a/src/main/java/xyz/soukup/discordauthorizator/events/playerJoin.java b/src/main/java/xyz/soukup/discordauthorizator/events/playerJoin.java index 5672106..2c26144 100644 --- a/src/main/java/xyz/soukup/discordauthorizator/events/playerJoin.java +++ b/src/main/java/xyz/soukup/discordauthorizator/events/playerJoin.java @@ -1,11 +1,20 @@ package xyz.soukup.discordauthorizator.events; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.entities.Guild; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Color; +import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.player.AsyncPlayerPreLoginEvent; import org.bukkit.event.player.PlayerJoinEvent; import xyz.soukup.discordauthorizator.DiscordAuthorizator; +import java.util.Objects; + public class playerJoin implements Listener { @EventHandler public void playerQuit(PlayerJoinEvent event){ @@ -15,5 +24,34 @@ public class playerJoin implements Listener { DiscordAuthorizator.updateStatus(); } }, 30L); + FileConfiguration config = DiscordAuthorizator.getPlugin(DiscordAuthorizator.class).getConfig(); + JDA jda = DiscordAuthorizator.getJDA(); + Guild guild = jda.getGuildById(Objects.requireNonNull(config.getString("guild"))); + assert guild != null; + String id = config.getString("players." + event.getPlayer().getDisplayName() + ".discord"); + assert id != null; + Color color; + guild.retrieveMemberById(id).queue( + member -> { + net.md_5.bungee.api.ChatColor memberColor = DiscordAuthorizator.convertToChatColor(Objects.requireNonNull(member.getColor())); + DiscordAuthorizator.playerColor.put(event.getPlayer().getDisplayName(), memberColor); + DiscordAuthorizator.playerRole.put(event.getPlayer().getDisplayName(), member.getRoles().get(0)); + DiscordAuthorizator.updateStatus(); + EmbedBuilder eb = new EmbedBuilder(); + eb.setColor(java.awt.Color.GREEN); + eb.setAuthor("Hráč " + event.getPlayer().getDisplayName() + " se připojil", null, "https://mc-heads.net/avatar/" + event.getPlayer().getDisplayName()); + Objects.requireNonNull(jda.getTextChannelById(Objects.requireNonNull(config.getString("chat-channel")))).sendMessageEmbeds(eb.build()).queue(); + + }, + throwable -> { + // Error: Member was not found or an error occurred + String kickMessage = "&6&lK&f&lN&6&lK&f&lS" + + "\n\n&c&lNejsi na našem discordu" + + "\n\n&fPro hraní na našem server se musíš připojit na discord:" + + "&bdiscord.gg/EK2n7TEQ4H"; + event.getPlayer().kickPlayer(ChatColor.translateAlternateColorCodes('&', kickMessage)); + + } + ); } } diff --git a/src/main/java/xyz/soukup/discordauthorizator/events/playerLogin.java b/src/main/java/xyz/soukup/discordauthorizator/events/playerLogin.java index ff33a62..4136f71 100644 --- a/src/main/java/xyz/soukup/discordauthorizator/events/playerLogin.java +++ b/src/main/java/xyz/soukup/discordauthorizator/events/playerLogin.java @@ -49,11 +49,6 @@ public class playerLogin implements Listener { DiscordAuthorizator.playerColor.put(event.getName(), memberColor); DiscordAuthorizator.playerRole.put(event.getName(), member.getRoles().get(0)); DiscordAuthorizator.updateStatus(); - EmbedBuilder eb = new EmbedBuilder(); - eb.setColor(java.awt.Color.GREEN); - eb.setAuthor("Hráč " + event.getName() + " se připojil", null, "https://mc-heads.net/avatar/" + event.getName()); - Objects.requireNonNull(jda.getTextChannelById(Objects.requireNonNull(config.getString("chat-channel")))).sendMessageEmbeds(eb.build()).queue(); - }, throwable -> { // Error: Member was not found or an error occurred diff --git a/target/classes/xyz/soukup/discordauthorizator/DiscordAuthorizator.class b/target/classes/xyz/soukup/discordauthorizator/DiscordAuthorizator.class index 80321a1d50b65c1b51f4c25f50090b24faab1990..f4969c7aaf93ca30e6cec14a31cd39bc7fe7fc53 100644 GIT binary patch delta 2496 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 O;|aTyCwYo*!~ZE*-7EnB diff --git a/target/classes/xyz/soukup/discordauthorizator/events/playerJoin$1.class b/target/classes/xyz/soukup/discordauthorizator/events/playerJoin$1.class index b2a4b7f47cf0f63ec3ab75e8dc9fe2feaa274b54..f36cdc84717cf235126cdebb02605cec3acf41fa 100644 GIT binary patch delta 23 fcmcb^c86`lWhO?^$ybVre%5;3B>CgdXp%} zTm?xL6;K5h*v^2~mmeB3J#CBsBQSTs@VX6Wzu^chs&D9s3<;WBDliZ86;!HNfU064 z6BAV_Bt2+k@>waTzF3Ys(GxCO7}=s=p}@KuM-FJNogd2Qw2bMdZ6~AWy+PYC59prl zXj_A})<|0t)i_*Q(} z`wh!;wOm#oF`ON?Y1OVxB88=riZcbytM5389a99fH1sA&tNdG5fwQq(!8s~wu|l9W zLc_H12`rxI>mISvTMemNrbl;&Xia^T$})BACXg7&o7qefYq3tjxhmGcLeCdR6Sk)l?_Cf&^k>AbBL9RA0t% zmp*I=ETr5??L&vCVo>f?agFrA#l!lL^zXFp?KZtZzPX;xy`Tcu;yDVgQ}JBr0?SX% zfo(M7FR$yb%XSssx|7Me zG#iY4u32O0{6Bus7_JHPU!J}FI~}`b(9x}9_eTaW0GX<5T%%?$fH0z*XR>$YVb}KN2NvgSyvdXKfj19#?g< zx@WXzJ;Sm1;`g-K8G{?)%KEmc@lqm$WJunqVgv^Sl0#;CD2Q%ZW|WxUTY=}}1qxoM z;zf9|z&WLuE9_}O^azwQm_x0rCc;?1!PERU=Jl5_-u>7vG|J5MG8He!D;SLQVxsBw z*b(d3hT0Wo(2b=o!1v<3RAeXR^wGFZpNzxDuVhT)Tuh+9@}(xuv5=5 zHNFkw~DvoZ4(Fl5TA>iaG#3z;Jpmj%XYQ5cQMfh z2u+eFN4{Uh2XH^Fb_?FJej1iftWBbea>t5eZxzb0S4w?A#e;Z=If_z);#6R73D=Hr z7ABXeEu{;iqQ%ScQ9_kwm^SfYSw>dY5D%*u!#G(aB|XNC9=%d_1$pI)655nrsSsG9 zXpNDPW~wr@h)~AU5rGRzaWkv=60}EDJc`H2SDz$OplO<#upqG0a9w@C@S&gr9~Wqt zQGw|A3LM5U6_4XM0holv7T$B^4?kiaYO1U{wU z(=vxKJX%WGJ4;zfdF?wImBY%KEzO`^W;)DKF9eeBA- z$(^V16sm<@`kJpc9Vc4A%vb`ka0&_>fwj>|v#NTC9Zxm{uB5}r!w%1PCHo4F7nJM* zF_R%uHFdiXIE_4|hnP=7Y*ReRdFHUuYq};8Z?!C&+o>$o1Qra-;l7Ms8zc(}a_w4y*4e`xQL$&xv2T#9^LWe6(VO^W!YDb4Ia3w~VIY*$WsShy zr=Uxzc#*J2VVD(@Gm{k5AikAzh7IZb0xM=Ug(e3R!ZP73f7bK`1|7lZ;{l_j@S-Ha z9Je{04R3&w-FDtd8}f9{7!A0U7Z=TP7oZMZJTnAF&`Bz{*tX}g^2>D^ynM;H^XK3n zN&FN4Qt)qi5PF(kJGp(B)_!})(1L{4=AVr&<$1(*Mg;DNrk!wLAT;nex3ra|TWppr7ICq|$J72|5@v};?fG71RY|*`=TvStqZO*ZSkKa-w zahqk_)3ZI@(F9AS?JR^GKg}7gB6w4{VhX9H zyiyUo3|uzzQ09lgg>g2oRbo7Fe*vQM40*M}dxHeOc|FVLm-waeSIE{?4?{e_ml(dx zr|br*@D)DQU;w^~uklOZ>-Yvoak9`TNMYNZV^GF%8k0fw7#1BtY7eC?S%_uhs7YYA z-+C0)qp0f~!>X>P#;WE~tQo_Gqu4x-i(=SR_8_+2h00Xf6R0?X9eW-|$77AFN6|Ts zZoxWf55O6l65+5!WLT;!l^DmfV_4nPco==a>ci*<#$m=G4T}2))nP8*7hxHeU=^04 z8E5itYZ

Sujzy-RcnH2zJi?3W6RI+3kr>+62GJ}F)qV6 z2$m7csirjTP}4Y`Cs>-3fSbnfQVIVn<+?uFsj^YLX7_`5W1)q^-%Od~xFd$6c)RQ# z!#j`Q9`bbWrbLRg92&*@cBc}BDTnbvI!NU6Lz2M{?_S+l^^pkoqp?7X!>Pn5J{Erj zN5}DrILZ5@h*%zwSIZmz6*vcV1brnPyPnr}4TOIc4q!FzMN@>lLj^<*`9w)?J`|EC z-+qJN5~BsU4Zp+hiAoo)#vkxUl2?vD`4mZ7))P1Rx1g$h6i?m-rR+YG#UH}fsevLn zPavjV!m<;8=0^;F!C(1XMj0vmjc@fF@OOUw2meJ}%n{|HB78edRLUMvYq+ QKc)D~Ke1S(#1f?b2m8Xp6951J delta 282 zcmYL@u};EZ6otRPr4X7*OcfGhf)El>6h%<0gDy;rOvHr6fsJ&aqXQ4oCt;Fm!UOmw zOsr1E(?a5M&b|M==ez%=w=KHgzn^R1nWv>YvFrk^c$DkQFXH#oPux6wi37j0@P=VH zoeySjQ8bNcaE689T*=fO^3t}t8@Z7??GMZ{8(&J(F%-Fydb54+afx$moQU0R(8VYxEOf8}AF#hMd*}g{&KVw&R`8``CZt3YpU)1yucXFG1sl@|< OJg3(xkE-0PQUQN|)*zt( diff --git a/target/classes/xyz/soukup/discordauthorizator/events/playerLogin.class b/target/classes/xyz/soukup/discordauthorizator/events/playerLogin.class index d3b2cbce2227dec92545a905611687b42eae37aa..06a11bfa0c8b020f600be3733ef9ec4ccc4f3cf7 100644 GIT binary patch delta 1979 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