From 2104fd99180a8aad15b710efda362381efec6065 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sat, 23 Nov 2019 20:40:56 +1300 Subject: [PATCH] Bots use normal chat, with effects --- .../src/redone/game/bots/Bot.java | 29 +++++++----------- 2006Redone Server/src/redone/util/Misc.java | 12 ++++---- 2006Redone Server/src/redone/util/Stream.java | 1 - .../redone/game/bots/Bot$TradeChat.class | Bin 795 -> 795 bytes .../2006rebotted/redone/game/bots/Bot.class | Bin 3819 -> 4330 bytes .../2006rebotted/redone/util/Misc.class | Bin 8837 -> 8981 bytes .../2006rebotted/redone/util/Stream.class | Bin 10127 -> 10127 bytes 7 files changed, 17 insertions(+), 25 deletions(-) diff --git a/2006Redone Server/src/redone/game/bots/Bot.java b/2006Redone Server/src/redone/game/bots/Bot.java index 72dac92f..1df1608e 100644 --- a/2006Redone Server/src/redone/game/bots/Bot.java +++ b/2006Redone Server/src/redone/game/bots/Bot.java @@ -3,12 +3,8 @@ package redone.game.bots; import redone.Server; import redone.game.items.ItemAssistant; import redone.game.players.Client; -import redone.game.players.Player; -import redone.game.players.PlayerHandler; -import redone.util.GameLogger; import redone.util.Misc; -import java.nio.charset.StandardCharsets; import java.text.DecimalFormat; import java.util.*; @@ -68,23 +64,20 @@ public class Bot { String item_name = ItemAssistant.getItemName(item_id).toLowerCase(); int value = BotHandler.getItemPrice(botClient.myShopId, item_id); if (value <= 0) return; - botClient.forcedChat("Selling " + item_name + " " + formatSellPrice(value) + " ea"); - /* - Real chat - Disabled for now, can't get it to function correctly - // Add some color and effects - botClient.setChatTextColor(9); - botClient.setChatTextEffects(2); + String _message = "Selling " + item_name + " " + formatSellPrice(value) + " ea - " + botClient.playerName; - String message = "Selling " + item_name + " " + formatSellPrice(value) + " ea - " + botClient.playerName; - // Need to figure out how to calculate this - botClient.setChatTextSize((byte) 29); - // This is wrong too - botClient.setChatText(message.getBytes(StandardCharsets.UTF_8)); - // Not a clue what this does - botClient.inStream.readBytes_reverseA(botClient.getChatText(), botClient.getChatTextSize(), 0); + // Disable the force chat for now, maybe use that instead, maybe not + //botClient.forcedChat("Selling " + item_name + " " + formatSellPrice(value) + " ea"); + + // Normal chat from here down: + botClient.setChatTextColor(Misc.random(11)); + botClient.setChatTextEffects(Misc.random(5)); + Misc.textPack(botClient.inStream, _message); + botClient.setChatTextSize((byte) botClient.inStream.currentOffset); + botClient.setChatText(botClient.inStream.buffer); + botClient.inStream.currentOffset = 0; botClient.setChatTextUpdateRequired(true); - */ } private String formatSellPrice(int price) { diff --git a/2006Redone Server/src/redone/util/Misc.java b/2006Redone Server/src/redone/util/Misc.java index 311fa4b5..7c6caf06 100644 --- a/2006Redone Server/src/redone/util/Misc.java +++ b/2006Redone Server/src/redone/util/Misc.java @@ -218,14 +218,14 @@ public class Misc { return new String(buf, 0, buf.length); } - public static void textPack(byte packedData[], java.lang.String text) { + public static void textPack(Stream inStream, String text) { if (text.length() > 80) { text = text.substring(0, 80); } text = text.toLowerCase(); int carryOverNibble = -1; - int ofs = 0; + inStream.currentOffset = 0; for (int idx = 0; idx < text.length(); idx++) { char c = text.charAt(idx); int tableIdx = 0; @@ -242,19 +242,19 @@ public class Misc { if (tableIdx < 13) { carryOverNibble = tableIdx; } else { - packedData[ofs++] = (byte) tableIdx; + inStream.buffer[inStream.currentOffset++] = (byte) tableIdx; } } else if (tableIdx < 13) { - packedData[ofs++] = (byte) ((carryOverNibble << 4) + tableIdx); + inStream.buffer[inStream.currentOffset++] = (byte) ((carryOverNibble << 4) + tableIdx); carryOverNibble = -1; } else { - packedData[ofs++] = (byte) ((carryOverNibble << 4) + (tableIdx >> 4)); + inStream.buffer[inStream.currentOffset++] = (byte) ((carryOverNibble << 4) + (tableIdx >> 4)); carryOverNibble = tableIdx & 0xf; } } if (carryOverNibble != -1) { - packedData[ofs++] = (byte) (carryOverNibble << 4); + inStream.buffer[inStream.currentOffset++] = (byte) (carryOverNibble << 4); } } diff --git a/2006Redone Server/src/redone/util/Stream.java b/2006Redone Server/src/redone/util/Stream.java index 00c33293..3047baba 100644 --- a/2006Redone Server/src/redone/util/Stream.java +++ b/2006Redone Server/src/redone/util/Stream.java @@ -161,7 +161,6 @@ public class Stream { for (int k = j + i - 1; k >= j; k--) { buffer[currentOffset++] = abyte0[k]; } - } public void readBytes_reverseA(byte abyte0[], int i, int j) { diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/Bot$TradeChat.class b/CompiledServer/production/2006rebotted/redone/game/bots/Bot$TradeChat.class index 427a389fd0197fb9c78462203d9a5b8a45254f2b..604667757b6db2b71847f4e26fcc9bcbace9e18a 100644 GIT binary patch delta 31 mcmbQuHk)lj1{0&+b~UPA_U1|tS324eb~UQ-5k1~UdJ26F~o28+p0naluph6dsQ diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/Bot.class b/CompiledServer/production/2006rebotted/redone/game/bots/Bot.class index 30e49ec9c9aa4175cda48689a81acbccd9234bac..626ebff0af218563b56c93532d239cb59416aa62 100644 GIT binary patch delta 2052 zcmZXUcYIVu5XZlpEAR5M$QdFK0}_fzlUPtNSdw4?2~7k&qv9jE;6akZyNjr(XF;(d zdMfsc*cDB@M6oM&?7d~+u7gF&irg{*M7h>K;XG?%zs%4IH>bA`i|F8#Pl&D9RqxC|hzYp!)!$#pthrRI8< z8@SQsCT`Z9Z&AvvF1K;JPOR1f?oe}Qh_(>zuGDf@h^*2&l+jtp-Q1&$H4^@A?p1i7 zn)@9d2=SoHI35aCuUi)tX$V%Ycx{OSmxp;IST#hkj>hq5h_%7$(MwKHN3iPG`T8fs zW5KF(s`B`8)#Ql~PdYs1GF2;@!P5@UIIJ^m)6H@d3e9PbCX?R0%sT}U|1}QJW-5KN z%mbO_zO8)`Vwq0gfT0ndv&>?)<#{~I3wQ=QH=dfa&`Ty4#S;yd7x6M1ef^@(T3+I1 zhgU4G@|xv!-mtvMB1Lam-sT<4yBg#@)?40J^MRTV)qKQyhmS3v@TtRRmJNJv`GPMU zzOsDHHxA!gzT^AM@&3W-2tQbUBxdL}-#gN)XideMDykC+@95fCGG+ORpB;X&{K{{Z z-}%GxCmS6$S^hFO##mDzX&IknWc<`SCSXm_IM#$rp*5~4vO*~`gl0yYnqn>U$_=L6 zawLlk!Sd(`uYB8bYkHW?tm$dOj@jIrV(P8wWlF5s!t}PLkLhboso65qCop(m#FROv zpEdo>R@MwK8f~t8&GIb}am>I>U7$3000$aMGAH^=+Li?t`P0FK*U}Idl7HBw;gbyE zWHdG5a4)rg^r+N?cvC#lH8a~#+-+vB#>QxUDk-_gT4tsaQBMMt)Fz@0@s?#d z!bnM^>0bQ;!|-AMqolp&@wGX1o4l5J6|zc%7(ZOM`+qb;kNVa`BHEIg*4QZ77xh6o3Vt;^izu1y~-zP;I8Y%zX%5vGK`^roCXjHZ;a zlu<{2>e-3~a?z7AvzURL%pjIAgv%Hz*LNG*7{(zIWsK|q?HtM+`71gMPj*u@SE3Z; zP=g?!q6kreejzk6Pm>a7h5U6vU_?9q)dC98EQ2}c$lNZri;&;Na5ypX$YQfr;s%Ai zAv4)}>2OgeBeIOtNTD1YwT8k-2X67US$gVMJX*|%E&Lr+=x93~3A>$upe*6aTpI0c zUmECS2c7Dg-oBk3&&@LCKc1bk?3|zW-NlY+#r`Z~?~siAxhkfL#;}W=N2O>zUY^xm zrQk|-Vt0094{E4lU#jJ_YNXPAq^^min8Yga-pOPhrIuHi!g_hOK4V%=jfpt&^o?YG zUf&IQT|#MjNfyu~($sK0&AI7)xsnz+5}#~w9`T&|tC+w-@dY?Sl2dU*xs?e)N%8b1 zuo2fGWrqAtz}dtAuGM%A6r zrRnOjr6ugS;!?KBpT;P4>>cl)xyDIs&iC1!z=wxKwB^=E$Qn#w& z;`@`a4vR;Pl(@(K(}E1nH8~WmVQQpfJEpZUT^qo3YvZtRjuT%2$4ed>%SbECki7UC DJ&UkW delta 1575 zcmZ9L2~<>N6vuy$8F<6%PBRY{!w! zTYv%%I}D@VW|l(|vr{SIid3<#RJh8=9DUBUx!NI>dWUO>Ib6$idc0nb^VFKJaD!5B zR9K*Jlfumk3l$cnatpUQEM|#Rim}vT8MisO+-`G+!ztXU&|tINA(MKIxyxY%EA_Za z;cka}xYyx6?$^qzmGXeY8XolVkdKEQX@0GbM|6@$ZPxjC%)!t4l%id`!ZIu=MGd>> ztKoFyah^yC_$DKtaa{oPft%N6Ws%z%vdQch6@;Bc!qMrvy@wyNi}s7W(I3(XV*kS zhAryrJS{jY=#K|AwxHsEZ%IAhJ zr1L%AE){#&YxAYyE50^-!?%X-_}*rpVLw0E{Al<|oA_DlA7HG_FNRaO>6c2^~*_ABL}%^!w8`OEM(hlD>#{zA8=>vaEEBvsC| z=#bE+zOE|bA6Zo$jv6lHqNcsci@oigDK*i_;ZX6^V4X!rcTY-&ySiN{yF}I*S%4&! zUM!zR$TJy>QZ5#}#68Vyjg^US2qy}5!b@k;=pw(9$)YQL=tiL|+&H>3nI23hn_6<1 zLr><>OLn+7tH@<7c{GvFNXb$l6<{Ny7%fk=#!xQR)T&^t^rO}|u{>&3aH*JHA&loT zZAzSed1^p%?nb1FYXsco|fr;XgV5>-yX$OnkZ6^d{Eu>a72SLI)AIy!J9?YR*OR*9q{Zp8K|;KVGJP>(_Y=YTix>msTMS4?{W*();w=^&#Blir z#)xd=8OlN#PY3TW4LTx3ux-di(p*e6@QGHFL_bSHhY?D=9!?Qq3G_&s0;VJ+s1&Zw z)ykhLR+V@h^`AV=-Uum z$*FA;Br5RkhJ$!%7PkV{21l{Tw&x}!U_h8d!m zC2=dLVWw!IN;!BAQ)qK}exBrw>P8eN_9;8DbkMGa!LkiQni#6rZ5^{!8A7QQUlMhk NpU7p&#h1uM^B+r;Iu-x` diff --git a/CompiledServer/production/2006rebotted/redone/util/Misc.class b/CompiledServer/production/2006rebotted/redone/util/Misc.class index b4ef0eb77ec384f770ed1103f846d37bc6ca83d0..b87120114dca15366bf4001e7af6b58058db84ee 100644 GIT binary patch delta 3902 zcmb_fdwdkt75>i5?9T2oNjAxD*km^e35A3Wu#kih!0;%BM}veypd=Pa2npq3s0mP{ z)l?d_wTPutTU1a;wbY7M35HZ5w3WUrZK?Iq7b8n1pC*zceuX*u0 z-tgfscvFVIiXDIR;O`#1_S4TeP9Isp0x5_U-PxV$bRp zXG#bR1|p<1Hng_hSiPyKb^huVE7mpHz3#pB3$e(;7g0x`<@_6FQ40A@O0}?z(kx1+ zfJH&du@1=TlSW&3 zgmNqzLu2ijCu3|(CgW(lg?Xs5sF+GjDz#_=8Z9bAwT1aIERf-osJ5FuORFYQIh#n6 z*m71zllg2kMYylBsDh?iG>tL{#)!5NZ6-|@vu9W|kv?wGOuCxjmKP)1EUKhgU0!dU zHahLY5g{ZsZftFBYS~cT+}zf*fw!&L*xcOI+SM>5huY_I9RO}*ic?k6v-SM+iXYXJ z%~nsgTs_%%e&(}NI9@!~@GK@S;-@Qm2=oLC8W!{DR*P;dVcBv3_!O4%%!^vo$)+0n zvXw`R?YyM)@Bqw@Yw>9XTZZcxR%2Hug$o8KQxYhBSdMyyZNLhJ-H{YZzy=bqCSw~F zb|sn=_C!*&a)39auu&L{$waflinNL)IbS9|!;+??)hy|JkTqDVn5HF9svBU6D5g?K z>nOy!I8!06k24jbCC*fc^@>SwD_Jt|S>EG3n$$M(khRxT@jG$p3PG7>2O%D{cizgPsgW-(1 zgPVXGA#PC;2^VL4UVP2XS^ZUBlR~Y9qd}x?ye5{_;!c({=2(L5%;Ho)28>H^o4AWE zBA0(Ui)S&CWAioaaBQ=W1m?0OX0WJQESbZ0<|19`cXPzXDy>q~ll!$!?$-Ieaus1_huAT z4`|uT_mIv6Em@4;#rS0I`MZ^t`+4T{e|h%+&-U<7!(Qg>#J83H@}axg?=KFWwov>o zy)B)q>OnljlEH0Lyr}b=ZTOD*G-#X&((g$1wsg2J!7wpX_CMppQk(1>0%#t;7O!+gn>+pSbOldKXbFvfLxd>0-09zvZgQDNdy<99Ppul;MV?h@V%8~ifa*D~N%1+zc zvO?`q{Yi`#Bf1gj#A8L--56D7=w&Xw%pG(efWNmB;h@1n&|SI*zM#9zwGZA7H|@Lp zTF~XU9)$N;2U9*1(e_{@uOxNC8+29d!?n?a7!$2Mh|zUMJ!=WNcGT=cr31-zUbgqY zjhLH*uKFD{8t=^iz)tnf+`?~pbIQ#X9Xe}Y5YZmM&<`Vb)W}UkS2vAT{tf~!a|B*N zDo$~Sex3Wq8_4GCbphVQSbIx2)_w=x<2pafNpTL3;sSn(i#X1R=eT9OM1;3V`h`>V zrQB;I=iFTL_s0V?p7Z}nUUP9z=u&AR8F?DrIK)qpBxuB%pGS{M8VOZ4tkg?LB5LnL zfHNkG17)QK^UonCo~A#*Q%=k{<6WF+fZui4SF1;|R#w*<+2NJdALy_oUmd4P7~6kQ z@%LX;{QVadKdxL`s z{tk^paPn!4uT3j<9YIO0p4EfWMYTp)9zB?F2xUi^isN9XW{0PVUBh^$abG>Ge86gO zgeCc#jb4_Vn)N}y2#s=`ygiB^iVy6y*?H3^PV$62Jt%h`lkR~_+aEG|FgbbWE({5I z0+`Y`iN}hNXH@{x)(0@7k$-L5_p=Hyy_OmVmeKX-2LT}yKx g*7#o-Ex(Xrc2R!RGfv8i*o({Z^UPnctl`=J1Dz{`V*mgE delta 3878 zcmb_edwf*I75>h>yL)#xm(Av}VY9m-5DJMKAV5NR8Bi!fLt-!MpGwLRVS_#pswGA@i^_hYmF`S0sWNWzZfxtJ@iE4?J*O1?y0OhKa{+PZN4!kU!}S1qfV zxo*w!Rm)sVmjV}4(dbB_D@9W5Vk540B_<`V^p?1w_j}h&xMumv#Y@(>QYwiySCXok zk}~#jy(@jB#F27W`bs}XDqP%zO)hTMrX9BlKqrT~(qC0SpeqMR)RBQM9+J2#l~N@r z=rP#1YTc4$YU(_lO-r?li_z%HAQ|l95?tzrFpVvmaB1e@;OwbGq=x>}0H)KT4CBUS zxEiQ+rA|h;QZG?~Z@}6CYaJP>zK?Qch>Uh+jEofobYj3-SI(D)j%lGeR>$*sDQTO` z7zP3;RT53W(g}V;%A5Jp74xMt=1YJ0t>9*PK5S>OSEF0!*Pnh2@(2YBGuZ~rU;wiy zyPg6*jLX;y;d0F8NSm&n0NYGP)19!UrVH&t-+uTnPw(ZN2Na=(F7h*>BFM`DjG`HH z%-mdDK@`QSgU{fFI}xaGTQ;xQvZou#b1DBUf_fRoJX~oY=3_w?Vi*nUh8#j{NnG{b z^~Gn`s|uGdG|OACNS9|OM$(gdwjVdTY5D}Ryx8cfw1kqHD8*7rmXVfGvboQzu-qW+ zi;SMrgOoBzbz}jkLTeVO3M;ZmRaluts=`MMlIpck@?jO%_+bsaKnTAYR~z_A`O{=( z=Fa@eHa#JAF^UvEiZ#aB2CSu|M=%!a46uWGT*I)i4O|%3X*l9weI+qJ*3I2;uGWnO z$z9^M_mf|pLtfA$?_vU6`(FdpydQw;uj}5_pv>NA1vmCww6gJk-`IvM?!*EmYg@tp zgRG6XUJrmI)n;Qq)QN(`E&EZ}6ZBrFPS4qF2siK?@-!1z7R?b(ESyZQZZAv@=t;8r zY);})a;Vo_;jPe!bIm+r0E3dLe1DMGy9;3vsXW2mgzy5R+sT|!*j&5F# z?pDKUrlkLfo(Q^|{@i2qOH2(b#5RKs6e2@O%gvp*%dC8@q&&yU_8cn_d={VM{zJH% zXclYeu-?^8Jyv$I>hH?2lA!**)Q|95`Mj}mAA8;vqjTHY`vU(K?kDCB>@@Zt?!BF- z&=?;-<7`zZVixVf7s;fL6;nC2x#|u)VD1!)XP_leOt~vU;52+bp72mfocfNbP%%{Q|gx08;lirW&OMDIXxU%X)yE6HS8T6zjQQNB9)a#;{ zt+&k(CUtLf4!&x(>F1sNHCA<@pEL1w?4>7aKc@CWEbr<;r4*llcpf~0eY#~pju1RZ z)gzfRiFlhm&aU^xeAW9=ybD{aW4y)BtM}XW0lVIbIr|VjvXI_p4qV59-9cd?Xhf~%Lq&U)R7ecW>!)`RB%i3*;1-8!GjbYwI%nYTRYh!^0 zTW47fyK52e8FDsokc#;?HnjVQzcOXrk6vfzx6aZ>ijA3>w~|SJ0!J}0Q;@1{+k|&m zJB~48k24NW@~BRcnxlA>>3={3hs8EgsI{bybweY@Vg7D1^!oXhx&a*=3!segtcU7T zcDj%Jh@o6qefHo{&RR%N>l>6zEonm^xCLFvr00Eu=#K%(6bkk%-xwf6$)gvoZo zKgbCWk?EHXqNcfUsQ*a}Yqk@e z7(TPvm())uY9B-0Q-o6Dca|l`Ykc-)&tkbeVCbM3JWfe}lW~xemwaK^r(j9B7l2RT zN#!7OvaH_)BSr_~d}-8spON>#Z|#ZuIx#A8_kGBV2a7R!(P*|~5VcHhbaY3 z@`PY@;XK>63wUNnvX}L%eUfb#dc>q{CPybGbYdd;Ni$UvO3>7F(u{xbUYwuwEns3Z zm4+8i3K%xiHplkkB3)smZUlci>F11x(JnlO&F1;c4bts;^kT9O=Pgm2xw(AsDBZ4> zYYXd52s65|AzSn`^LxRkY*(MeL?t|k?|3i$j#tVbvSd(ZTSb)&&K#^r2Zv}L30Zu- MqM!3!$`-!&ACGTje*gdg diff --git a/CompiledServer/production/2006rebotted/redone/util/Stream.class b/CompiledServer/production/2006rebotted/redone/util/Stream.class index f15ce7fb6908d3bf34cded823e624e0d90ee8720..daefadd8009fd70079743cfcade54b58ebcbd535 100644 GIT binary patch delta 738 zcmZvaX-Je&6o%io81+*|`_!3n#%0FQF_$qlk{F9h3=#^gD5D=r;sm9+G-za`g)LNq zONU4+$S5$O$S|m&pfVz8BLbrWBML3DvISa%>d^0goqL|=a?gD)x2vqHY-lpVb`1uu z!(=<`+=E2!g@>nvM#KNj@IGTOif1Ix)^85Lg0qOlAab-8;GFc>SBT%f#=M|rNXF%2jXutmKROuS&itam%zTXnt4vL-+ke9)6)1)6$sOYx}MA4_pNDNG#vzUf-t=aU+r<68JCSsT+A$PUmM=W!Z$~iLT zE@y!hdP-R+ZJwYdfJhd}gePP!($!+*atY?K7y*_@O=`bonbJ~;@vb(?bhQ%kTqQN$ zR%5MBEJrfe%apgtT7f85!p#c!SS4H2c36T+Hp*1mbYPR-VzYjp8hBZ&>FYFOy}nO_ zW(=WP`x-W(kh1b;(lI3PxK28O9IXXBDWe&!=6;0pfZBs_YIU9wY}Lf#2^FJw%JlP~Cn>bRWp5jITl2ff}jDcvX7 z@fq2e;w|=i(-$FM#eWm>U5LRm_8RSn(4VsJ7yOt(F@AGna<}CV6awr-@Y5`m&}>xD z9NwH@@G?h>B}!~GY@{NaVo*%6V(0y{6OIwD8FMKP4$_cE@hGJPR8b52qINw!DOSsKdqZA^Big?@=)RxO?1$N;7iMfZ9=y5blOb84!K1@K2I&&R43`{C1ZoU zPoreqjcVxw)Qm>jg9Ee|r>O<~)QVvWvB%q{?8AK8&zHPA^|0jYgoV0f>Iuoo$f1+S vr&H`p@6>zbcD*v`43g-qOge`wsks#4k@S#u7*TXYYzK6y1|8#?1zCRqytk^E