From 8efeb1cc5bd23b6f9395c511e80b305e96fb4870 Mon Sep 17 00:00:00 2001 From: Jonas_Jones <91549607+J-onasJones@users.noreply.github.com> Date: Mon, 25 Jul 2022 23:57:42 +0200 Subject: [PATCH] Implemented new command execution method --- .../me/jonasjones/consolemc/ConsoleMC.class | Bin 1956 -> 2677 bytes .../consolemc/command/RunCommand.class | Bin 10673 -> 9838 bytes .../consolemc/config/ModConfigs.class | Bin 3105 -> 2927 bytes .../consolemc/system/ShellCommand.class | Bin 0 -> 3559 bytes .../me/jonasjones/consolemc/ConsoleMC.java | 9 ++-- .../consolemc/command/RunCommand.java | 23 +------- .../consolemc/system/ShellCommand.java | 49 ++++++++++++++++++ .../resources/assets/consolemc/icon-large.png | Bin 0 -> 13960 bytes .../assets/consolemc/icon-medium.png | Bin 0 -> 605 bytes src/main/resources/assets/consolemc/icon.png | Bin 31982 -> 173 bytes src/main/resources/assets/consolemc/icon.png~ | Bin 453 -> 0 bytes 11 files changed, 57 insertions(+), 24 deletions(-) create mode 100644 production/ConsoleMC.main/me/jonasjones/consolemc/system/ShellCommand.class create mode 100644 src/main/java/me/jonasjones/consolemc/system/ShellCommand.java create mode 100644 src/main/resources/assets/consolemc/icon-large.png create mode 100644 src/main/resources/assets/consolemc/icon-medium.png delete mode 100644 src/main/resources/assets/consolemc/icon.png~ diff --git a/production/ConsoleMC.main/me/jonasjones/consolemc/ConsoleMC.class b/production/ConsoleMC.main/me/jonasjones/consolemc/ConsoleMC.class index 28ecc87fbef0e8e6b90f1c6386f7d83cbc9dc735..7958a5eaee760bc5021151bea746c41e54f8abc8 100644 GIT binary patch delta 1101 zcmZWnOH&g;5dLP_WW%zW7$X7-21P{>;sf6=6hxxIs8Lby!4ihBA=$;<1q2^aJb1R| z;$1HuAytT!eDWc_8?ez3?PxtqI)9-`7BI?)Qt6u<|!K+2}CsV7j z9nBhcVwV_^n)(9R%~0E8nU0m?13gj0G+aZ^8S{LsxdwaDs$idnHncN@EISi(a^qdu zSi;I=xXmCN=D5YMMI4YKq1#^R4h@}%F-Xajcq46T34`IFhC?{aur;qwa%z><-9f{h z@S3{1={llAs_V$=GkPqio0(Y3wGA_KDu5#l)#){4`Lv2-IIiG?hLboY6e(3Wqv5RA z%0H0oeHiZzpqoLloK92Ea}^iRqo7yAMXz({uj+G-%kvC18SY-QttoE1b1E*OUqM{M zWnB3;yM%?ZT`OVDa=S-&I76g$Um|<#f4~C-VAe3ltXan^nbdF%*BMlzX}gZcxvW*w zkf&8j!%f^GlJV4F{AzD?H&5`v}@UO3~yUSP_7d{ zs^ax!{f85ko5|5EPrD)`H+BXv%dk1c?HO)I?P=4bw~AV3lrd;=((d+7iIL6&p~%GB$ZdSgD9w3I|bx5S`p#zcx(gUisz~)UIIL5~AUjPuL@Yc1zg5iUUB& zui&XA$Uq&ch@Kw}RB#)jGzb-Z&4jPu0Sw^5dZ)`}fP2DSD>z!DMqNdm4xd}W`DOHl z6U(?-#Ep_)#QqBMFsTH>9U$@>uo;brQ0s?uCSe3R*)Z)!>CC_+{Zqte29ImYfjK4wBo={$XTUs$M+grm5U_(WI5CM~3$h|JA~IvigV@3q zqCNs#Ao9jy!2#eBa0521kPtN{0v7#uRrO#0U)4XRJ{0}Wzdn8fR(ZPbe^YZV#}wX9 zKS}$&?yDW26P(nX3OLQ8`I&3C&IXh@r*N9BdVPIc5jOjSI7)jjmUg3NKaRVDipLxm z0xl8>Z=+Rv-l%1~-Oig%)axX1)P6m9nZy;%WwUI3DXjY3=8k49;4b%uMcY!UW~Q9? zllOh{+wss}qKbpphiqLABRO({8G1n(w-7Z7PnMclL~VW^1$JPFP!t zs!5z`Ueh*v?$-Pza+I?PIoivR3*H D3pPw- diff --git a/production/ConsoleMC.main/me/jonasjones/consolemc/command/RunCommand.class b/production/ConsoleMC.main/me/jonasjones/consolemc/command/RunCommand.class index a96c267f7383eb878ef82283c67baa32ff5abfe5..d6e1646c9194752e99d6426d89e8a82502c7b856 100644 GIT binary patch delta 3414 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 delta 1206 zcmZuvTXR!Y6#jM_&Mn6hBF#XwC0xX$0|}SHpcP5rgmR#1fCO3)jR$fXifN+FNhw|k zpxp0l?s65p`ylO1K$zi)aU6ev&-?-Yfx7nTP&(pySl?c2ugmwXv!4ZSPt*SV`{82% z%kj%S?f1r|lRvWeL>;^0M2DquZFKj%r+42J)-U8G?(I%TZUVPY-AlwH=46)Re$Ld+~VcEKKG zkX-`lJ{li3BV8|LbSUUzXzVXJ3c6pKuvm)!8r?_2pw+Mu85vnIYZHU-MJJZjOR2#3NtcT_NGo!E!!2U=2s})__&86}(4myUWf_y3^2#_jP=L z9D`o4o%Eog*?m^E=rAk`^PtkgkFa1(g%_5N?U=^k$tE*dQI{8WL?;lQpmuDd9cIK7 zH3c0z(a)e{(y3(5?9MVUQ;H{rP?Abb21Jw6|2HurhG_D!z8ar^R_t}V80k$byOPw% zy>xU`#e_gA(VH_8sYGWoXQX>FW_M?9W13QSV_3!>9iQSe-XblLzRb?>hfOe$sT4 zR>^jhOMU$X1-JQCCC0)EVpt-ln#Beqw0l^VL>9r21GY5KT=*`T;hG@a75OUSEikYtOR6w21QDU##_>8fqlMTk9%nO5n-E{u z2<8)$t#xc0#fQRKo6CMxIlv&a1oaXo9J|zh~IGSEqp_Hq)$ diff --git a/production/ConsoleMC.main/me/jonasjones/consolemc/system/ShellCommand.class b/production/ConsoleMC.main/me/jonasjones/consolemc/system/ShellCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..a25c7f1666892672585dd4e6247510cc71e62e18 GIT binary patch literal 3559 zcmcInYjfOI8Geqvw$>ZP*EqG)o0Gc5*N8$|Xf`d>+g!G+?c#N8whaYYd%TvtD=m`N zak!OBxwaH&p|ph-Qie%81DR<**pLkHjSmdJgF906KZ!>5?tA>=0HnaqYE0+yAI8- zc+xEQQddUD0q8vCH5`HSBZVDJ#lW+jO15CRHKXRPD&sf06eFry0{xE*(BxKqbnxLe?8O&Y7NWBPnZ zUxnqnRavtbSU8%_33TL(i}{(yW*3VB;>k3Q3TRfXd|YnGH0}{-F)U^HULE)0BWf?g zM8LSE3kk1w$COQDR3Nov`YUOSQ}1M`cT&M}T%dm>iEb>K)$mcq8p33|##Cc@S$eWO z$Mh6vPsrxM^usxJgg3pmVG;iB5$(M{-w)b$89WVB$C9ewt~whBnPysR^PXu*4P}A5cG#6?>+rlr zJ&@&uyaiK3MPU5>GU;FP16ebQE3#VMPGu_RmPwH=#gv&wZAp6bs^^4AT4r^@^lUYc z7gNECO|T{l`>;VmYpisu5m4*YEpXajgUl<}cCd&O6?ToVqbl$ALopVA!A(Ybsosp% z+>fGD1xE%(jWAlCxf~e2^wz^ZANF^n7*1o@i*CcSWcCq4(^0f5j>&2wIO`u0od3y% zQ3BdsHET;{b2v`ZFgxOhPt*c)Qjfklq$PZ>|eac(+9&+oHpxW6=?V_i)PZ&ham8dNV9Ip^Kk&@@v^epZ#(Pm znluVw)+k{vn^xd@mjn*flCys#2^9-P2F~%$QI-C1!FAUf^=u;gW}Dt)EfSn(c_feT z()xj$k;xC1O}5}zbIz<*i*_Kh-DoE&FJ-WdpXpe~Mb2K%;1_sB!>g*lza}ue$LlDZ zsO6t&qV&rDAD0-$x-5g^Yzake;lj^cObdg`Eq429QWU)yPog5MZdfsuQ zm#dn-FMSQa7Pxm$%(qIhhReIYA-nPxvq61FLq6arL2lvg7HH+ylUHOuS2#2H7JRpj zZ9%-lK?`g?)i$7GHGGB#u!bsU9jL+KDJ5(o6)Nq!4y`mcevO;h!of{+r+&}v)=*U^ z-#{n-j-!Y6l*+@A7;lFzXW&(_jxW)q$FUxoRx3V70asek=*}p9a89%0uk>Hz`qk^` zE4BU^{ad(g`du7(6?aawb6RTc9V(Vmy~m2Bwz1+Sh8M5kNONaI?Tl^jOl)Fe<~oeh zb=+T?+{DMX@X!`colFg;Hu0&_$+o}Y;Mic>_#ctG^4>prApc-{fBS3be;3pJ?bq;G z;7>T;f-C4vt~{kyx@UO)i&v0VZ}|@6$l-PThW7&XehXHN&>Rjinl47(&3kPRCWuE4 z12~5x)PFlJ@M2!U-9+dZF}Md`#V}qVcCTZS+D361WB47%Z($s7Q~D1?TA_S_`8bF3 z*uW)Py1-lHm+=**tc-`K!zGFrspV_(AgDJok1u`evB5tJ@j68fQqyoA?&K z%~+nLg$K}a0}~qh4*v@S8ct|1Zs3rH{u{VMyvLOD7g@iC@9+dLrQzwb8mtsme~-c~ i_&$EXcP~dj$43@rM{kZ!o|&G58;Bq4AUe literal 0 HcmV?d00001 diff --git a/src/main/java/me/jonasjones/consolemc/ConsoleMC.java b/src/main/java/me/jonasjones/consolemc/ConsoleMC.java index a54297c..b1fa63a 100644 --- a/src/main/java/me/jonasjones/consolemc/ConsoleMC.java +++ b/src/main/java/me/jonasjones/consolemc/ConsoleMC.java @@ -8,9 +8,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ConsoleMC implements ModInitializer { - // This logger is used to write text to the console and the log file. - // It is considered best practice to use your mod id as the logger's name. - // That way, it's clear which mod wrote info, warnings, and errors. public static final Logger LOGGER = LoggerFactory.getLogger("consolemc"); public static String MOD_ID = "consolemc"; @@ -18,9 +15,15 @@ public class ConsoleMC implements ModInitializer { CommandRegistrationCallback.EVENT.register(RunCommand::register); } + //find out if operating system is windows + public static boolean ISWINDOWS = System.getProperty("os.name").toLowerCase().startsWith("windows"); + public static String OS = System.getProperty("os.name"); + @Override public void onInitialize() { ModConfigs.registerConfigs(); registerCommands(); + LOGGER.info("ConsoleMC initialized!"); + LOGGER.info("Server running on " + OS); } } diff --git a/src/main/java/me/jonasjones/consolemc/command/RunCommand.java b/src/main/java/me/jonasjones/consolemc/command/RunCommand.java index 5f3462a..9e480ba 100644 --- a/src/main/java/me/jonasjones/consolemc/command/RunCommand.java +++ b/src/main/java/me/jonasjones/consolemc/command/RunCommand.java @@ -3,6 +3,7 @@ package me.jonasjones.consolemc.command; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.context.CommandContext; import me.jonasjones.consolemc.ConsoleMC; +import me.jonasjones.consolemc.system.ShellCommand; import net.minecraft.command.CommandRegistryAccess; import net.minecraft.command.argument.EntityArgumentType; import net.minecraft.command.argument.MessageArgumentType; @@ -75,27 +76,7 @@ public class RunCommand { } } public static int runCommand(String cmd, CommandContext context) { - Process process = null; - try { - process = Runtime.getRuntime().exec(cmd); - - BufferedReader stdInput = new BufferedReader(new InputStreamReader(process.getInputStream())); - String s = null; - while ((s = stdInput.readLine()) != null) { - returnCommandOutput(cmd, s, context); - } - BufferedReader stdError = new BufferedReader(new InputStreamReader(process.getErrorStream())); - while ((s = stdError.readLine()) != null) { - returnCommandOutput(cmd, s, context); - } - return 1; - } catch (IOException e) { - //e.printStackTrace(); - String errorLog = "Error: \"" + cmd + "\", No such file or directory!"; - ConsoleMC.LOGGER.info(errorLog); - broadcastToOP(errorLog, context); - return -1; - } + return ShellCommand.execute(cmd, context); } public static void returnCommandOutput(String cmd, String commandFeedback, CommandContext context) { String consoleLog = " [" + cmd + "]: " + commandFeedback; diff --git a/src/main/java/me/jonasjones/consolemc/system/ShellCommand.java b/src/main/java/me/jonasjones/consolemc/system/ShellCommand.java new file mode 100644 index 0000000..ea90424 --- /dev/null +++ b/src/main/java/me/jonasjones/consolemc/system/ShellCommand.java @@ -0,0 +1,49 @@ +package me.jonasjones.consolemc.system; + +import com.mojang.brigadier.context.CommandContext; +import me.jonasjones.consolemc.ConsoleMC; +import me.jonasjones.consolemc.command.RunCommand; +import net.minecraft.server.command.ServerCommandSource; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class ShellCommand { + public static int execute(String command, CommandContext context) { + new Thread(() -> { + ProcessBuilder processBuilder = new ProcessBuilder(); + if (ConsoleMC.ISWINDOWS) { + processBuilder.command("cmd.exe", "/c", command); + } else { + processBuilder.command("bash", "-c", command); + } + + try { + + Process process = processBuilder.start(); + + BufferedReader reader = + new BufferedReader(new InputStreamReader(process.getInputStream())); + + String line; + while ((line = reader.readLine()) != null) { + RunCommand.returnCommandOutput(command, line, context); + } + + int exitCode = process.waitFor(); + if (exitCode == 0) { + ConsoleMC.LOGGER.info("Exited with error code : " + exitCode); + } else { + ConsoleMC.LOGGER.error("Exited with error code : " + exitCode); + } + + } catch (IOException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + }).start(); + return 1; + } +} diff --git a/src/main/resources/assets/consolemc/icon-large.png b/src/main/resources/assets/consolemc/icon-large.png new file mode 100644 index 0000000000000000000000000000000000000000..6c682027daecbfee7820ce34100142bd23177690 GIT binary patch literal 13960 zcmeHNUue=%82!{a-AXj9O=2uZ4;H~91`TO4U5b-n##jUqY!oOpA(>F7qGk~Nfz?Y5 z$!RY!YM{Zw87pWH(rC{06j@@n0*f{@g79G*-Fp`l`J%NAR-Yih>qSw|@0|Oc@7#Ok zaFxXxU7P4W3_8OFs8aNov;|Q zbE-_-!zbJ-_%}%?#XznH4jT+q;RND=bf{Pjxl|(*j^qLhHOE=smH*PbyoWI9RgR0X z2EhSS47R?O(Z*x!#gHl`%=xGQ3N19?u=@Q(XOEvv6eHxlZZwJvu?^OSxgMMm+!OIM zTluG6EJfN<4yjOXLL`*7L|;s-QbBX((`labi^=q&5=lZ>fchE6q;s-nQ!# z_FhsdLvvWOj|mbzcmqZG`**654zFXA&%1tczjXL2t#H zr9HBn;TeFs{q!sV{UQt$Dh?DjU?LY>;DBp{=J&Ce#3YjY?)A*_g_HnrW2cv0LCM7l z!~^M2u^PTw#84dlRb3Ffiupao5zEW}P+rz_Yl`Ogtv^j->{gz*#=`F9*>~rf)l93{ z#9|Xmh=5((AFF{LP<-0^qX&cRq4K&g_v`VKQaB+K`ebR(^x4I2AD<+8tbU)4{tk4L z>~5f)VlW^be($ZE4p>Yb>vwQLJV1}!_XWjxz=Pm`ju9Orp~2q-U}mE@`#I2}S^+Yc nU=sIqaSW-L z^Y)IR-w_7^*Mo+)e#hU8S=byoPcr-{%e0DD4eKB7djC64;O9#FhH_yAO~y$=sKhUy z`VYI-<=3&d&*aO|LzROnUHMVS$n-Dwj?~tzF%C&gDyj}aXvFR56EwRyvv)QeVe#;4 zSb|1u(^tIwG-+2$gwMHWOz8H5?KpK0C>e2@RYeWMXeO1Zx{ASKlQ-|gFc)l%-2N7y zNS}Y|;uEGYcyba=TrtddT9$9IY|qyp(l~s5TwhVF50|x@RF51w7^SCRh!LPd3M=1w zpSUdEclZ8xv)%RbI81-z+hH!V<|&g9wn(|Puf?YJVa2cSdwaRD1SpF~)}EFh>w{{V dvCF;^&tkNQYifA)9++MjJYD@<);T3K0RV8K$*%wa literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/consolemc/icon.png b/src/main/resources/assets/consolemc/icon.png index 41a0a240f768128d2675a79e193df79105db74d6..e01cf33e68a2f64516ea5c74666a9c28f26cdefd 100644 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|(mh=qLo9li zP7dTdpupiQf9!Ys&fhb;gC|8^v+t=@(p2>P6TsflF)30gS5GUeIIz*C;Ulm3r&kM@ zGG8}x-(=8JVYTpLeEf8BO%B8HJ&ZBNcLL9yiD#Dieo4ln$|~aQ@(p}nU72<;Y&)c_ UVmi~i1!yIMr>mdKI;Vst0OPbfd;kCd literal 31982 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 FV1k}KHtqlb diff --git a/src/main/resources/assets/consolemc/icon.png~ b/src/main/resources/assets/consolemc/icon.png~ deleted file mode 100644 index 047b91f2347de5cf95f23284476fddbe21ba23fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 453 zcmV;$0XqJPP)QAFYGys`80vegN0XDFh0OXKz&i8?Le#x7{1X)R+00000NkvXXu0mjf73i~T