From 464ba19779ffc8e0cb66ed371503ad501e006d98 Mon Sep 17 00:00:00 2001 From: Fangoboyo <77935781+Fangoboyo@users.noreply.github.com> Date: Tue, 7 Jun 2022 17:35:43 -0700 Subject: [PATCH] beta commit --- .idea/inspectionProfiles/Project_Default.xml | 8 +++ .../PluginInstaller_jar/PluginInstaller.jar | Bin 4942 -> 6263 bytes .../nully/PluginInstaller/InstallCommand.java | 51 +++++++++--------- .../tech/nully/PluginInstaller/Installer.java | 25 ++++----- .../java/tech/nully/PluginInstaller/Main.java | 16 +++--- .../nully/PluginInstaller/plistCommand.java | 24 +++++++++ src/main/resources/plugin.yml | 5 +- target/classes/plugin.yml | 5 +- .../PluginInstaller/InstallCommand.class | Bin 2948 -> 3106 bytes .../nully/PluginInstaller/Installer.class | Bin 2818 -> 2420 bytes .../tech/nully/PluginInstaller/Main.class | Bin 2247 -> 2602 bytes .../nully/PluginInstaller/plistCommand.class | Bin 0 -> 1623 bytes 12 files changed, 83 insertions(+), 51 deletions(-) create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 src/main/java/tech/nully/PluginInstaller/plistCommand.java create mode 100644 target/classes/tech/nully/PluginInstaller/plistCommand.class diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..de93972 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/out/artifacts/PluginInstaller_jar/PluginInstaller.jar b/out/artifacts/PluginInstaller_jar/PluginInstaller.jar index e0cef4b414d0591be2ebd16e4ac2651d6535d909..ac17a0ebabb4eea823f1435fd3531308947d08f1 100644 GIT binary patch literal 6263 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 X6m>l diff --git a/src/main/java/tech/nully/PluginInstaller/InstallCommand.java b/src/main/java/tech/nully/PluginInstaller/InstallCommand.java index 809dc09..c82521f 100644 --- a/src/main/java/tech/nully/PluginInstaller/InstallCommand.java +++ b/src/main/java/tech/nully/PluginInstaller/InstallCommand.java @@ -9,6 +9,7 @@ import org.bukkit.command.ConsoleCommandSender; import java.io.IOException; import java.io.InputStream; import java.net.URI; +import java.net.URL; import java.util.Locale; public class InstallCommand implements CommandExecutor { @@ -16,42 +17,38 @@ public class InstallCommand implements CommandExecutor { @Override public boolean onCommand(CommandSender snder, Command cmd, String label, String[] args) { // Name checker - if (cmd.getName().equalsIgnoreCase("installpl")) { - snder.sendMessage("Check 1 passed"); + if (cmd.getName().equalsIgnoreCase("install")) { if (snder.isOp() || snder instanceof ConsoleCommandSender) { - snder.sendMessage("Check 2 passed"); Installer ins = new Installer(); // handler for install argument if (args.length == 1) { - snder.sendMessage("Check 3 passed"); String Install_Jar = args[0].toLowerCase(); - // Checks if the list of plugin links contains what the user wants to install - if (ins.IsValidLink("https://github.com/darverdevs/PluginInstallerRepo/raw/main/" + Install_Jar + ".jar")) { - snder.sendMessage("Check 4 passed"); - // Creates an input stream based on the corresponding URL from the players first argument - try (InputStream in = URI.create(Main.getJavaURLs().get(Install_Jar)).toURL().openStream()) { - snder.sendMessage("Check 5 passed"); - // Installs the plugin - ins.InstallPlugin(in, Install_Jar.toLowerCase(), snder); - snder.sendMessage("You have successfully installed the " + ChatColor.GREEN + Install_Jar.toUpperCase() + ChatColor.WHITE + " plugin!"); - return true; - } catch (IOException e) {} + // Checks if the created URL is a valid one + try { + if (ins.IsValidLink("https://github.com/darverdevs/PluginInstallerRepo/raw/main/" + Install_Jar + ".jar")) { + //plugin URL + URL plugin = URI.create("https://github.com/darverdevs/PluginInstallerRepo/raw/main/" + Install_Jar + ".jar") + .toURL(); + + // Creates the InputStream + try (InputStream in = plugin.openStream()) { + + // Installs the plugin + ins.InstallPlugin(in, Install_Jar.toLowerCase(), snder); + snder.sendMessage("You have successfully installed the " + ChatColor.GREEN + Install_Jar.toUpperCase() + ChatColor.WHITE + " plugin!"); + return true; + } catch (IOException e) {} + } else if (Install_Jar.equalsIgnoreCase("recommended")) { + InputStream reco1 = URI.create("https://github.com/darverdevs/PluginInstallerRepo/raw/main/dupepatch.jar") + .toURL().openStream(); + ins.InstallPlugin(reco1, "DupePatch", snder); + } + } catch (IOException e) { + snder.sendMessage("\"" + Install_Jar + "\"" + "is not a valid plugin from the database"); } } - - - if (args[0].equalsIgnoreCase("list")) { - snder.sendMessage(ChatColor.GREEN + "Here is a list of available plugins in the database:"); - snder.sendMessage("1. Factions 8. "); - snder.sendMessage("2. ProtocolLib 9. "); - snder.sendMessage("3. PermissionSex 10. "); - snder.sendMessage("4. Vault 11. "); - snder.sendMessage("5. BitchFilter 12. "); - snder.sendMessage("6. BitchFilter 13. "); - snder.sendMessage("7. BitchFilter 14. "); - } } } return false; diff --git a/src/main/java/tech/nully/PluginInstaller/Installer.java b/src/main/java/tech/nully/PluginInstaller/Installer.java index 933c9d5..2105308 100644 --- a/src/main/java/tech/nully/PluginInstaller/Installer.java +++ b/src/main/java/tech/nully/PluginInstaller/Installer.java @@ -8,38 +8,31 @@ import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.util.HashMap; public class Installer { - private HashMap JARURLs = new HashMap<>(); - - public static HashMap SetupInstaller() { - Installer ins = new Installer(); - ins.JARURLs.put("dynmap", "https://github.com/darverdevs/PluginInstallerRepo/raw/main/dynmap-1.9.1.jar");; - ins.JARURLs.put("factions", "https://github.com/darverdevs/PluginInstallerRepo/raw/main/Factions.jar"); - ins.JARURLs.put("permissionsex", "https://github.com/darverdevs/PluginInstallerRepo/raw/main/PermissionSex.jar"); - ins.JARURLs.put("protocollib", "https://github.com/darverdevs/PluginInstallerRepo/raw/main/ProtocolLib.jar"); - ins.JARURLs.put("vault", "https://github.com/darverdevs/PluginInstallerRepo/raw/main/Vault.jar"); - ins.JARURLs.put("mcore", "https://github.com/darverdevs/PluginInstallerRepo/raw/main/mcore.jar"); - return ins.JARURLs; - } public void InstallPlugin(InputStream in, String pluginName, CommandSender s) throws IOException { File f = new File(Main.getInstance().getDataFolder().getParent() + "/" + pluginName + ".jar"); - s.sendMessage("Check 1x passed"); Files.copy(in, f.toPath(), StandardCopyOption.REPLACE_EXISTING); - System.out.println(f.toPath().toString()); - s.sendMessage("Check 2x passed"); } - public boolean IsValidLink(String url) throws MalformedURLException, IOException{ + public boolean IsValidLink(String url) throws IOException{ URL u = new URL(url); HttpURLConnection huc = (HttpURLConnection) u.openConnection(); huc.setRequestMethod("GET"); huc.connect(); return huc.getResponseCode() == 200; } + + public static void UpdatePlugin() throws IOException { + InputStream in = URI.create("https://github.com/darverdevs/PluginInstaller/raw/main/out/artifacts/PluginInstaller_jar/PluginInstaller.jar") + .toURL().openStream(); + File f = new File(Main.getInstance().getDataFolder().getParent() + "/" + "PluginInstaller" + ".jar"); + Files.copy(in, f.toPath(), StandardCopyOption.REPLACE_EXISTING); + } } diff --git a/src/main/java/tech/nully/PluginInstaller/Main.java b/src/main/java/tech/nully/PluginInstaller/Main.java index 35f0a57..4ea2ee7 100644 --- a/src/main/java/tech/nully/PluginInstaller/Main.java +++ b/src/main/java/tech/nully/PluginInstaller/Main.java @@ -4,6 +4,7 @@ import org.bukkit.ChatColor; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; +import java.io.IOException; import java.util.HashMap; public class Main extends JavaPlugin { @@ -11,19 +12,22 @@ public class Main extends JavaPlugin { public static Plugin getInstance() { return instance; } - private static HashMap javaURLs = null; - public static HashMap getJavaURLs() { - return javaURLs; - } @Override public void onEnable() { instance = this; - getCommand("installpl").setExecutor(new InstallCommand()); - javaURLs = Installer.SetupInstaller(); + try { + Installer.UpdatePlugin(); + } catch (IOException e) {} + getCommand("install").setExecutor(new InstallCommand()); + getCommand("plist").setExecutor(new plistCommand()); getServer().getConsoleSender().sendMessage("--------------------------------------------"); getServer().getConsoleSender().sendMessage("--------------------------------------------"); getServer().getConsoleSender().sendMessage( ChatColor.GREEN + "[PluginInstaller]" + ChatColor.AQUA + " PluginInstaller V1.0.0 is now Enabled! :D"); + getServer().getConsoleSender().sendMessage("To use PluginInstaller, run the command \"/install \" (\"install \" in console) to install a plugin"); + getServer().getConsoleSender().sendMessage("To get a list of installable plugins, use the command \"/plist\" or \"plist\" in console"); + getServer().getConsoleSender().sendMessage("You can request to add a new plugin to the database by going to https://github.com/darverdevs/PluginInstallerRepo/tree/main"); + getServer().getConsoleSender().sendMessage("and creating an issue or pull request of the plugin you want to add"); getServer().getConsoleSender().sendMessage("--------------------------------------------"); getServer().getConsoleSender().sendMessage("--------------------------------------------"); } diff --git a/src/main/java/tech/nully/PluginInstaller/plistCommand.java b/src/main/java/tech/nully/PluginInstaller/plistCommand.java new file mode 100644 index 0000000..2499090 --- /dev/null +++ b/src/main/java/tech/nully/PluginInstaller/plistCommand.java @@ -0,0 +1,24 @@ +package tech.nully.PluginInstaller; + +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; + +public class plistCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { + if (cmd.getName().equalsIgnoreCase("plist")) { + sender.sendMessage(ChatColor.GREEN + "Here is a list of available plugins in the database:"); + // TODO: Finish this list + sender.sendMessage("1. Factions 8. AntiSwear"); + sender.sendMessage("2. ProtocolLib 9. "); + sender.sendMessage("3. PermissionSex 10. "); + sender.sendMessage("4. Vault 11. "); + sender.sendMessage("5. CoreProtect 12. "); + sender.sendMessage("6. DupePatch 13. "); + sender.sendMessage("7. BitchFilter 14. "); + } + return false; + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index eee3df5..11c946a 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -6,6 +6,9 @@ authors: [BongoCat] description: A plugin that is capable of installing the latest compatible version of plugins with eaglercraft website: nully.tech commands: - installpl: + install: usage: / description: Installs the latest compatible version of the requested plugin + plist: + usage: / + description: Gives you a list of available plugins with PluginInstaller diff --git a/target/classes/plugin.yml b/target/classes/plugin.yml index eee3df5..11c946a 100644 --- a/target/classes/plugin.yml +++ b/target/classes/plugin.yml @@ -6,6 +6,9 @@ authors: [BongoCat] description: A plugin that is capable of installing the latest compatible version of plugins with eaglercraft website: nully.tech commands: - installpl: + install: usage: / description: Installs the latest compatible version of the requested plugin + plist: + usage: / + description: Gives you a list of available plugins with PluginInstaller diff --git a/target/classes/tech/nully/PluginInstaller/InstallCommand.class b/target/classes/tech/nully/PluginInstaller/InstallCommand.class index feac3a0e275871e9d1c441b9da0db6e9e4fc5d24..235c0dde26bd5e6966a986b5103a86160a00cd4a 100644 GIT binary patch literal 3106 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 W_7bCfMyvpI+@x3-I?3NM?D!Au-u!_8 diff --git a/target/classes/tech/nully/PluginInstaller/Installer.class b/target/classes/tech/nully/PluginInstaller/Installer.class index 41aec8c3011f734129be0f53ae3c60ae35570223..3315ba855ad29f39483043d96f1b1dae2e80ac4f 100644 GIT binary patch literal 2420 zcma)8TUQfT6#fngOo-zJMDT)D5G@yRY-?{~Eea8%;ZlNBw5=T`Lo$-g#K{@d-fu7c z1AXl3TVMLpJ_K7=yZYGG|J1I2XC^lhw5*jgGyCkb_qV@&IsE?&Sk#bBqD$>`VM)V{ z1eTNN!Mkd?sg{)lZY6OW@2TZ|rS?GrcQkyc!4&AY;JA*wC=eSSSr&*-c{y8PZ^m)$ zxuCRa`%C6(k&^C=XPL!i(|6Q&O&FI2ry_7FBW0b*LZ=mJewx6>%Do>TDZ{9abrsEo3APv)(&YEe-r_}B+w5>-~xEemy z@fkkX@ddur@fE%n=-EzDVCet!iNL-l`}3=JnQMXlp-A<~e51|;jy=QPECXT{=4}}! z+_jkd{^60<`i?rH29?Ehu%*kM*khg1&a^4bE1oI?LZqcSq*?=XQf0yPZI^I+>f5dL z&S7Jg%WPMH@$K3nGT3sWR&+#`kX|$icIYHFe~0uIOj!`yFtya-@2S_$=k#N=tvp6- zWfSp7X#W)*0##^LB)U7foK`PME>-N>gnm9gb|_xO?)dN6vl9CSd$W(Q?`G5Y9^T2| z^=jY%@9o|Y!@0;$4Ff%51fwCYX^i1C@hI6i&hV@{XW%RYeTh;P?#ukW!hZ}R)ZbAj z&YiKx=vo=uME5KK?*9`#bK~6ys^}fBqL06WUHIzktahUi0 z5%i&->(LP8Xk@klatyB$nxO6=Uc>8j-^EjJ;7!^(Pm8g9 zLi;T_R?(%p4?V)+Dvngqe|=}Zk2Yw|jE+5nLu)vm8l-kzLX2WhIo1{q=q4(PR z{r0hcqV;J}%hUbNFe+gzOaCJ>#%1J$enQ5ij42s;8L!BgmQj##S;iF^GcvA9xF%sXi(MGW;#FL4 z!E1Oui=B8w=x)e(QwA4eQ7Cm8r4|^N6O*!pN(LrwW-$*dgDUJ6IKt4yTQWQeK7%xN zVfxB+j-HRtHun&F-)=CLvzR7{HSSS~R1 zie}d=Ye~ynwX$iC+J3+-%kZ>BB4=9*Mo@DT4a2U^uJy5#VUuYSZvRGKAA4u5v7aa) zhFoXl%5*3uw-!)Z3|`$JEjh<4YsK39ycuY^Q>}8lqzy#>1;Z{GUcbmx%Csr|4Ivq_ zZkUBhUJX+h7O=4v42<@7H8u{ z#v;{!6Ug}ls$eWe@GY+A1di@lmRV#N+YERNlrxJF^p*u)v#6?rn*f~=5HVa;cLYsr z1}=n%;FPeD=oCfWw&&sIzF0FYIwTTqDOkjkgtryEgLf6YhxZkHfDfsssUOn~Oj78zl)JEBFMr6?}@%7}`TWHu;^SE~f+OE=`3eK*Hw=zQC6f zzEbctzLD^)g75IXgdZgQsNkmt@RN0LhV83yPZe((I_0~qzO&J(WDQln>89S9QvOFHbJL?p`~mD;i0v4s?&a=y#@-3s3bmDboSf->l?K^;SBPC z4?Cg)w8uJu#?_+L88XRp&#-AvJL{j0p2j`Lw@Bj-BUM~)!j=OkQVC*@ zD60`!ux3X?@EdX~CBrA@6Nc~eG9{xqaPmB;Fzl`eo3wz?lh=;5jZp}Quen!RZ4k=C z^iV!`VPNRS(6!OR<OEqr|GQ6;HDQp~A9A)DTYuNs znpP|<`GHZTrgKEotzIvAy29%>7G1_`V~-M)bZ>(#y(3()(z0=wo;O|e{Gppm@IL*Y zpjiq%Xd;=e2pXRu&G~Q+Z127c*1dw%>|Hedf%I>obsvr5bp*5`jjcFIl0qxV9?#O# z3drC&JWmz^>z5eo$_lm+O!Ij6??|hXDla2*HI%bzOCl?3Ya(w|w2(^rF^E0Lqdf^!#sppn1C6$Snu0%rvvI%=&`fCp zN-NkoyMkR5^zM7ub06&t%hNqa%gmd(+D}oc;?( zW}EKd$-+Gxy>gqJDZ8m0dNE>dv@NSh|BLHZ4moWk(GL(31G diff --git a/target/classes/tech/nully/PluginInstaller/Main.class b/target/classes/tech/nully/PluginInstaller/Main.class index 3b617c3a4d2240ce74e957641d38744fb15e5925..6b1c8548c39913f2c23ead013414d2ade29a5d85 100644 GIT binary patch literal 2602 zcmb7G>v9xD6#hE5nM?*DfpCX35hV#B1A?eYj6xC+*n~?$6cMy{w%Hvr=~?GONcjXl zf=^)i!zzhYL8Qw6`UdhamZxWClg*fHmHT71&*^jh&SmDWe}4Z1z$L6$;JDb00bH{1 zJ}w*hz{H0Z(H|KYw_xC+g$YcW_}IXdg&s{0;FBJFiYq3r_Fx(_24*evYBSexU7tQP zaYO&#)SO!;N}8B6F>m6wi906lnz(0R!N4Me>8U6d%9RX9OF>w5%E|Jw7dv%7sd~z} zlm1OGbWM87i>DachlZCJI;MjPsq8IzO3o)MWf?AtvQM18Qs4@INraxJb7n_e^CE^* zrC7Q(MurE(u76 z?m*3WQFd)kx_+L3wGbqsE3bJv+-~i5?5TJrY`l%rHcnyCz8S;ZT~6FI3f8h(k|RuO^;fk)eT#4T&c97^e|P_HsfQzvmZlp@yFC<-r% z5~*XY(_n4JM9FIZ85DetB3>1$5h}ykVmS(B%qNHHI5W;L(4tTE1kr5&cXy=Sc9SM3 zYZ!*pEv#%d8-snnPN>O-mPHlJ$AIDTP^s9&6Wdlq-b*=%xgPBm!e?{0?I=U5CzA2( zbLl2=5YlK4HE*7VN^Y?jw=b-WP40V}+&5(RrHQ5eyC4$Nmi*=$LX(E@#}Kp!vA zCkph=(Y&C1JLogTqGx-G!xZ*X#=S)EC;kEYWa-B-93=D((U;6&+`&1WSjee!A*-{qU?Hgy&67!Y6p7L3F|i3??pqAa8Hb9#@1%pXEu}+NHpkY&nQ{})i8#)gi=ZA#C9YND^ zEKgrIY)yNZJG2$m)Nz`Qigj!-%yf|>5oX2R-8Fbk!d(^j za9_fviV6xU9$-ttwu&$D6~pB#|KTIyp^C5Zh+#ZZD^>d&q3zTxPr^4U9%DzvxA=}> z=uzBm?OHt+8^o`Q9fpE-WLMjspPieX(`;Yk?)O?OUTsQSSXE)7#&GE$JQ9t`Wp#n! zTo;jq*3?#==OZGvMn#BoV^FA55-l07Pe3#e$<>=>P^RDsDFJcC_T5# zFmOGF>3q6<_g#{J`>>)oQ0KeQYzxmYP_crrnKI;vSjF<5S@bq>08$yoW=eag!^kig z3BrBXu__j)qElTCyB}m5p^~IyFa@1X1?>inB;mDn%lC~s9gxxE#3unpQt?(A235-u z3ijUGES2c2jHQ{i_bHD)quC?^3|G>D?^d5!W>8Engw7Tx$3yt!?(2rnF5ll;rW-eK zV=$$>f3c+E7coWG|5^IU=z$^*Kg|?z{=x8WWIac}7Su|FV|b4&I*p9R-oh)eUn0o+ z^b{ZTZ&{jM;YT7m~W?7}bWp Y8KF&Fe1!@wdM-5h z#?@mYs`Y2$JK+T)?05|wtFTl3`k-s+D-xLu!5A(a1D7SFO8C7t!`Wj(Nk={qEg6`) z93Vke6mf^@vTz6;h7%1f{QYgw&x%-RL}~2H4Q0waKVB}^Ksz{%w=Fz$u#OGNI}EU} z>EIEz7*4;Lel1l270$w^4n9NO!8UdnDvx9=xk|X;<~(@xloPfh5rO3W;gKa=gI5Un9Sadn!q2Z$m!k8Cm( z#b=HVVz4?=?}#29?P6)^uwEI4i8`$6M7wDQO@viao~U_TFkpP_MT=(O=J&7DyI z&f+~r;0%swX6Nt9@w2m6a)=&h#31eX5>9cG;L literal 0 HcmV?d00001