Files
wes 2625b73800 SBoT 1.0 decompiled with jad 1.5.8e
Same SBoT.jar, decompiled with jad instead of CFR for comparison -- jad
is the same decompiler the community used on RSC client dumps back in
2004 (see DeobedMC201.rar). A few methods didn't fully resolve (jad is
much less capable than CFR on complex control flow); those are marked
inline where jad gave up.
2026-08-25 13:11:37 -04:00

1126 lines
20 KiB
Java

// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: packimports(3)
// Source File Name: Script.java
import java.io.PrintStream;
public abstract class Script
{
public Script(mudclient mudclient1)
{
a = mudclient1;
}
public void start(String s, String as[])
{
}
public String[] getCommands()
{
return new String[0];
}
public void init()
{
}
public void stop()
{
}
public void ServerMessage(String s)
{
}
public void Wait(int i)
{
try
{
Thread.sleep(i);
}
catch(InterruptedException interruptedexception) { }
}
public void DisplayMessage(String s, int i)
{
a.b(s, 3);
}
public void SetFightMode(int i)
{
WaitForLoad();
a.i(i);
}
public int GetFightMode()
{
WaitForLoad();
return a.Cd;
}
public void AtObject(int i, int j)
{
boolean flag;
flag = q.d;
WaitForLoad();
a;
if(flag) goto _L2; else goto _L1
_L1:
i;
j;
d();
-1;
JVM INSTR icmpeq 38;
goto _L3 _L4
_L3:
a.h(i, j);
if(!flag) goto _L5; else goto _L4
_L4:
a;
_L2:
z[0] + i + z[1] + j;
3;
b();
_L5:
}
public void AtObject(int ai[])
{
boolean flag;
flag = q.d;
WaitForLoad();
a;
if(flag) goto _L2; else goto _L1
_L1:
ai[0];
ai[1];
d();
-1;
JVM INSTR icmpeq 46;
goto _L3 _L4
_L3:
a.h(ai[0], ai[1]);
if(!flag) goto _L5; else goto _L4
_L4:
a;
_L2:
z[0] + ai[0] + z[1] + ai[1];
3;
b();
_L5:
}
public void AtObject2(int i, int j)
{
boolean flag;
flag = q.d;
WaitForLoad();
a;
if(flag) goto _L2; else goto _L1
_L1:
i;
j;
d();
-1;
JVM INSTR icmpeq 38;
goto _L3 _L4
_L3:
a.i(i, j);
if(!flag) goto _L5; else goto _L4
_L4:
a;
_L2:
z[0] + i + z[1] + j;
3;
b();
_L5:
}
public void AtObject2(int ai[])
{
boolean flag;
flag = q.d;
WaitForLoad();
a;
if(flag) goto _L2; else goto _L1
_L1:
ai[0];
ai[1];
d();
-1;
JVM INSTR icmpeq 46;
goto _L3 _L4
_L3:
a.i(ai[0], ai[1]);
if(!flag) goto _L5; else goto _L4
_L4:
a;
_L2:
z[0] + ai[0] + z[1] + ai[1];
3;
b();
_L5:
}
public void Walk(int i, int j)
{
boolean flag;
flag = q.d;
WaitForLoad();
_L5:
if(a.pb() == i)
break; /* Loop/switch isn't completed */
a;
if(flag) goto _L2; else goto _L1
_L1:
qb();
j;
JVM INSTR icmpeq 64;
goto _L3 _L4
_L3:
break MISSING_BLOCK_LABEL_36;
_L4:
break; /* Loop/switch isn't completed */
WaitForLoad();
a;
_L2:
i;
j;
j();
Thread.sleep(1000L);
goto _L5
InterruptedException interruptedexception;
interruptedexception;
if(!flag) goto _L5; else goto _L6
_L6:
}
public void Walk(int i, int j, int k)
{
boolean flag;
flag = q.d;
WaitForLoad();
_L5:
if(a.pb() == i)
break; /* Loop/switch isn't completed */
a.qb();
if(flag) goto _L2; else goto _L1
_L1:
j;
JVM INSTR icmpeq 64;
goto _L3 _L4
_L3:
break MISSING_BLOCK_LABEL_36;
_L4:
break; /* Loop/switch isn't completed */
WaitForLoad();
a.j(i, j);
k;
_L2:
(long);
Thread.sleep();
goto _L5
InterruptedException interruptedexception;
interruptedexception;
if(!flag) goto _L5; else goto _L6
_L6:
}
public void WalkNoWait(int i, int j)
{
WaitForLoad();
a.j(i, j);
}
public void WalkEmpty(int i, int j, int k, int l)
{
boolean flag;
int i1;
boolean flag1;
flag1 = q.d;
WaitForLoad();
flag = false;
i1 = i;
_L14:
i1;
k;
_L8:
JVM INSTR icmpgt 80;
goto _L1 _L2
_L1:
break MISSING_BLOCK_LABEL_21;
_L2:
break; /* Loop/switch isn't completed */
j;
if(flag1) goto _L4; else goto _L3
_L3:
int j1;
j1;
_L12:
if(j1 > l)
break; /* Loop/switch isn't completed */
a.g(i1, j1);
if(flag1) goto _L6; else goto _L5
_L5:
true;
if(flag1) goto _L8; else goto _L7
_L7:
JVM INSTR icmpne 64;
goto _L9 _L10
_L9:
true;
_L6:
flag;
_L10:
j1++;
if(!flag1) goto _L12; else goto _L11
_L11:
i1++;
if(!flag1) goto _L14; else goto _L13
_L13:
flag;
_L4:
if(flag1) goto _L16; else goto _L15
_L15:
1;
JVM INSTR icmpne 151;
goto _L17 _L18
_L17:
false;
_L16:
i1;
_L20:
if(i1 != 0)
break; /* Loop/switch isn't completed */
WaitForLoad();
int k1 = Rand(i, k);
int l1 = Rand(j, l);
if(!a.g(k1, l1))
continue; /* Loop/switch isn't completed */
Walk(k1, l1);
i1 = 1;
if(!flag1)
continue; /* Loop/switch isn't completed */
_L18:
System.out.println(z[2]);
Walk(Rand(i, k), Rand(j, l));
break; /* Loop/switch isn't completed */
if(true) goto _L20; else goto _L19
_L19:
}
public void WalkEmptyNoWait(int i, int j, int k, int l)
{
boolean flag;
int i1;
boolean flag1;
flag1 = q.d;
WaitForLoad();
flag = false;
i1 = i;
_L14:
i1;
k;
_L8:
JVM INSTR icmpgt 80;
goto _L1 _L2
_L1:
break MISSING_BLOCK_LABEL_21;
_L2:
break; /* Loop/switch isn't completed */
j;
if(flag1) goto _L4; else goto _L3
_L3:
int j1;
j1;
_L12:
if(j1 > l)
break; /* Loop/switch isn't completed */
a.g(i1, j1);
if(flag1) goto _L6; else goto _L5
_L5:
true;
if(flag1) goto _L8; else goto _L7
_L7:
JVM INSTR icmpne 64;
goto _L9 _L10
_L9:
true;
_L6:
flag;
_L10:
j1++;
if(!flag1) goto _L12; else goto _L11
_L11:
i1++;
if(!flag1) goto _L14; else goto _L13
_L13:
flag;
_L4:
if(flag1) goto _L16; else goto _L15
_L15:
1;
JVM INSTR icmpne 154;
goto _L17 _L18
_L17:
false;
_L16:
i1;
_L20:
if(i1 != 0)
break; /* Loop/switch isn't completed */
WaitForLoad();
int k1 = Rand(i, k);
int l1 = Rand(j, l);
if(!a.g(k1, l1))
continue; /* Loop/switch isn't completed */
a.j(k1, l1);
i1 = 1;
if(!flag1)
continue; /* Loop/switch isn't completed */
_L18:
System.out.println(z[2]);
a.j(Rand(i, k), Rand(j, l));
break; /* Loop/switch isn't completed */
if(true) goto _L20; else goto _L19
_L19:
}
public int GetX()
{
WaitForLoad();
return a.pb();
}
public int GetY()
{
WaitForLoad();
return a.qb();
}
public int Rand(int i, int j)
{
WaitForLoad();
return a.k(i, j);
}
public void Say(String s)
{
WaitForLoad();
a.f(s);
}
public boolean EmptyTile(int i, int j)
{
WaitForLoad();
return a.g(i, j);
}
public void MagicPlayer(int i, int j)
{
WaitForLoad();
a.l(i, j);
}
public void UseOnPlayer(int i, int j)
{
WaitForLoad();
a.m(i, j);
}
public void AttackPlayer(int i)
{
WaitForLoad();
a.l(i);
}
public void DuelPlayer(int i)
{
WaitForLoad();
a.m(i);
}
public void TradePlayer(int i)
{
WaitForLoad();
a.n(i);
}
public void FollowPlayer(int i)
{
WaitForLoad();
a.o(i);
}
public void MagicItem(int i, int j, int k, int l)
{
WaitForLoad();
a.d(i, j, k, l);
}
public void UseOnItem(int i, int j, int k, int l)
{
WaitForLoad();
a.e(i, j, k, l);
}
public void TakeItem(int i, int j, int k)
{
WaitForLoad();
a.e(i, j, k);
}
public void TakeItem(int ai[], int i)
{
WaitForLoad();
a.e(ai[0], ai[1], i);
}
public void MagicNPC(int i, int j)
{
WaitForLoad();
a.n(i, j);
}
public void UseOnNPC(int i, int j)
{
WaitForLoad();
a.o(i, j);
}
public void TalkToNPC(int i)
{
WaitForLoad();
a.q(i);
}
public void AttackNPC(int i)
{
WaitForLoad();
a.r(i);
}
public void ThieveNPC(int i)
{
WaitForLoad();
a.s(i);
}
public void MagicDoor(int i, int j, int k, int l)
{
WaitForLoad();
a.f(i, j, k, l);
}
public void UseOnDoor(int i, int j, int k, int l)
{
WaitForLoad();
a.g(i, j, k, l);
}
public void OpenDoor(int i, int j, int k)
{
WaitForLoad();
a.f(i, j, k);
}
public void CloseDoor(int i, int j, int k)
{
WaitForLoad();
a.g(i, j, k);
}
public void MagicObject(int i, int j, int k)
{
WaitForLoad();
a.h(i, j, k);
}
public void UseOnObject(int i, int j, int k)
{
WaitForLoad();
a.i(i, j, k);
}
public void Magic(int i)
{
WaitForLoad();
a.t(i);
}
public boolean QuestMenu()
{
WaitForLoad();
return a.tf;
}
public void Answer(int i)
{
WaitForLoad();
a.u(i);
}
public void MagicInventory(int i, int j)
{
WaitForLoad();
a.q(i, j);
}
public void UseWithInventory(int i, int j)
{
WaitForLoad();
a.r(i, j);
}
public void Remove(int i)
{
WaitForLoad();
a.v(i);
}
public void Wield(int i)
{
WaitForLoad();
a.w(i);
}
public void Use(int i)
{
WaitForLoad();
a.x(i);
}
public void Drop(int i)
{
WaitForLoad();
a.y(i);
}
public void Deposit(int i, int j)
{
WaitForLoad();
a.s(i, j);
}
public void Withdraw(int i, int j)
{
WaitForLoad();
a.t(i, j);
}
public int InvCount(int i)
{
WaitForLoad();
return a.f(i);
}
public int InvCount()
{
WaitForLoad();
return a.f(0);
}
public void Logout()
{
WaitForLoad();
a.V();
}
public int[] GetNearestObject(int i)
{
WaitForLoad();
int ai[] = {
i
};
return (new int[] {
a.a(ai, true, 0, 0, 9999, 9999), a.a(ai, false, 0, 0, 9999, 9999)
});
}
public int[] GetNearestObject(int ai[])
{
WaitForLoad();
return (new int[] {
a.a(ai, true, 0, 0, 9999, 9999), a.a(ai, false, 0, 0, 9999, 9999)
});
}
public int[] GetNearestObject(int i, int j, int k, int l, int i1)
{
WaitForLoad();
int ai[] = {
i
};
return (new int[] {
a.a(ai, true, j, k, l, i1), a.a(ai, false, j, k, l, i1)
});
}
public int[] GetNearestObject(int ai[], int i, int j, int k, int l)
{
WaitForLoad();
return (new int[] {
a.a(ai, true, i, j, k, l), a.a(ai, false, i, j, k, l)
});
}
public int GetNearestNPC(int i)
{
WaitForLoad();
int ai[] = {
i
};
return a.a(ai, 0, 0, 9999, 9999);
}
public int GetNearestNPC(int ai[])
{
WaitForLoad();
return a.a(ai, 0, 0, 9999, 9999);
}
public int GetNearestNPC(int i, int j, int k, int l, int i1)
{
WaitForLoad();
int ai[] = {
i
};
return a.a(ai, j, i1, l, i1);
}
public int GetNearestNPC(int ai[], int i, int j, int k, int l)
{
WaitForLoad();
return a.a(ai, k, j, k, l);
}
public int[] GetNearestItem(int i)
{
WaitForLoad();
return (new int[] {
a.a(i, true), a.a(i, false)
});
}
public void CloseShop()
{
WaitForLoad();
a.tb();
}
public void CloseBank()
{
WaitForLoad();
a.sb();
}
public void Buy(int i)
{
WaitForLoad();
a.A(i);
}
public void Sell(int i)
{
WaitForLoad();
a.F(i);
}
public boolean Bank()
{
WaitForLoad();
return a.af;
}
public boolean Shop()
{
WaitForLoad();
return a.Zg;
}
public void Sex0rPR4Y()
{
a.Hb = true;
}
public int DoorAt(int i, int j, int k)
{
WaitForLoad();
return a.j(i, j, k);
}
public int ObjectAt(int i, int j)
{
WaitForLoad();
return a.u(i, j);
}
public int PlayerByName(String s)
{
WaitForLoad();
return a.g(s);
}
public int GetCurrentStat(int i)
{
WaitForLoad();
return a.M(i);
}
public int GetStat(int i)
{
WaitForLoad();
return a.N(i);
}
public int PlayerHP(int i)
{
WaitForLoad();
return a.H(i);
}
public boolean InCombat()
{
WaitForLoad();
return a.ub();
}
public boolean PlayerInCombat(int i)
{
WaitForLoad();
return a.G(i);
}
public int PlayerX(int i)
{
WaitForLoad();
return a.I(i);
}
public int PlayerY(int i)
{
WaitForLoad();
return a.J(i);
}
public int PlayerDestX(int i)
{
WaitForLoad();
return a.K(i);
}
public int PlayerDestY(int i)
{
WaitForLoad();
return a.L(i);
}
public String LastServerMessage()
{
WaitForLoad();
return a.Lb;
}
public void ResetLastServerMessage()
{
WaitForLoad();
a.Lb = null;
}
public void WaitForServerMessage(int i)
{
a.Jb = false;
a.Kb = true;
long l = System.currentTimeMillis();
do
{
if(a.Jb || System.currentTimeMillis() - l > (long)i)
break;
Wait(10);
} while(!q.d);
}
public boolean InLastServerMessage(String s)
{
a.Lb.indexOf(s);
if(q.d) goto _L2; else goto _L1
_L1:
JVM INSTR iflt 22;
goto _L3 _L4
_L3:
break MISSING_BLOCK_LABEL_20;
_L4:
break MISSING_BLOCK_LABEL_22;
return true;
false;
_L2:
return;
}
public int FindInv(int i)
{
WaitForLoad();
return a.j(i);
}
public boolean Running()
{
WaitForLoad();
return a.Bb;
}
public void CheckFighters(boolean flag)
{
WaitForLoad();
a.Cb = flag;
}
public void SleepWord()
{
WaitForLoad();
a.rb();
}
public boolean Sleeping()
{
WaitForLoad();
return a.dg;
}
public int Fatigue()
{
WaitForLoad();
return (a.Ih * 100) / 750;
}
public boolean Loading()
{
boolean flag = q.d;
a.Gi;
if(flag) goto _L2; else goto _L1
_L1:
if(a.Gi != 0)
{
a.Eg.q = false;
return true;
}
a.bh;
_L2:
if(flag) goto _L4; else goto _L3
_L3:
1;
JVM INSTR icmpeq 48;
goto _L5 _L6
_L5:
break MISSING_BLOCK_LABEL_46;
_L6:
break MISSING_BLOCK_LABEL_48;
return true;
a.vi;
_L4:
int i;
i;
int j;
j = a.wi;
a.Dd = false;
i += a.id;
j += a.jd;
a.ld;
if(flag) goto _L8; else goto _L7
_L7:
a.Wg;
JVM INSTR icmpne 186;
goto _L9 _L10
_L9:
i;
if(flag) goto _L8; else goto _L11
_L11:
a.yd;
JVM INSTR icmple 186;
goto _L12 _L10
_L12:
i;
if(flag) goto _L8; else goto _L13
_L13:
a.Ad;
JVM INSTR icmpge 186;
goto _L14 _L10
_L14:
j;
if(flag) goto _L8; else goto _L15
_L15:
a.zd;
JVM INSTR icmple 186;
goto _L16 _L10
_L16:
j;
if(flag) goto _L8; else goto _L17
_L17:
a.Bd;
JVM INSTR icmpge 186;
goto _L18 _L10
_L18:
a.Eg.q = true;
return true;
_L10:
false;
_L8:
return;
}
public void WaitForLoad()
{
do
{
if(!Loading())
break;
Wait(10);
} while(!q.d);
}
public void PrayerOn(int i)
{
WaitForLoad();
a.C(i);
}
public void PrayerOff(int i)
{
WaitForLoad();
a.D(i);
}
public boolean Prayer(int i)
{
WaitForLoad();
return a.E(i);
}
public int ShopCount(int i)
{
WaitForLoad();
return a.B(i);
}
public void SetWorld(int i)
{
z.a(i);
}
public int LastPlayerAttacked()
{
return a.Pb;
}
public void ResetLastPlayerAttacked()
{
a.Pb = -1;
}
public void Login(String s, String s1)
{
a.a(s, s1, false);
}
public boolean LoggedIn()
{
a.bh;
if(q.d) goto _L2; else goto _L1
_L1:
1;
JVM INSTR icmpne 19;
goto _L3 _L4
_L3:
break MISSING_BLOCK_LABEL_17;
_L4:
break MISSING_BLOCK_LABEL_19;
return true;
false;
_L2:
return;
}
protected mudclient a;
private static String z[];
static
{
local;
toCharArray();
JVM INSTR dup ;
JVM INSTR arraylength .length;
JVM INSTR swap ;
i = 0;
JVM INSTR swap ;
JVM INSTR dup_x1 ;
1;
JVM INSTR icmpgt 124;
goto _L1 _L2
_L1:
JVM INSTR dup ;
i;
_L10:
JVM INSTR dup2 ;
JVM INSTR caload ;
i % 5;
JVM INSTR tableswitch 0 3: default 107
// 0 88
// 1 93
// 2 97
// 3 102;
goto _L3 _L4 _L5 _L6 _L7
_L4:
byte0 = 0x79;
goto _L8
_L5:
byte0 = 4;
goto _L8
_L6:
byte0 = 16;
goto _L8
_L7:
byte0 = 110;
goto _L8
_L3:
byte0 = 3;
_L8:
byte0;
JVM INSTR ixor ;
(char);
JVM INSTR castore ;
i++;
JVM INSTR swap ;
JVM INSTR dup_x1 ;
JVM INSTR ifne 124;
goto _L9 _L2
_L9:
JVM INSTR dup2 ;
JVM INSTR swap ;
goto _L10
_L2:
JVM INSTR swap ;
JVM INSTR dup_x1 ;
i;
JVM INSTR icmpgt 49;
goto _L11 _L1
_L11:
JVM INSTR new #3 <Class String>;
JVM INSTR dup_x1 ;
JVM INSTR swap ;
String();
intern();
JVM INSTR swap ;
JVM INSTR pop ;
JVM INSTR ret 0;
String as[] = new String[3];
as[0] = "9vu\nC<VB!QC$P\031k\020D^\001#\026fz\013`\r$v\001v\027`0\017wC$P\027f\025D";
as[1] = "U$";
as[2] = ".eb\000j\027c*NM\026$U\003s\r}0:j\025acNE\026q~\n";
int i;
byte byte0;
z = as;
}
}