From c712be33d856670de800bfdc181cebc2dbb86b0f Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Tue, 25 Feb 2020 19:21:12 +1300 Subject: [PATCH 1/3] Fixup lastLogin in database --- .../player/info/portal/PlayerSQLManager.class | Bin 9065 -> 9079 bytes .../org/keldagrim/world/PlayerSession.class | Bin 7944 -> 7970 bytes .../org/keldagrim/world/PlayerSession.java | 5 +++-- .../player/info/portal/PlayerSQLManager.java | 4 ++-- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CompiledServer/production/RS-2009/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.class b/CompiledServer/production/RS-2009/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.class index 542f7c3f602e57540e918f156306ac75c4111e96..de745756fbe00613065e309f42fdce76955ec152 100644 GIT binary patch delta 2566 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 delta 539 zcmXYuJxr5P6o%h}T%p#W1p9sc;VV@W`T@qOF)Ef8F{HvmG&T?xC_e*KB3c@M5;YnZ zbTXU;H$yamNel@RCb|IiZ&2gF;Aq0)0>On44o7m6d(Zp4?>WOgQ_1n<>}4-q<+#_W zh_rOHMn?L^@?E33k-@o~H}3IRH~<4+fai~0nee$s(&$1&;E=!+D*2+XF58Y}T*nI1 z_$=-!x=}v5pE!hHTw}G-Z$2CF@nb7Wf3#YZ>aSM+ta{qw6LvH0 zaKGFKdCG303iUQ^*H|!Q^KpNQ!vAOZT~jM8D$M4B{~Vp>O@9+z5I13x;xw!CG7zT} zF9)tshxVNeMyXS)OwcvGlFMlBZ7@bd%GV`vhbuz~^FZ8(>SjYRdaCaGkZZ<;zfis* z{FU-c)vlQo{#yB?>KMIIUJyPld`7u(&X`$IA5`6NVzj`|oP=2tR#3JkiB(ZWRkh(p a`pTK`JLkJD=dgS_Fu1=6!bedhSl9(O6o7L8 diff --git a/Management-Server/src/org/keldagrim/world/PlayerSession.java b/Management-Server/src/org/keldagrim/world/PlayerSession.java index 3ed27da74..8b6db6ca8 100644 --- a/Management-Server/src/org/keldagrim/world/PlayerSession.java +++ b/Management-Server/src/org/keldagrim/world/PlayerSession.java @@ -191,10 +191,11 @@ public final class PlayerSession { } PreparedStatement statement; try { - statement = connection.prepareStatement("UPDATE members SET online = ? AND lastWorld = ? WHERE username = ?"); + statement = connection.prepareStatement("UPDATE members SET online = ?, lastWorld = ?, lastLogin = ? WHERE username = ?"); statement.setBoolean(1, true); statement.setInt(2, worldId); - statement.setString(3, username); + statement.setLong(3, System.currentTimeMillis()); + statement.setString(4, username); statement.execute(); SQLManager.close(connection); } catch (SQLException e) { diff --git a/Server/src/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.java b/Server/src/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.java index f81479a3f..9f143eab8 100644 --- a/Server/src/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.java +++ b/Server/src/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.java @@ -86,7 +86,7 @@ public final class PlayerSQLManager { details.getShop().parsePerks((String) table.getColumn("perks").getValue()); details.setRights(Rights.forId((int) table.getColumn("rights").getValue())); details.setDonatorType(DonatorType.forId((int) table.getColumn("donatorType").getValue())); - details.setLastLogin((long) table.getColumn("lastLogin").getValue()); + details.setLastLogin(System.currentTimeMillis()); return true; } @@ -106,7 +106,7 @@ public final class PlayerSQLManager { details.getCommunication().save(table); } table.getColumn("bank").updateValue(player.getBank().format()); - table.getColumn("lastLogin").updateValue(System.currentTimeMillis()); + table.getColumn("lastLogin").updateValue(player.getDetails().getLastLogin()); table.getColumn("ge").updateValue(player.getGrandExchange().format()); table.getColumn("inventory").updateValue(player.getInventory().format()); table.getColumn("equipment").updateValue(player.getEquipment().format()); From 7b0ae331511bc2870df03d99a501e99dc0187887 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Wed, 26 Feb 2020 12:25:00 +1300 Subject: [PATCH 2/3] Fixup total play time in SQL databse --- .../player/info/portal/PlayerSQLManager.class | Bin 9079 -> 8973 bytes .../player/info/portal/PlayerSQLManager.java | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CompiledServer/production/RS-2009/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.class b/CompiledServer/production/RS-2009/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.class index de745756fbe00613065e309f42fdce76955ec152..d31dbdf96b62a657f1872c03ed5336a5f4df23a2 100644 GIT binary patch delta 2446 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 LS-cL!Qy%;`f6Ei7 diff --git a/Server/src/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.java b/Server/src/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.java index 9f143eab8..d96bcb230 100644 --- a/Server/src/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.java +++ b/Server/src/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.java @@ -113,7 +113,8 @@ public final class PlayerSQLManager { table.getColumn("netWorth").updateValue(player.getMonitor().getNetworth()); table.getColumn("lastGameIp").updateValue(player.getDetails().getIpAddress()); table.getColumn("ironManMode").updateValue(player.getIronmanManager().getMode().name()); - table.getColumn("timePlayed").updateValue((long) table.getColumn("timePlayed").getValue() + (System.currentTimeMillis() - player.getAttribute("startTime", System.currentTimeMillis()))); table.getColumn("ip").updateValue(getAddressLog((String) table.getColumn("ip").getValue(), details.getInfo().getIp())); + table.getColumn("timePlayed").updateValue((long) table.getColumn("timePlayed").getValue() + (System.currentTimeMillis() - player.getDetails().getLastLogin())); + table.getColumn("ip").updateValue(getAddressLog((String) table.getColumn("ip").getValue(), details.getInfo().getIp())); table.getColumn("mac").updateValue(getAddressLog((String) table.getColumn("mac").getValue(), details.getInfo().getMac())); table.getColumn("serial").updateValue(getAddressLog((String) table.getColumn("serial").getValue(), details.getInfo().getSerial())); table.getColumn("computerName").updateValue(getAddressLog((String) table.getColumn("computerName").getValue(), details.getInfo().getCompName())); From 0403b685a98f194ba0f43d65a3b7a679bba13da4 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Wed, 26 Feb 2020 12:34:36 +1300 Subject: [PATCH 3/3] Add timePlayed to playerDetails --- .../entity/player/info/PlayerDetails.class | Bin 7232 -> 7441 bytes .../player/info/portal/PlayerSQLManager.class | Bin 8973 -> 9043 bytes .../entity/player/info/PlayerDetails.java | 25 ++++++++++++++++-- .../player/info/portal/PlayerSQLManager.java | 3 ++- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/CompiledServer/production/RS-2009/org/crandor/game/node/entity/player/info/PlayerDetails.class b/CompiledServer/production/RS-2009/org/crandor/game/node/entity/player/info/PlayerDetails.class index 83cf566203ac621393a4ceb1c35a64170c77a232..ba559d6350e0f27e794026ddf7dfcabb2dd04741 100644 GIT binary patch literal 7441 zcmbtY3wT^b75*pL>~1zUZL>{VXek8!3h6dcpdx}I_{2B95ET{Q;1hxW%-rtYy}2nVG~YLKX6~GS z{_~hKvwh@+d+rCYL`7p*hn*4J9zzX2SC2#R`3QE!P=}o|xFdo)V~CnBUx?tY7#hr% z(YhDif3j{&n%(u-gS$n#N1DCT+#ADvxL>3%#@KvGw)wIQ9}wv)5j-fzl`EnGW}!}zn1=~D1H;gZ$=cGez97Zg^fa)p6pU%}4y=L*RIdnldE=K9mgbhhM_Mw0oAJ(4aY zo$R@}WIk6Y*_mXwp6Wd<vZ=E}$Wu2uTuc|T^oBw_wcWnJPG;=vK(e<~ zaIypPJ#QC_7v>863bn%yTh*yhpRtRjRBph@a=f07E;&PK?Jh2e4h@&m8#$p6*=A>r z6wcd)Vp`Oow{nd>zlxh}lS$vUMK3P-k%_wx9e`I{NlHB3*1sVOI$ z-Y`70EnV1XZ_DU7<@)T*X1n0X*qscO1|53zgen&M&2p389qE$oWQwFXBY>IksMDci z_*>^Qc8$FyyYIX%JHKz=qJ055#Rk$P7fK-&g!IaZMfwd#mLR5{Q|wL`hF05jdDJPg z&q`Xw%ybu1k3n&YB5<0k-FVZHLeT_&vz-~{I$FeJo>DB&o19wNI(e=ENu^^~(%Cts zvZaAOsdfIV!lrG6lw+^3;uT_SO&<$MOT`r0Z+-Os|gf?@hfFc@}MN&M& z)YU?$wNqp9Lj{ZZ-0hZ0iA|T?x2nItz#76$IpzhD-=HhC#ZhOz{82pKn`Sx4nEWvJ z(h{H5`z;2Q3t^hssdCFHv!x*$udzO^{6%5qt9`Wy&R;E@j8hbj9|tzMC|c+QJ$2$Z^_K}= zrQBF}9a0KMPa45ZNDE!qU|}ORS=fwC5&X@<-|+?uXGn7@x-FcB?g;*2;aQAW=s~X- z+;8DLWGrmKRts72<8hPTxhfO_wmpL9Ec_GyvT(Xk__u}s;3f2lMoQ-o7X8Fs+>R~6-FAvq(RRmhjs61kqTdGFY zN)u9OZfmJ}U&^6h&hy{aB5z6~$-9tJLtD$RTcXTp-*M0z}yvkqga(I)I4)(rlW=hZ6lQ*SS^_<-Bu3B$`-#-5GtgJtTH|Dsz)%$t<{y%S> z_%jaYuh4b;@j4B0DU_7rQt@=px}|&8A>Fg)u&fZsEDXA5$qilz+`wsT6pe{yOc}+r1gD!4cOpKD>4^oSXil_^Vn$-Y7-o)Q)*X81bJ;F}#deVU z&7>FR@UI0&Vjkz0@^1zIdaxD_eX^ZZ_dJ%p3BL;-MOC&vw_I zleoHu-y(?xYBvt5Y%l-C02C2MNyE-G%gV437gkAGcfooICL0};xC@~%9DE(^4{aUA z?45~P-SJy3#JDM%j2H&!ahl0>{NN?QZ^;kkFoUCk`X?mOVH;J%-mb3}k#^8FMv#AYN#s7mj#n0jt2g3e7j*@*RnApdPW}=8)AlIysw#7D&GpbE@t!U6|E8T5-e#R>*xVR$LWm#SFg{M+FkOx?Bmo zR?PNWacrRS2g*Ay(o9&$d8iu4FyFuVa*uwre6IMj!u5hrKjGJ38>s)mvVM=d|19p` z`Y;*{jRm`8IEFTX^W31Si?`MWOjX?;*jb(u#QS(E5&0u0nBP%;ey4kYD)xOC*Sh*% z=QjG4&+#Z%iq3VoK0rC*R~`&h{s?XeP+sU)&Ic-g6gRrcRYz>0|A<}0N^hMUSn#n*akjTyWxU0N^;gk1cIB^)?f_@^GlgJel5Ruoc5cxzP zktRQpD+7t#5=^AYPvlw>xo!d?@|+eTpA5#D=f}EYvh>7#~GPrXL0;^BR8{)pJ3z}A}=-atTCJzZ#VL^F)WKOH}X7@R~UKr y7*2|>H1c%8TxDcFVHU?%8+oC~YmChLvN+yBc?@g)=j%R?@Aj0--e+|3fA%F3vT+mu literal 7232 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 delta 2811 zcmb7FX<${w75=`w_cAy4jU+rFA%KB^5KZzBG^HQ~V}M|QM3x|gMP*eG5|*%-B3Hr^ z1%t~Im4Hc*O&~%ra!EiDs)lM;YZvWa+giJ;U2UW7nR{O__Fw;;Ioq5$=bJNU-YTpu zbl&*%?0EorJY{1ojwu{hXtMB}!U-DzoV3tv;gp5vEwos8LE*Fo*I3S2XtmI0;jD#o z3NKoC$-;RHFI%`^;i84FD7<3fRSU0KXt!|5!dET4Zs83JU$gLa8wvPEl7mWoGfBv| z6uxaE3vb%^4&JiyU3|~R_wfVc_O?0i9UHyzLu2@nAwRYe!cT1c6hAZK&kgy7jd$@& zLw;rB*Lct9eq-Z({MK;4v+;ZU!Ek>xXZ*>=pYefX4*Af=NBE14zv6G^q`w>SAI9;Y z=FE?c_%9p(Hr9{OVdE2@`_#sNJdUtQCddv3#DzhdAtu^Xw2Usvrp>U8N@~MhVMsSa zl5ILE?5-HGQHEm{uauQNEcUdanQAf3$i2c$XYVlkuy2@GF~epG`x(+diJ2T=$Uuu% zTO4G}gKcK<8k^TL+gNfe=9*wpLxxzq&a6WX8K!u>B5!C>2}csr@)WA&(*azXv*p9?WfhvxOy`4Bw){(J6>f@9u-l(w- z>oqpuUg8FE%!p04(wr)MS#gx+mpEE+jOISF?&z z$41TjxJgl>-fuiNo88siqPSIa8@DUgXgp+;5AZ?79hw7nii8FY+h;lrQd0mXxwhj>`=h~~4{sdp#DIJjRV!{Xd5V%I z-j6l(d9PcrN!S2P(CeXNO?`(sCXn`B;(@k!KD<(tTd~cLgVFIg$>)$&mi+<-pTRY) z7=2276TEn4!~pZr4GX;F{Fuq{n8bF}_@Ts2d5PDwVoaTb?k1XxY*_}mxXCP$o-T58 zT;#jB*+qe;8sMwOx)|4r@txXUzP8ZCgickeue!xWQKu@+S50&=sZ$m4Rg)bT#a-eJ z^wn}oNvCHIUv;aCDK4gVYBNRasWV-}D)l{i*I(A_u9`>rq^Rp9et!$P&#a1iT1TjNA9+4`v?0XcCNgX4Qi5MOio2fN| zKnHAv-JhU9;R%H&LwHK`LD0b-L7@(NeGoWOHYbW{Q!5tNK|PNp&2cz{zpJ?mAb0;? zID`!XCR#MIv<=Gyu23uP$w_xYE|%{>+`OW>(@j$Fd!Z2Bg|CyO_6kZ*%Ui6MdKzR< z>_;ygz$lr{V{u4&<1k8b1ha5dUh6UGmgCYPP0}kTWcr-+5FF!|b{WA<*ynf>ST%{zhIHm$=f|=|7Y~a;`vl({v zk@Aw9cH~PJRn%jo-&oG*xYSrvE5ZO0IKZW19& zf`xO0UtNbjU0g-;nY#&CkBqK?8<89hbROiaDT!V}qNEmWzKprdQQ_O<2F?oJ=cJcj z#8A8>`SENs0#cs4qt(UM5uY34r`*n7{H$h~-2d~tQXM{_ThQc_8XuP1_dbZvZ65T$ So8S4|=4Ah)A)fWlIQn0n_)nk! diff --git a/Server/src/org/crandor/game/node/entity/player/info/PlayerDetails.java b/Server/src/org/crandor/game/node/entity/player/info/PlayerDetails.java index 2041b3cf6..b01eb1cc9 100644 --- a/Server/src/org/crandor/game/node/entity/player/info/PlayerDetails.java +++ b/Server/src/org/crandor/game/node/entity/player/info/PlayerDetails.java @@ -50,11 +50,16 @@ public class PlayerDetails { * The unique id of the account. */ private int uid; - + /** * The account's last game login. */ private long lastLogin = -1; + + /** + * The account's last game login. + */ + private long timePlayed = 0; /** * The time the player is muted for. @@ -370,7 +375,7 @@ public class PlayerDetails { public void setIcon(Icon icon) { this.icon = icon; } - + /** * Gets the lastLogin. * @return the lastLogin. @@ -386,6 +391,22 @@ public class PlayerDetails { public void setLastLogin(long lastLogin) { this.lastLogin = lastLogin; } + + /** + * Gets the timePlayed. + * @return the timePlayed. + */ + public long getTimePlayed() { + return timePlayed; + } + + /** + * Sets the timePlayed. + * @param timePlayed the timePlayed to set + */ + public void setTimePlayed(long timePlayed) { + this.timePlayed = timePlayed; + } /** * Sets the mute time. diff --git a/Server/src/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.java b/Server/src/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.java index d96bcb230..ce4b24abb 100644 --- a/Server/src/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.java +++ b/Server/src/org/crandor/game/node/entity/player/info/portal/PlayerSQLManager.java @@ -87,6 +87,7 @@ public final class PlayerSQLManager { details.setRights(Rights.forId((int) table.getColumn("rights").getValue())); details.setDonatorType(DonatorType.forId((int) table.getColumn("donatorType").getValue())); details.setLastLogin(System.currentTimeMillis()); + details.setTimePlayed((long) table.getColumn("timePlayed").getValue()); return true; } @@ -113,7 +114,7 @@ public final class PlayerSQLManager { table.getColumn("netWorth").updateValue(player.getMonitor().getNetworth()); table.getColumn("lastGameIp").updateValue(player.getDetails().getIpAddress()); table.getColumn("ironManMode").updateValue(player.getIronmanManager().getMode().name()); - table.getColumn("timePlayed").updateValue((long) table.getColumn("timePlayed").getValue() + (System.currentTimeMillis() - player.getDetails().getLastLogin())); + table.getColumn("timePlayed").updateValue(player.getDetails().getTimePlayed() + (System.currentTimeMillis() - player.getDetails().getLastLogin())); table.getColumn("ip").updateValue(getAddressLog((String) table.getColumn("ip").getValue(), details.getInfo().getIp())); table.getColumn("mac").updateValue(getAddressLog((String) table.getColumn("mac").getValue(), details.getInfo().getMac())); table.getColumn("serial").updateValue(getAddressLog((String) table.getColumn("serial").getValue(), details.getInfo().getSerial()));