From da2e9ff6a4d68b7464eadb6634945db223ee4618 Mon Sep 17 00:00:00 2001 From: JaTiTV Date: Wed, 5 Jan 2022 21:50:03 +0100 Subject: [PATCH 1/2] Add BConfig --- .../{T2CodeLib_9_0.xml => T2CodeLib_10_0.xml} | 4 +- pom.xml | 2 +- .../Bungee/Lib/yamlConfiguration/BConfig.java | 85 ++++++++++++++++++ target/classes/bungee.yml | 2 +- .../Lib/yamlConfiguration/BConfig.class | Bin 0 -> 4692 bytes target/classes/plugin.yml | 2 +- 6 files changed, 90 insertions(+), 5 deletions(-) rename .idea/artifacts/{T2CodeLib_9_0.xml => T2CodeLib_10_0.xml} (63%) create mode 100644 src/main/java/net/t2code/lib/Bungee/Lib/yamlConfiguration/BConfig.java create mode 100644 target/classes/net/t2code/lib/Bungee/Lib/yamlConfiguration/BConfig.class diff --git a/.idea/artifacts/T2CodeLib_9_0.xml b/.idea/artifacts/T2CodeLib_10_0.xml similarity index 63% rename from .idea/artifacts/T2CodeLib_9_0.xml rename to .idea/artifacts/T2CodeLib_10_0.xml index d86a691..eebabbb 100644 --- a/.idea/artifacts/T2CodeLib_9_0.xml +++ b/.idea/artifacts/T2CodeLib_10_0.xml @@ -1,7 +1,7 @@ - + $PROJECT_DIR$/../../Plugins/T2CodeLib/.jar - + diff --git a/pom.xml b/pom.xml index d89e68b..97a1bb2 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ net.t2code T2CodeLib - 9.0 + 10.0 jar T2CodeLib diff --git a/src/main/java/net/t2code/lib/Bungee/Lib/yamlConfiguration/BConfig.java b/src/main/java/net/t2code/lib/Bungee/Lib/yamlConfiguration/BConfig.java new file mode 100644 index 0000000..1dbbdec --- /dev/null +++ b/src/main/java/net/t2code/lib/Bungee/Lib/yamlConfiguration/BConfig.java @@ -0,0 +1,85 @@ +package net.t2code.lib.Bungee.Lib.yamlConfiguration; + +import net.md_5.bungee.config.Configuration; +import net.t2code.lib.Spigot.Lib.replace.Replace; + +import java.util.ArrayList; +import java.util.List; + +public class BConfig { + public static void set(String path, String value, Configuration configuration) { + if (!configuration.contains(path)) { + configuration.set(path, value); + } + } + + public static void set(String path, Configuration configuration) { + configuration.set(path, null); + } + + public static void set(String path, Integer value, Configuration configuration) { + if (!configuration.contains(path)) { + configuration.set(path, value); + } + } + + public static void set(String path, Double value, Configuration configuration) { + if (!configuration.contains(path)) { + configuration.set(path, value); + } + } + + public static void set(String path, Boolean value, Configuration configuration) { + if (!configuration.contains(path)) { + configuration.set(path, value); + } + } + + public static void set(String path, List value, Configuration configuration) { + if (!configuration.contains(path)) { + configuration.set(path, value); + } + } + + + public static String select(String prefix, String path, Configuration configuration) { + return Replace.replace(prefix, configuration.getString(path)); + } + + + public static Integer selectInt(String path, Configuration configuration) { + return (configuration.getInt(path)); + } + + public static Boolean selectBoolean(String path, Configuration configuration) { + return (configuration.getBoolean(path)); + } + + public static Double selectDouble(String path, Configuration configuration) { + return (configuration.getDouble(path)); + } + + public static List selectList(String path, Configuration configuration) { + return (configuration.getStringList(path)); + } + + + + public static List selectList(String prefix, String path, Configuration configuration) { + List output = new ArrayList<>(); + List input = configuration.getStringList(path); + for (String st : input) { + output.add(Replace.replace(prefix, st)); + } + return output; + } + + public static void select(String prefix, List value, String path, Configuration configuration) { + List output = new ArrayList<>(); + List input = configuration.getStringList(path); + for (String st : input) { + output.add(Replace.replace(prefix, st)); + } + value = output; + } +} diff --git a/target/classes/bungee.yml b/target/classes/bungee.yml index 742d3ec..6fb495f 100644 --- a/target/classes/bungee.yml +++ b/target/classes/bungee.yml @@ -1,5 +1,5 @@ name: T2CodeLib -version: 9.0 +version: 10.0 main: net.t2code.lib.Bungee.BMain author: JaTiTV, Jkobs description: Libarie from T2Code Plugins \ No newline at end of file diff --git a/target/classes/net/t2code/lib/Bungee/Lib/yamlConfiguration/BConfig.class b/target/classes/net/t2code/lib/Bungee/Lib/yamlConfiguration/BConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..bbe251407d2d786da2fb478963eafb8bd732c493 GIT binary patch literal 4692 zcmcInSz8lV7=BN-A>*)!N{zJ@Eh2;^b+?HkLTW_=w&GH$3qu&fNSMTAqSAf&740AB zZF{5GK2M)s_cydx{TIE^erHKCz~o8LR(vuiXL;XmdB5*W{&?}rZval7YKGyA57$;IU-mZaH}DqTrZAK7Qx19V8=)y3y*Q}hkb!s5 z$FQ>=L^@>UtP&aY$jn!)t4j<$15;i$wIju&+;89r&zw$l6NN(FG94X*h-(<)(8C*` z)dmhY=LJ;r0&vto0`JP;rwf&Zyw$*kw2osquHgjdIk`b<^>b-2jhq%NrwyFJdkpQh z6ld%*1*^{|^a`Tl+Ih-c*-dFkG3*i%6O$K8C3B6h=tv^C17kR^Vcft4OfYoR_eqL2 z+qFo@1&VObfERm8&8K!CjrTQNH1Gi~F?81vs#_>I%Vv4TdO{{s8O`w%mknG&h9TsL z>D^UqPw|oEGaCXWRm&~@(7;EyMrh{Z;--LCYhzBsb%x`cBt0Pul}mcfT+MH&)Wn4R zN=8jm2{3eKY{#0ZtS(rk>!wI;cczdv^Eb_s&A+S3kh^SCZJ*4%0vDxb+9!!y>qme$ z>owF7$oQh^E>j-1Vlae7k&uw6B~hoUwW$8q;OXG3Yi3ub&7$%>O?;^~jn-MbzEn>$Txl4xdd0WS(Iw+mKT1`; zQQ~XGs?7T~?LF&>wYpEnNY2q&JLi~gr9=gEzqzr#D6KmXDO-7QPv2`uB|3^Sutngl zp3x0eELltT6LL^eirdP!c3YFbhoi34c8OiPdHx&xx_S(WU%hcMenH!|`Lz2KF-z0=P+^d>LrRE&4R%27HX$^eswn=W{f}58p$O{(#Qm_)};rg{3t1;Ko z_P7r79{|KP(2y(Fm}{Bh%adQEgfvKg$dmjb;uFr#{o}a|7x`>Z?h;_1Bs!kXB;HuM=>Y{jvl0rR4JX}@L zArkhR>o~9(^t1q#Qj6B47OhFG4A&3p@Hz%IL#3KPRq)6UYGfTpH$$Co0`(YARPvI_ z!3cNo)MlJX4^E`!T|{{&)38Qqc#KaK-rtl4jRH3QE0VXL;p`00#;If|7J80z49RdT z{2Y@E-{SxuO)>nA>11Ri9*a=Qp5tl&w|;#2*9f;ns%IY+G%!W#xlDz7h4hm_3e)tH zXGT~zM(d;0p+2L8@}1+g)Q;CuJFZgOMn4)qhfOwi;wZkLQ3zaTJb!X+rM9+0YxA_W z6M+}lt6@z1Pyd6%kdA*T^!Jr={3RW1qwQ(scrr9H%sm$lbI&8Oi1NIbkCf+HEEJDv z9@qbjg)+QvO6T7e!MsLHv(!1SQ34 zs5* literal 0 HcmV?d00001 diff --git a/target/classes/plugin.yml b/target/classes/plugin.yml index a3db8b0..1e0bc41 100644 --- a/target/classes/plugin.yml +++ b/target/classes/plugin.yml @@ -1,5 +1,5 @@ name: T2CodeLib -version: 9.0 +version: 10.0 main: net.t2code.lib.Spigot.system.Main api-version: 1.13 prefix: T2CodeLib From 3cb557c0e16b1f173a9a17d754a89f802cd8676d Mon Sep 17 00:00:00 2001 From: JaTiTV Date: Thu, 6 Jan 2022 01:55:39 +0100 Subject: [PATCH 2/2] Add permissionDescription --- ...{T2CodeLib_10_0.xml => T2CodeLib_10_1.xml} | 4 +- pom.xml | 2 +- .../lib/Spigot/Lib/register/Register.java | 7 ++-- .../lib/Spigot/Lib/update/UpdateAPI.java | 38 ++++++++++++++++-- target/classes/bungee.yml | 2 +- .../Lib/yamlConfiguration/BConfig.class | Bin 4692 -> 4692 bytes .../lib/Spigot/Lib/register/Register.class | Bin 2276 -> 2511 bytes .../lib/Spigot/Lib/update/UpdateAPI$3$1.class | Bin 1412 -> 1412 bytes .../lib/Spigot/Lib/update/UpdateAPI$3.class | Bin 3746 -> 3746 bytes .../lib/Spigot/Lib/update/UpdateAPI.class | Bin 9006 -> 9922 bytes target/classes/plugin.yml | 2 +- 11 files changed, 43 insertions(+), 12 deletions(-) rename .idea/artifacts/{T2CodeLib_10_0.xml => T2CodeLib_10_1.xml} (63%) diff --git a/.idea/artifacts/T2CodeLib_10_0.xml b/.idea/artifacts/T2CodeLib_10_1.xml similarity index 63% rename from .idea/artifacts/T2CodeLib_10_0.xml rename to .idea/artifacts/T2CodeLib_10_1.xml index eebabbb..7db3d92 100644 --- a/.idea/artifacts/T2CodeLib_10_0.xml +++ b/.idea/artifacts/T2CodeLib_10_1.xml @@ -1,7 +1,7 @@ - + $PROJECT_DIR$/../../Plugins/T2CodeLib/.jar - + diff --git a/pom.xml b/pom.xml index 97a1bb2..91ad358 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ net.t2code T2CodeLib - 10.0 + 10.1 jar T2CodeLib diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/register/Register.java b/src/main/java/net/t2code/lib/Spigot/Lib/register/Register.java index a01af2f..81c30cf 100644 --- a/src/main/java/net/t2code/lib/Spigot/Lib/register/Register.java +++ b/src/main/java/net/t2code/lib/Spigot/Lib/register/Register.java @@ -5,9 +5,6 @@ import org.bukkit.permissions.Permission; import org.bukkit.event.Listener; import org.bukkit.permissions.PermissionDefault; import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.java.JavaPlugin; - -import java.util.Collections; public class Register { public static void listener(Listener listener, Plugin plugin) { @@ -35,4 +32,8 @@ public class Register { plugin.getServer().getPluginManager().getPermission(permission).setDefault(setDefault); plugin.getServer().getPluginManager().getPermission(permission).getChildren().put(children, setBoolean); } + public static void permissionDescription(String permission, String description, Plugin plugin) { + plugin.getServer().getPluginManager().getPermission(permission).setDescription(description); + + } } diff --git a/src/main/java/net/t2code/lib/Spigot/Lib/update/UpdateAPI.java b/src/main/java/net/t2code/lib/Spigot/Lib/update/UpdateAPI.java index 983e409..d2313dc 100644 --- a/src/main/java/net/t2code/lib/Spigot/Lib/update/UpdateAPI.java +++ b/src/main/java/net/t2code/lib/Spigot/Lib/update/UpdateAPI.java @@ -55,7 +55,19 @@ public class UpdateAPI { public static void sendUpdateMsg(String Prefix, String Spigot, String Discord, String pluginVersion, String publicVersion) { send.console("§4=========== " + Prefix + " §4==========="); - send.console("§6A new version was found!"); + if (publicVersion.toLowerCase().contains("dev") || publicVersion.toLowerCase().contains("beta") || publicVersion.toLowerCase().contains("snapshot")){ + if (publicVersion.toLowerCase().contains("dev")){ + send.console("§6A new §4DEV§6 version was found!"); + } + if (publicVersion.toLowerCase().contains("beta")){ + send.console("§6A new §2BETA§6 version was found!"); + } + if (publicVersion.toLowerCase().contains("snapshot")){ + send.console("§6A new §eSNAPSHOT§6 version was found!"); + } + } else { + send.console("§6A new version was found!"); + } send.console("§6Your version: §c" + pluginVersion + " §7- §6Current version: §a" + publicVersion); send.console("§6You can download it here: §e" + Spigot); send.console("§6You can find more information on Discord: §e" + Discord); @@ -67,9 +79,27 @@ public class UpdateAPI { return; } send.player(player, Prefix); - TextComponent comp = new TextBuilder(Prefix + " §6A new version was found!") - .addHover("§6You can download it here: §e" + Spigot).addClickEvent(ClickEvent.Action.OPEN_URL, Spigot).build(); - player.spigot().sendMessage(comp); + if (publicVersion.toLowerCase().contains("dev") || publicVersion.toLowerCase().contains("beta") || publicVersion.toLowerCase().contains("snapshot")){ + if (publicVersion.toLowerCase().contains("dev")){ + TextComponent comp = new TextBuilder(Prefix + " §6A new §4DEV§6 version was found!") + .addHover("§6You can download it here: §e" + Spigot).addClickEvent(ClickEvent.Action.OPEN_URL, Spigot).build(); + player.spigot().sendMessage(comp); + } + if (publicVersion.toLowerCase().contains("beta")){ + TextComponent comp = new TextBuilder(Prefix + " §6A new §2BETA§6 version was found!") + .addHover("§6You can download it here: §e" + Spigot).addClickEvent(ClickEvent.Action.OPEN_URL, Spigot).build(); + player.spigot().sendMessage(comp); + } + if (publicVersion.toLowerCase().contains("snapshot")){ + TextComponent comp = new TextBuilder(Prefix + " §6A new §eSNAPSHOT§6 version was found!") + .addHover("§6You can download it here: §e" + Spigot).addClickEvent(ClickEvent.Action.OPEN_URL, Spigot).build(); + player.spigot().sendMessage(comp); + } + } else { + TextComponent comp = new TextBuilder(Prefix + " §6A new version was found!") + .addHover("§6You can download it here: §e" + Spigot).addClickEvent(ClickEvent.Action.OPEN_URL, Spigot).build(); + player.spigot().sendMessage(comp); + } TextComponent comp1 = new TextBuilder(Prefix + " §c" + pluginVersion + " §7-> §a" + publicVersion) .addHover("§6You can download it here: §e" + Spigot).addClickEvent(ClickEvent.Action.OPEN_URL, Spigot).build(); player.spigot().sendMessage(comp1); diff --git a/target/classes/bungee.yml b/target/classes/bungee.yml index 6fb495f..452343e 100644 --- a/target/classes/bungee.yml +++ b/target/classes/bungee.yml @@ -1,5 +1,5 @@ name: T2CodeLib -version: 10.0 +version: 10.1 main: net.t2code.lib.Bungee.BMain author: JaTiTV, Jkobs description: Libarie from T2Code Plugins \ No newline at end of file diff --git a/target/classes/net/t2code/lib/Bungee/Lib/yamlConfiguration/BConfig.class b/target/classes/net/t2code/lib/Bungee/Lib/yamlConfiguration/BConfig.class index bbe251407d2d786da2fb478963eafb8bd732c493..7e4eb60183f428a99aca42f12e7bfa7459295b53 100644 GIT binary patch delta 200 zcmWm5yAA&wNjk}1Ac`Pj^pta9af)+F_^BJ2h!jJbA>+f9 zA;*wsa6GjWMLtS=l>K^CTcb)JwKnSX(l%{$g&I0b7v2N!PnYPaB^AuQHQ+}V8beeu gLK9=OF`>KpO->;&gNZq6SfGU^I#{8PH9ex|KR-1n#{d8T delta 194 zcmcbjaz$l>JP#x9WCb2KPJRXs1_1^>2BArOl9M}loLEH}*ciknpXUkSlmtpi0i|R> zQjWY{obo^c1)zWuNMJ2cKouyU1{Bbk#Fxye4dmzmIeH-3R=#*fqsdSCLMFHHD@=~$ z*PeVHNH5{nX0)Gtf#03cd9s8+r>G}Tix&ewgExa7gAao>gD-;}gWu$B0xu+k7&sY% cfes5{&}Rr`uw@8ia9{{$aAt^@yj^fE07<OV diff --git a/target/classes/net/t2code/lib/Spigot/Lib/register/Register.class b/target/classes/net/t2code/lib/Spigot/Lib/register/Register.class index a60ec2404fe10df35f6685823eeaa0985a83c97e..aaa067a8fe43793432333c50f17db8c43ab7412d 100644 GIT binary patch delta 650 zcmYk3OHKko5QhJm;UNP-Kp2%V5hlbK0vaPOoJ8a;iimGrnkX@ts07$}1lO~0%@K$T z6Biu74VUm7#_EC$Y^u7e>i?>%`ZqXQP=EfuhX69T8K@tMt|Er45Bo?+@OPWNQnP#C zX|;Q;*O$+}@+2=u+Re^$tJ|f(Oin`H>dRp(s2=-IN>6j zqmG;8CGyVX7o-6lWaP<;G~hvjtZ!U^B1#-9V~HX;>&+G45w$95059gLQq*gF51@<+ z-GBfNP$h*2X>71^F{uEZfiiRI%o)13>r+mYI6C53VNMbb(ik?!zzID}a11nX%A*=g zRG4_i#Oz${Q4m9{UZr)$h!@8$sl)NVp=9jO%}!KT4he delta 463 zcmYk&%Syvg5XSL;lQwOm)Y@vP##`eJBo)NEFkscjd#x96=NtGmLKi-VxDye?of|hk zg3nQ$86}kibIyVJewm!l>i4++F?fCjT3kQ+5AM^8d*}4;y_FG<3^}y!^xwSNYFnE0 z2BYj+)pL$L_GK^9p>Dkcud$`QK91B9W3sfrX7{r6C31r@2OLVGNRxF--sIaIO_p$_ zR+ykl#N@wpQ+kgyEcucwypup?j-hqkp1Jt7{IRF3v diff --git a/target/classes/net/t2code/lib/Spigot/Lib/update/UpdateAPI$3$1.class b/target/classes/net/t2code/lib/Spigot/Lib/update/UpdateAPI$3$1.class index d429c197163e4c52ce6e7cdb683fe6b4dd080ff9..a692bb9f4e28498225f3205ece708814b19afea4 100644 GIT binary patch delta 23 ecmZqSZsFc=pM|k$@&lGc)>a02hPKIWtabok#s^pc delta 23 ecmZqSZsFc=pM^1H@&lGc)^rAWhK$K>tabohUsXyt{Q{7+4u%8MqnZ7^D~y88jJ^ l7_1nQ8JrkW7(y8`8Dbc+8B!T?7^)d^8JZaiCjaMM3;+TI5|sb| diff --git a/target/classes/net/t2code/lib/Spigot/Lib/update/UpdateAPI.class b/target/classes/net/t2code/lib/Spigot/Lib/update/UpdateAPI.class index da2a32823eeba3ded84371e435a0819b45f97da7..bc4cf6e578560d0fcfbf3ead7b6ff1320b6f5f39 100644 GIT binary patch delta 4294 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 delta 3310 zcmZ`*3w%@M75|?!$<5=^M_Nd4TS|dKOOjF^1#EfMB1j7b1SwV#2_?3Ll46@OKxXiP zR8T}eA43_qq2SyG6eKNliet`AHyv(vFWKDFvCVFbZ8}hj=lgCN8E*HN+8pZos zUhZl%X;`BpjAlaWs^Gd{aZ@l{U%V*N(ipB6$&L~BJ9M<5Rg^lWTH6St#oOL2G18U6 z2EHJo?jad2M6f|e32v3rojNw*i{h-~#^fkAYq(p-J-C|DY zIk)i313I>0yO`-JwLhd|2ObvpxyHI5!J`_4j>qu0c*V6m`$>W|@6>@h2X+x$EKMq! z#`mBDPm6B%xQs6ol1?26xv&?{X!webuVSAdeX{*I9s6-WROp-BU&9L;zOLgN_@;PW zUtm2%2(UK=Dc3Hj%pdQUax35;v!W)88iO zDqG=DqV*-=mnIH3VDdh1N&p*dKMg4-e-e%mZ$m z#h*3&MaN(9fp{;q+=9P}p=p^}XK+r(KQNbIt7~d*<*fALpE~}9e~U$FfjoSKa~l3b zNLOGQn~N*MYuh4BxlnM8hKpivnpeXo$kcF2yp&ep#%0FG@j+>!AWyz1w`RCp$R>+U zNn{mcJrz!TLUx@ra)?cyB65irJVS@#0_i#pka%77p-6S8wKZ5Da#0GUYLupvM||KZ zau1|I8hM#8lzB8ieYY)nv5RVGiAFc+R7*D>eJj&Jc}#5!Ez@Z#P2#{;%DByF3bwX} zS~Ut1hBLW`3nR;I==RyNJ*m+Jf95fC5+Rsnt#Y0z{sXyy0p)8TiK=t zh@R}c=wP*0>JA`-5oTf{NnEq#3K$7o2KD1I6dH-kP?qIhLs^!%3@&?#OU_D!cJ_QE z6~rx{XMf~edpBm+cB0B7B01?^&$2Gu)IYL3hWSPO_pA_oIfJ|_S@iQihQ(Jbx?T7O z2ci~|=yMg)Qe>kHd6rA+vSl{o{6;8yk@d)l> zkM4`1z07Xdj^jasVUJ z6g)@29tZ0&o$cTlB&oQUMVVw^(z!5$X*d&Un8hK#9@R{qT2yksufjge!6D4$c2mur zWgfSS`M87yDk)3NfF_dCmq;}_A|P|&CD{a%sElPjK6edGW*^NaJtfs5TfgbEWiv-ZHsGFaobE4T z&yTql7}%>Zyu)p$6F-aL=VjJzoT-&r`*oR3rtP=8*nhv2{%{eCG}O$@o|9dc2Z6_;uG_vrMy}hm>50|cp5sEz@)Yaw^MmMOV|-77*l7icdRXcZS>FNR?mpD4X(z#6RO zC-?*I0bGbz^*YF&x|vtq!#lU|iEuyff0#A2vxaS~<000voy+*aD7V=iOv|0D@F`aL z2}FN_+0-81z83<|u=Ff{sXd2xa6lz^BWG+r zA7ImHI#2#zW&6%ou*kt6bfIC@rTI U