This commit is contained in:
Wirlaburla 2024-01-08 02:05:31 -06:00
commit 3d2747ef3b
25 changed files with 55456 additions and 0 deletions

121
AntiTalkAction/mod.patch Normal file
View File

@ -0,0 +1,121 @@
diff -ruN a/1890/NET/worlds/scape/TalkAction.java b/1890/NET/worlds/scape/TalkAction.java
--- a/1890/NET/worlds/scape/TalkAction.java 2023-08-21 23:27:15.000000000 -0500
+++ b/1890/NET/worlds/scape/TalkAction.java 2023-08-21 23:27:16.000000000 -0500
@@ -1,61 +1,64 @@
package NET.worlds.scape;
+import NET.worlds.console.ChatDialog;
+import NET.worlds.console.ChatPart;
+
import java.io.IOException;
public class TalkAction extends Action {
- String txt = null;
- private static Object classCookie = new Object();
+ String txt = null;
+ private static Object classCookie = new Object();
- public TalkAction() {
- }
+ public TalkAction() {
+ }
- public TalkAction(String var1) {
- this.txt = var1;
- }
-
- public Persister trigger(Event var1, Persister var2) {
- Pilot.getActive();
- Pilot.sendText(this.txt);
- return null;
- }
-
- public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
- Object var5 = null;
- switch(var1 - var2) {
- case 0:
- if (var3 == 0) {
- var5 = StringPropertyEditor.make(new Property(this, var1, "Message"));
- } else if (var3 == 1) {
- var5 = this.txt;
- } else if (var3 == 2) {
- this.txt = (String)var4;
- }
- break;
- default:
- var5 = super.properties(var1, var2 + 1, var3, var4);
- }
-
- return var5;
- }
-
- public void saveState(Saver var1) throws IOException {
- var1.saveVersion(0, classCookie);
- super.saveState(var1);
- var1.saveString(this.txt);
- }
-
- public void restoreState(Restorer var1) throws IOException, TooNewException {
- switch(var1.restoreVersion(classCookie)) {
- case 0:
- super.restoreState(var1);
- this.txt = var1.restoreString();
- return;
- default:
- throw new TooNewException();
- }
- }
-
- public String toString() {
- return super.toString() + "[" + this.txt + "]";
- }
+ public TalkAction(String var1) {
+ this.txt = var1;
+ }
+
+ public Persister trigger(Event var1, Persister var2) {
+ //Pilot.sendText(this.txt);
+ Pilot.getActive().console.printLine("<< " + this.txt);
+ return null;
+ }
+
+ public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
+ Object var5 = null;
+ switch(var1 - var2) {
+ case 0:
+ if (var3 == 0) {
+ var5 = StringPropertyEditor.make(new Property(this, var1, "Message"));
+ } else if (var3 == 1) {
+ var5 = this.txt;
+ } else if (var3 == 2) {
+ this.txt = (String)var4;
+ }
+ break;
+ default:
+ var5 = super.properties(var1, var2 + 1, var3, var4);
+ }
+
+ return var5;
+ }
+
+ public void saveState(Saver var1) throws IOException {
+ var1.saveVersion(0, classCookie);
+ super.saveState(var1);
+ var1.saveString(this.txt);
+ }
+
+ public void restoreState(Restorer var1) throws IOException, TooNewException {
+ switch(var1.restoreVersion(classCookie)) {
+ case 0:
+ super.restoreState(var1);
+ this.txt = var1.restoreString();
+ return;
+ default:
+ throw new TooNewException();
+ }
+ }
+
+ public String toString() {
+ return super.toString() + "[" + this.txt + "]";
+ }
}

View File

@ -0,0 +1,101 @@
package NET.worlds.scape;
import NET.worlds.console.Console;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.Enumeration;
import java.util.Vector;
public class ChoiceAction extends Action {
protected int index = 0;
Vector actions = new Vector();
protected Object currentRun = null;
private static Object classCookie = new Object();
public ChoiceAction() {
}
public Persister trigger(Event var1, Persister var2) {
if (actions.size() > 0) {
if (actions.size() >= index) {
((Action) actions.get(index)).trigger(var1, var2);
}
}
return null;
}
public void addComponent(Action var1) {
this.actions.addElement(var1);
}
public void insertComponent(Action var1, int var2) {
this.actions.insertElementAt(var1, var2);
}
public boolean removeComponent(Action var1) {
return this.actions.removeElement(var1);
}
public Enumeration getComponents() {
return this.actions.elements();
}
public int getIndex() {
return this.index;
}
public void setIndex(int var1) {
this.index = var1;
}
public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
Object var5 = null;
switch (var1 - var2) {
case 0:
if (var3 == 0) {
var5 = ObjectPropertyAdder.make(new VectorProperty(this, var1, "Components"), this.getRoot(), "NET.worlds.scape.Action");
} else if (var3 == 1) {
var5 = this.actions.clone();
} else if (var3 == 4) {
this.actions.removeElement(var4);
} else if (var3 == 3) {
this.actions.addElement((Action)var4);
}
break;
case 1:
if (var3 == 0) {
var5 = IntegerPropertyEditor.make(new Property(this, var1, "Action Index"));
} else if (var3 == 1) {
var5 = new Integer(this.index);
} else if (var3 == 2) {
this.index = ((Integer)var4).intValue();
}
break;
default:
var5 = super.properties(var1, var2 + 2, var3, var4);
}
return var5;
}
public void saveState(Saver var1) throws IOException {
var1.saveVersion(0, classCookie);
super.saveState(var1);
var1.saveInt(this.index);
var1.saveVector(this.actions);
}
public void restoreState(Restorer var1) throws IOException, TooNewException {
switch (var1.restoreVersion(classCookie)) {
case 0:
super.restoreState(var1);
this.index = var1.restoreInt();
this.actions = var1.restoreVector();
break;
default:
throw new TooNewException();
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,100 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package NET.worlds.scape;
import NET.worlds.console.Console;
import NET.worlds.console.Gamma;
import NET.worlds.core.Debug;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.Enumeration;
public abstract class SetObjectPropertyAction extends Action {
SuperRoot _target;
private int _propIndex = -1;
private static Object classCookie = new Object();
public SetObjectPropertyAction() {
}
public SuperRoot getTarget() {
return this._target != null ? this._target : this.getOwner();
}
static int index(int var0, String var1, Object var2) {
if (var0 == -1 && var1 != null) {
EnumProperties var3 = new EnumProperties(var2);
while(var3.hasMoreElements()) {
Property var4 = (Property)var3.nextElement();
if (var4.getName().equals(var1)) {
var0 = var4.getIndex();
break;
}
}
}
return var0;
}
public static Object propHelper(int var0, Object var1, String var2, SuperRoot var3) {
Object var4 = null;
int var5 = index(-1, var2, var3);
if (var5 != -1) {
try {
var4 = var3.properties(var5, 0, var0, var1);
} catch (NoSuchPropertyException var7) {
}
}
return var4;
}
public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
Object var5 = null;
Property var7;
switch (var1 - var2) {
case 0:
if (var3 == 0) {
var7 = new Property(this, var1, "Target");
var7.allowSetNull();
var5 = ObjPropertyEditor.make(var7, this.getRoom(), "NET.worlds.scape.SuperRoot");
} else if (var3 == 1) {
var5 = this.getTarget();
} else if (var3 == 2) {
this._target = (SuperRoot)var4;
this._propIndex = -1;
}
break;
default:
var5 = super.properties(var1, var2 + 1, var3, var4);
}
return var5;
}
public void saveState(Saver var1) throws IOException {
var1.saveVersion(0, classCookie);
super.saveState(var1);
var1.saveMaybeNull(this.getTarget());
}
protected void setPropertyActionRestoreState(Restorer var1) throws IOException, TooNewException {
switch (var1.restoreVersion(classCookie)) {
case 0:
super.restoreState(var1);
this._target = (SuperRoot)var1.restoreMaybeNull();
break;
default:
throw new TooNewException();
}
}
public void restoreState(Restorer var1) throws IOException, TooNewException {
this.setPropertyActionRestoreState(var1);
}
}

View File

@ -0,0 +1,166 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package NET.worlds.scape;
import NET.worlds.core.Debug;
import NET.worlds.network.URL;
import java.io.IOException;
public class SetPortalAction extends SetPortalPropertyAction {
String _farSidePortalName = null;
private boolean _farSideIsPortal = true;
private boolean _allowDownload = true;
String _farSideRoomName = null;
private URL _farSideWorld = null;
private float _farx;
private float _fary;
private float _farz;
private float _fartheta;
private float _userFarx;
private float _userFary;
private float _userFarz;
private float _userFartheta;
private Point3 _start;
private static Object classCookie = new Object();
public SetPortalAction() {
}
public Persister trigger(Event var1, Persister var2) {
SetPortalAction var3 = null;
if (this._portal != null) {
_portal.disconnect();
_portal.setFarSideInfo(this._farSideWorld, this._farSideRoomName, this._farSidePortalName);
_portal.setFar(_farx, _fary, _farz, _fartheta);
_portal.setUserFar(_userFarx, _userFary, _userFarz, _userFartheta);
_portal.reset();
}
return var3;
}
public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
Object var5 = null;
switch (var1 - var2) {
case 0:
if (var3 == 0) {
var5 = URLPropertyEditor.make((new Property(this, var1, "Destination World URL (null means this world)")).allowSetNull(), "world");
} else if (var3 == 1) {
var5 = this._farSideWorld;
} else if (var3 == 2) {
this._farSideWorld = (URL)var4;
}
break;
case 1:
if (var3 == 0) {
var5 = StringPropertyEditor.make((new Property(this, var1, "Destination Room Name")).allowSetNull());
} else if (var3 == 1) {
var5 = this._farSideRoomName == null ? "" : this._farSideRoomName;
} else if (var3 == 2) {
this._farSideRoomName = (String)var4;
if ("".equals(this._farSideRoomName)) {
this._farSideRoomName = null;
}
}
break;
case 2:
if (var3 == 0) {
var5 = BooleanPropertyEditor.make(new Property(this, var1, "Connect to a portal"), "Use location and orientation", "Use portal");
} else if (var3 == 1) {
var5 = new Boolean(this._farSideIsPortal);
} else if (var3 == 2) {
this._farSideIsPortal = ((Boolean)var4).booleanValue();
}
break;
case 3:
if (var3 == 0) {
var5 = BooleanPropertyEditor.make(new Property(this, var1, "Download if world not present"), "Never download", "Allow download");
} else if (var3 == 1) {
var5 = new Boolean(this._allowDownload);
} else if (var3 == 2) {
this._allowDownload = ((Boolean)var4).booleanValue();
}
break;
case 4:
if (var3 == 0) {
var5 = new Property(this, var1, "Destination Portal Name");
if (this._farSideIsPortal) {
var5 = StringPropertyEditor.make((Property)var5);
}
} else if (var3 == 1) {
var5 = this._farSidePortalName == null ? "" : this._farSidePortalName;
} else if (var3 == 2) {
this._farSidePortalName = (String)var4;
}
break;
case 5:
if (var3 == 0) {
var5 = new Property(this, var1, "Destination position");
if (!this._farSideIsPortal) {
var5 = Point3PropertyEditor.make((Property)var5);
}
} else if (var3 == 1) {
var5 = new Point3(this._userFarx, this._userFary, this._userFarz);
} else if (var3 == 2) {
Point3 var6 = (Point3)var4;
this._farx = this._userFarx = var6.x;
this._fary = this._userFary = var6.y;
this._farz = this._userFarz = var6.z;
}
break;
case 6:
if (var3 == 0) {
var5 = new Property(this, var1, "Destination orientation (degrees, clockwise from North)");
if (!this._farSideIsPortal) {
var5 = FloatPropertyEditor.make((Property)var5, 0.0F, 360.0F);
}
} else if (var3 == 1) {
var5 = new Float(this._userFartheta);
} else if (var3 == 2) {
this._fartheta = this._userFartheta = ((Float)var4).floatValue();
}
break;
default:
var5 = super.properties(var1, var2 + 7, var3, var4);
}
return var5;
}
public void saveState(Saver var1) throws IOException {
var1.saveVersion(0, classCookie);
super.saveState(var1);
var1.saveBoolean(this._farSideIsPortal);
var1.saveBoolean(this._allowDownload);
var1.saveString(this._farSidePortalName);
URL.save(var1, this._farSideWorld);
var1.saveString(this._farSideRoomName);
var1.saveFloat(this._userFarx);
var1.saveFloat(this._userFary);
var1.saveFloat(this._userFarz);
var1.saveFloat(this._userFartheta);
}
public void restoreState(Restorer var1) throws IOException, TooNewException {
switch (var1.restoreVersion(classCookie)) {
case 0:
super.restoreState(var1);
this._farSideIsPortal = var1.restoreBoolean();
this._allowDownload = var1.restoreBoolean();
this._farSidePortalName = var1.restoreString();
this._farSideWorld = URL.restore(var1);
this._farSideRoomName = var1.restoreString();
this._farx = var1.restoreFloat();
this._fary = var1.restoreFloat();
this._farz = var1.restoreFloat();
this._fartheta = var1.restoreFloat();
break;
default:
throw new TooNewException();
}
}
}

View File

@ -0,0 +1,100 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package NET.worlds.scape;
import NET.worlds.console.Console;
import NET.worlds.console.Gamma;
import NET.worlds.core.Debug;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.Enumeration;
public abstract class SetPortalPropertyAction extends Action {
Portal _portal;
private int _propIndex = -1;
private static Object classCookie = new Object();
public SetPortalPropertyAction() {
}
public SuperRoot getTarget() {
return this._portal != null ? this._portal : this.getOwner();
}
static int index(int var0, String var1, Object var2) {
if (var0 == -1 && var1 != null) {
EnumProperties var3 = new EnumProperties(var2);
while(var3.hasMoreElements()) {
Property var4 = (Property)var3.nextElement();
if (var4.getName().equals(var1)) {
var0 = var4.getIndex();
break;
}
}
}
return var0;
}
public static Object propHelper(int var0, Object var1, String var2, SuperRoot var3) {
Object var4 = null;
int var5 = index(-1, var2, var3);
if (var5 != -1) {
try {
var4 = var3.properties(var5, 0, var0, var1);
} catch (NoSuchPropertyException var7) {
}
}
return var4;
}
public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
Object var5 = null;
Property var7;
switch (var1 - var2) {
case 0:
if (var3 == 0) {
var7 = new Property(this, var1, "Target");
var7.allowSetNull();
var5 = ObjPropertyEditor.make(var7, this.getRoom(), "NET.worlds.scape.Portal");
} else if (var3 == 1) {
var5 = this.getTarget();
} else if (var3 == 2) {
this._portal = (Portal)var4;
this._propIndex = -1;
}
break;
default:
var5 = super.properties(var1, var2 + 1, var3, var4);
}
return var5;
}
public void saveState(Saver var1) throws IOException {
var1.saveVersion(0, classCookie);
super.saveState(var1);
var1.saveMaybeNull(this.getTarget());
}
protected void setPropertyActionRestoreState(Restorer var1) throws IOException, TooNewException {
switch (var1.restoreVersion(classCookie)) {
case 0:
super.restoreState(var1);
this._portal = (Portal)var1.restoreMaybeNull();
break;
default:
throw new TooNewException();
}
}
public void restoreState(Restorer var1) throws IOException, TooNewException {
this.setPropertyActionRestoreState(var1);
}
}

View File

@ -0,0 +1,91 @@
package NET.worlds.scape;
import java.io.IOException;
public class SetRandomFloatAction extends SlidePropertyAction {
private float _min = 0;
private float _max = 10;
private float _value;
private float _start;
private static Object classCookie = new Object();
public SetRandomFloatAction() {
}
public Persister trigger(Event var1, Persister var2) {
SetRandomFloatAction var3 = null;
this._value = (float)((Math.random() * (_max - _min)) + _min);
if (this.useParam()) {
try {
this._value = Integer.valueOf(this.param()).intValue();
} catch (NumberFormatException var6) {
System.out.println(this.getName() + " unable to parse " + this.paramName());
this._value = 0;
}
}
float var4 = this._value;
if (this.slide()) {
if (var2 == null) {
this.start();
this._start = ((Integer)this.get()).intValue();
}
float var5 = (float)this.fraction();
if ((double)var5 < 1.0) {
var4 = (float)((this._value - this._start) * var5 + this._start);
var3 = this;
}
}
this.set(new Float(var4));
return var3;
}
public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
Object var5 = null;
switch (var1 - var2) {
case 0:
if (var3 == 0) {
var5 = FloatPropertyEditor.make(new Property(this, var1, "Min"));
} else if (var3 == 1) {
var5 = new Float(this._min);
} else if (var3 == 2) {
this._min = ((Float)var4).floatValue();
}
break;
case 1:
if (var3 == 0) {
var5 = FloatPropertyEditor.make(new Property(this, var1, "Max"));
} else if (var3 == 1) {
var5 = new Float(this._max);
} else if (var3 == 2) {
this._max = ((Float)var4).floatValue();
}
break;
default:
var5 = super.properties(var1, var2 + 2, var3, var4);
}
return var5;
}
public void saveState(Saver var1) throws IOException {
var1.saveVersion(0, classCookie);
super.saveState(var1);
var1.saveFloat(this._min);
var1.saveFloat(this._max);
}
public void restoreState(Restorer var1) throws IOException, TooNewException {
switch (var1.restoreVersion(classCookie)) {
case 0:
super.restoreState(var1);
this._min = var1.restoreFloat();
this._max = var1.restoreFloat();
break;
default:
throw new TooNewException();
}
}
}

View File

@ -0,0 +1,91 @@
package NET.worlds.scape;
import java.io.IOException;
public class SetRandomIntegerAction extends SlidePropertyAction {
private int _min = 0;
private int _max = 10;
private int _value;
private int _start;
private static Object classCookie = new Object();
public SetRandomIntegerAction() {
}
public Persister trigger(Event var1, Persister var2) {
SetRandomIntegerAction var3 = null;
this._value = (int)((Math.random() * (_max - _min)) + _min);
if (this.useParam()) {
try {
this._value = Integer.valueOf(this.param()).intValue();
} catch (NumberFormatException var6) {
System.out.println(this.getName() + " unable to parse " + this.paramName());
this._value = 0;
}
}
int var4 = this._value;
if (this.slide()) {
if (var2 == null) {
this.start();
this._start = ((Integer)this.get()).intValue();
}
int var5 = (int)this.fraction();
if ((double)var5 < 1.0) {
var4 = (int)((this._value - this._start) * var5 + this._start);
var3 = this;
}
}
this.set(new Integer(var4));
return var3;
}
public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
Object var5 = null;
switch (var1 - var2) {
case 0:
if (var3 == 0) {
var5 = IntegerPropertyEditor.make(new Property(this, var1, "Min"));
} else if (var3 == 1) {
var5 = new Integer(this._min);
} else if (var3 == 2) {
this._min = ((Integer)var4).intValue();
}
break;
case 1:
if (var3 == 0) {
var5 = IntegerPropertyEditor.make(new Property(this, var1, "Max"));
} else if (var3 == 1) {
var5 = new Integer(this._max);
} else if (var3 == 2) {
this._max = ((Integer)var4).intValue();
}
break;
default:
var5 = super.properties(var1, var2 + 2, var3, var4);
}
return var5;
}
public void saveState(Saver var1) throws IOException {
var1.saveVersion(0, classCookie);
super.saveState(var1);
var1.saveInt(this._min);
var1.saveInt(this._max);
}
public void restoreState(Restorer var1) throws IOException, TooNewException {
switch (var1.restoreVersion(classCookie)) {
case 0:
super.restoreState(var1);
this._min = var1.restoreInt();
this._max = var1.restoreInt();
break;
default:
throw new TooNewException();
}
}
}

View File

@ -0,0 +1,103 @@
package NET.worlds.scape;
import java.io.IOException;
public class SetRandomPoint2Action extends SlidePropertyAction {
private Point2 _min = new Point2(0,0);
private Point2 _max = new Point2(100,100);
private Point2 _value = null;
private Point2 _start;
private static Object classCookie = new Object();
public SetRandomPoint2Action() {
}
public Persister trigger(Event var1, Persister var2) {
SetRandomPoint2Action var3 = null;
Point2 var4 = null;
this._value = new Point2(
(float)((Math.random() * (_max.x - _min.x)) + _min.x),
(float)((Math.random() * (_max.y - _min.y)) + _min.y)
);
if (this.slide()) {
if (var2 == null) {
this.start();
this._start = (Point2)this.get();
}
float var13 = this.fraction();
if ((double)var13 < 1.0) {
var4 = new Point2(this._value);
var4.x = (this._value.x - this._start.x) * var13 + this._start.x;
var4.y = (this._value.y - this._start.y) * var13 + this._start.y;
var3 = this;
}
}
if (var4 == null) {
var4 = this._value;
}
this.set(var4);
return var3;
}
public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
Object var5 = null;
switch (var1 - var2) {
case 0:
if (var3 == 0) {
var5 = Point2PropertyEditor.make((new Property(this, var1, "Min")).allowSetNull());
if (this._min == null) {
var5 = MaybeNullPropertyEditor.make((Property)var5, new Point2());
}
} else if (var3 == 1) {
var5 = this._min;
} else if (var3 == 2) {
this._min = (Point2)var4;
} else if (var3 == 4) {
this._min = null;
}
break;
case 1:
if (var3 == 0) {
var5 = Point2PropertyEditor.make((new Property(this, var1, "Max")).allowSetNull());
if (this._max == null) {
var5 = MaybeNullPropertyEditor.make((Property)var5, new Point2());
}
} else if (var3 == 1) {
var5 = this._max;
} else if (var3 == 2) {
this._max = (Point2)var4;
} else if (var3 == 4) {
this._max = null;
}
break;
default:
var5 = super.properties(var1, var2 + 2, var3, var4);
}
return var5;
}
public void saveState(Saver var1) throws IOException {
var1.saveVersion(0, classCookie);
super.saveState(var1);
var1.saveMaybeNull(this._min);
var1.saveMaybeNull(this._max);
}
public void restoreState(Restorer var1) throws IOException, TooNewException {
switch (var1.restoreVersion(classCookie)) {
case 0:
super.restoreState(var1);
this._min = (Point2)var1.restoreMaybeNull();
this._max = (Point2)var1.restoreMaybeNull();
return;
default:
throw new TooNewException();
}
}
}

View File

@ -0,0 +1,106 @@
package NET.worlds.scape;
import NET.worlds.core.Debug;
import java.io.IOException;
public class SetRandomPoint3Action extends SlidePropertyAction {
private Point3 _min = new Point3(0,0,0);
private Point3 _max = new Point3(100,100,100);
private Point3 _value = null;
private Point3 _start;
private static Object classCookie = new Object();
public SetRandomPoint3Action() {
}
public Persister trigger(Event var1, Persister var2) {
SetRandomPoint3Action var3 = null;
Point3 var4 = null;
this._value = new Point3(
(float)((Math.random() * (_max.x - _min.x)) + _min.x),
(float)((Math.random() * (_max.y - _min.y)) + _min.y),
(float)((Math.random() * (_max.z - _min.z)) + _min.z)
);
if (this.slide()) {
if (var2 == null) {
this.start();
this._start = (Point3)this.get();
}
float var13 = this.fraction();
if ((double)var13 < 1.0) {
var4 = new Point3(this._value);
var4.x = (this._value.x - this._start.x) * var13 + this._start.x;
var4.y = (this._value.y - this._start.y) * var13 + this._start.y;
var4.z = (this._value.z - this._start.z) * var13 + this._start.z;
var3 = this;
}
}
if (var4 == null) {
var4 = this._value;
}
this.set(var4);
return var3;
}
public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
Object var5 = null;
switch (var1 - var2) {
case 0:
if (var3 == 0) {
var5 = Point3PropertyEditor.make((new Property(this, var1, "Min")).allowSetNull());
if (this._min == null) {
var5 = MaybeNullPropertyEditor.make((Property)var5, new Point3());
}
} else if (var3 == 1) {
var5 = this._min;
} else if (var3 == 2) {
this._min = (Point3)var4;
} else if (var3 == 4) {
this._min = null;
}
break;
case 1:
if (var3 == 0) {
var5 = Point3PropertyEditor.make((new Property(this, var1, "Max")).allowSetNull());
if (this._max == null) {
var5 = MaybeNullPropertyEditor.make((Property)var5, new Point3());
}
} else if (var3 == 1) {
var5 = this._max;
} else if (var3 == 2) {
this._max = (Point3)var4;
} else if (var3 == 4) {
this._max = null;
}
break;
default:
var5 = super.properties(var1, var2 + 1, var3, var4);
}
return var5;
}
public void saveState(Saver var1) throws IOException {
var1.saveVersion(0, classCookie);
super.saveState(var1);
var1.saveMaybeNull(this._min);
var1.saveMaybeNull(this._max);
}
public void restoreState(Restorer var1) throws IOException, TooNewException {
switch (var1.restoreVersion(classCookie)) {
case 0:
super.restoreState(var1);
this._min = (Point3)var1.restoreMaybeNull();
this._max = (Point3)var1.restoreMaybeNull();
return;
default:
throw new TooNewException();
}
}
}

231
DeAction2/mod.patch Normal file
View File

@ -0,0 +1,231 @@
diff -ruN a/1890/NET/worlds/network/textCmd.java b/1890/NET/worlds/network/textCmd.java
--- a/1890/NET/worlds/network/textCmd.java 2023-08-21 23:27:15.000000000 -0500
+++ b/1890/NET/worlds/network/textCmd.java 2023-08-21 23:27:16.000000000 -0500
@@ -12,128 +12,104 @@
import java.io.IOException;
public class textCmd extends receivedNetPacket {
- public static final byte TEXTCMD = 14;
- protected ObjID _senderID;
- protected String _text;
-
- public textCmd() {
- super._commandType = 14;
- }
-
- public textCmd(String var1) {
- super((ObjID)null, 14);
- this._senderID = new ObjID("");
- this._text = var1;
- }
-
- void parseNetData(ServerInputStream var1) throws IOException {
- this._senderID = new ObjID();
- this._senderID.parseNetData(var1);
- this._text = var1.readUTF();
- }
-
- int packetSize() {
- return ServerOutputStream.utfLength(this._text) + 1 + this._senderID.packetSize() + super.packetSize();
- }
-
- void send(ServerOutputStream var1) throws IOException {
- super.send(var1);
- this._senderID.send(var1);
- var1.writeUTF(this._text);
- }
-
- void process(WorldServer var1) throws Exception {
- String var2;
- if (this._senderID.longID() == null) {
- var2 = "[Unknown Name (#" + String.valueOf(this._senderID.shortID()) + ")]";
- } else {
- var2 = this._senderID.longID();
- if (MuteListPart.isMuted(var1, var2)) {
- return;
- }
- }
-
- handleActionText(var1, this._text, var2, this._senderID);
- if (!this._text.startsWith("&|+")) {
- this.displayText(var2, this._text);
- }
-
- }
-
- protected void displayText(String var1, String var2) {
- String var3 = FilthFilter.get().filterName(var1);
- String var4 = "";
- if (IniFile.gamma().getIniInt("classicChatBox", 1) == 1) {
- var4 = var3 + "> ";
- var4 = var4 + FilthFilter.get().filter(var2);
- BlackBox.getInstance().submitEvent(new BBChatCommand(var4));
- Console.println(var4);
- } else {
- boolean var5 = false;
- if (Drone.isEmployeeAccount(var1)) {
- var4 = GammaTextArea.colorStartBlueTag + " ";
- var5 = true;
- } else if (var1.toLowerCase().startsWith(Console.message("host"))) {
- var4 = GammaTextArea.colorStartRedTag + " ";
- var5 = true;
- } else if (var1.toLowerCase().startsWith(Console.message("guest-"))) {
- var4 = GammaTextArea.colorStartMagentaTag + " ";
- var5 = true;
- }
-
- var4 = var4 + "<b> " + var3 + "> </b> ";
- if (var5) {
- var4 = var4 + " " + GammaTextArea.colorEndTag + " ";
- }
-
- var4 = var4 + FilthFilter.get().filter(var2);
- BlackBox.getInstance().submitEvent(new BBChatCommand(var4));
- Console.println(var4);
- }
- }
-
- public static void handleActionText(WorldServer var0, String var1, String var2, ObjID var3) {
- String var5;
- if (var1.startsWith("&|+action>")) {
- NetworkObject var4 = var0.getObject(var3);
- if (var4 == null) {
- return;
- }
-
- var5 = var1.substring(10);
- if (!(var4 instanceof PosableDrone)) {
- return;
- }
-
- ((PosableDrone)var4).animate(var5);
- }
-
- if (var1.startsWith("&|+action2>")) {
- int var9 = var1.indexOf("|sender|");
- var5 = null;
- String var6 = null;
- if (var9 != -1) {
- var5 = var1.substring(var9);
- var6 = var1.substring(11, var9);
- NetworkObject var7 = var0.getObject(var3);
- if (var7 != null && var7 instanceof PosableDrone) {
- ((PosableDrone)var7).animate(var5);
- Pilot.sendText("&|+action>" + var5);
+ public static final byte TEXTCMD = 14;
+ protected ObjID _senderID;
+ protected String _text;
+
+ public textCmd() {
+ this._commandType = 14;
+ }
+
+ public textCmd(String text) {
+ super((ObjID)null, 14);
+ this._senderID = new ObjID("");
+ this._text = text;
+ }
+
+ void parseNetData(ServerInputStream data) throws IOException {
+ this._senderID = new ObjID();
+ this._senderID.parseNetData(data);
+ this._text = data.readUTF();
+ }
+
+ int packetSize() {
+ return ServerOutputStream.utfLength(this._text) + 1 + this._senderID.packetSize() + super.packetSize();
+ }
+
+ void send(ServerOutputStream o) throws IOException {
+ super.send(o);
+ this._senderID.send(o);
+ o.writeUTF(this._text);
+ }
+
+ void process(WorldServer _serv) throws Exception {
+ String name;
+ if (this._senderID.longID() == null) {
+ name = "[Unknown Name (#" + String.valueOf(this._senderID.shortID()) + ")]";
+ } else {
+ name = this._senderID.longID();
+ if (MuteListPart.isMuted(_serv, name)) {
+ return;
}
- } else {
- var6 = var1.substring(11);
- }
-
- try {
- Console.getActive().getPilot().animate(var6);
- } catch (Exception var8) {
- System.out.println("Error animating pilot " + var8.toString());
- }
- }
-
- }
-
- public String toString(WorldServer var1) {
- return "TEXT " + this._senderID.toString(var1) + ": " + this._text;
- }
+ }
+
+ handleActionText(_serv, this._text, name, this._senderID);
+ if (!this._text.startsWith("&|+")) {
+ this.displayText(name, this._text);
+ }
+
+ }
+
+ protected void displayText(String name, String text) {
+ String filteredName = FilthFilter.get().filterName(name);
+ String line = "";
+ if (IniFile.gamma().getIniInt("classicChatBox", 1) == 1) {
+ line = filteredName + "> ";
+ line = line + FilthFilter.get().filter(text);
+ BlackBox.getInstance().submitEvent(new BBChatCommand(line));
+ Console.println(line);
+ } else {
+ boolean colored = false;
+ if (Drone.isEmployeeAccount(name)) {
+ line = GammaTextArea.colorStartBlueTag + " ";
+ colored = true;
+ } else if (name.toLowerCase().startsWith(Console.message("host"))) {
+ line = GammaTextArea.colorStartRedTag + " ";
+ colored = true;
+ } else if (name.toLowerCase().startsWith(Console.message("guest-"))) {
+ line = GammaTextArea.colorStartMagentaTag + " ";
+ colored = true;
+ }
+
+ line = line + "<b> " + filteredName + "> </b> ";
+ if (colored) {
+ line = line + " " + GammaTextArea.colorEndTag + " ";
+ }
+
+ line = line + FilthFilter.get().filter(text);
+ BlackBox.getInstance().submitEvent(new BBChatCommand(line));
+ Console.println(line);
+ }
+ }
+
+ public static void handleActionText(WorldServer _serv, String msg, String name, ObjID senderID) {
+ String senderAction;
+ if (msg.startsWith("&|+action>")) {
+ NetworkObject o = _serv.getObject(senderID);
+ if (o == null) {
+ return;
+ }
+
+ senderAction = msg.substring(10);
+ if (!(o instanceof PosableDrone)) {
+ return;
+ }
+
+ ((PosableDrone)o).animate(senderAction);
+ }
+ }
+
+ public String toString(WorldServer serv) {
+ return "TEXT " + this._senderID.toString(serv) + ": " + this._text;
+ }
}

82
DeDNSer/mod.patch Normal file
View File

@ -0,0 +1,82 @@
diff -ruN a/1890/NET/worlds/network/DNSLookup.java b/1890/NET/worlds/network/DNSLookup.java
--- a/1890/NET/worlds/network/DNSLookup.java 2023-08-21 23:27:15.000000000 -0500
+++ b/1890/NET/worlds/network/DNSLookup.java 2024-01-08 01:30:41.000000000 -0600
@@ -1,6 +1,5 @@
package NET.worlds.network;
-import NET.worlds.core.Debug;
import java.net.MalformedURLException;
import java.net.UnknownHostException;
import java.util.Hashtable;
@@ -14,42 +13,19 @@
private int timeout;
public static java.net.URL lookup(java.net.URL var0) throws MalformedURLException, UnknownHostException {
- return lookup((java.net.URL)var0, 30);
+ return var0;
}
public static java.net.URL lookupAll(java.net.URL var0) throws MalformedURLException, UnknownHostException {
- return lookupAll((java.net.URL)var0, 30);
+ return var0;
}
public static java.net.URL lookup(java.net.URL var0, int var1) throws MalformedURLException, UnknownHostException {
- String var2 = var0.getHost();
- if (var2 == null) {
- return var0;
- } else {
- Debug.assert(var0.getRef() == null);
- return new java.net.URL(var0.getProtocol(), lookup(var2, var1), var0.getPort(), var0.getFile());
- }
+ return var0;
}
public static java.net.URL lookupAll(java.net.URL var0, int var1) throws MalformedURLException, UnknownHostException {
- String var2 = var0.getHost();
- if (var2 == null) {
- return var0;
- } else {
- Debug.assert(var0.getRef() == null);
- String[] var3 = lookupAll(var2, var1);
- String var4 = "";
-
- for(int var5 = 0; var5 < var3.length; ++var5) {
- if (var5 != 0) {
- var4 = var4 + ";";
- }
-
- var4 = var4 + var3[var5];
- }
-
- return new java.net.URL(var0.getProtocol(), var4, var0.getPort(), var0.getFile());
- }
+ return var0;
}
public static String lookup(String var0) throws UnknownHostException {
@@ -57,20 +33,16 @@
}
public static String lookup(String var0, int var1) throws UnknownHostException {
- return isDotted(var0) ? var0 : lookupAllCommon(var0, var1)[0];
+ return var0;
+ //return isDotted(var0) ? var0 : lookupAllCommon(var0, var1)[0];
}
public static String[] lookupAll(String var0) throws UnknownHostException {
- return lookupAll((String)var0, 30);
+ return new String[]{var0};
}
public static String[] lookupAll(String var0, int var1) throws UnknownHostException {
- if (isDotted(var0)) {
- String[] var2 = new String[]{var0};
- return var2;
- } else {
- return lookupAllCommon(var0, var1);
- }
+ return new String[]{var0};
}
private static String[] lookupAllCommon(String var0, int var1) throws UnknownHostException {

1676
FixedChat/mod.patch Normal file

File diff suppressed because it is too large Load Diff

11
NoteAction/README.md Normal file
View File

@ -0,0 +1,11 @@
# NoteAction
**Supports 1890 - 1922**
NoteAction is a simple custom-action addition that adds both a NoteAction and a WhisperAction.
NoteAction will display a whisper-like dialog box with no input and a custom title, while WhisperAction will create a whisper dialog box and send a custom message.
The idea is to add a different level of options for story telling in Worlds.
Any world utilizing this action requires you to have this action installed.

View File

@ -0,0 +1,93 @@
package NET.worlds.console;
import java.awt.Window;
import java.awt.*;
public class NoteDialog extends PolledDialog {
protected static Window parent;
protected boolean building;
protected NotePart notePart;
protected String title;
protected boolean built;
protected static int counter = 0;
protected NoteDialog(Window var1, String var2) {
super(var1, (DialogReceiver)null, Console.parseExtended(var2), false);
this.title = var2;
this.notePart = new NotePart();
Console var3 = Console.getActive();
if (var3 != null) {
var3.addPart(this.notePart);
}
int var4 = counter / 6;
int var5 = counter % 6;
this.setAlignment(1, ((var5 + var4) % 12 - 5) * 20, (var5 % 6 - 5) * 20);
++counter;
}
protected void takeFocus() {
this.notePart.forceTakeFocus();
}
public void show() {
super.show();
this.notePart.scrollToBottom();
}
protected synchronized void print(String var1) {
this.notePart.println(var1);
}
protected synchronized void build() {
this.building = false;
if (this.built) {
this.removeAll();
}
this.built = true;
this.setBackground(Color.white);
this.setForeground(Color.black);
this.notePart.listen.setBackground(Color.lightGray);
InsetPanel var10 = new InsetPanel(new BorderLayout(), 3, 1, 1, 1);
var10.setBackground(Color.lightGray);
var10.add("Center", this.notePart.listen.getComponent());
this.add("Center", var10);
this.validate();
}
public synchronized boolean keyDown(Event var1, int var2) {
if (var2 == 10) {
return true;
} else {
return false;
}
}
public Dimension preferredSize() {
Dimension var1 = super.preferredSize();
if (var1.width < 300) {
var1.width = 300;
}
if (var1.height < 300) {
var1.height = 300;
}
return var1;
}
public Dimension minimumSize() {
Dimension var1 = super.minimumSize();
if (var1.width < 300) {
var1.width = 300;
}
if (var1.height < 300) {
var1.height = 300;
}
return var1;
}
}

View File

@ -0,0 +1,66 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package NET.worlds.console;
import java.awt.Window;
import java.util.Hashtable;
public class NoteManager {
private static NoteManager manager_;
private Hashtable dialogs_ = new Hashtable();
private Window parent;
private NoteManager() {
setParent(Console.getFrame());
}
public static NoteManager noteManager() {
if (manager_ == null) {
manager_ = new NoteManager();
}
return manager_;
}
void setParent(Window var1) {
this.parent = var1;
}
public Hashtable dialogs() {
return this.dialogs_;
}
private NoteDialog findNoteDialog(String var1) {
return !this.dialogs_.containsKey(var1) ? null : (NoteDialog)this.dialogs_.get(var1);
}
private NoteDialog start(String var1, boolean var2) {
NoteDialog var3 = this.findNoteDialog(var1);
if (var3 == null) {
this.dialogs_.put(var1, var3 = new NoteDialog(this.parent, var1));
}
if (var2) {
var3.takeFocus();
}
var3.ready();
return var3;
}
public void remove(String var1) {
this.dialogs_.remove(var1);
}
public void startTo(String var1) {
this.start(var1, true);
}
public void print(String var1, String var2) {
NoteDialog var3 = this.start(var1, false);
var3.print(var2);
}
}

View File

@ -0,0 +1,74 @@
package NET.worlds.console;
import NET.worlds.core.IniFile;
import NET.worlds.scape.FrameEvent;
import java.awt.*;
public class NotePart extends NoteDuplex {
}
abstract class NoteDuplex implements FramePart {
private boolean classicTextArea;
public SharedTextArea listen;
public NoteDuplex() {
this(true);
}
public NoteDuplex(boolean var1) {
this(var1, 3);
}
public NoteDuplex(boolean var1, int var2) {
this.classicTextArea = IniFile.gamma().getIniInt("classicChatBox", 1) == 1;
if (this.classicTextArea) {
this.listen = new ClassicSharedTextArea(var2, 30, var1);
this.listen.setBackground(Color.white);
} else {
this.listen = new NewSharedTextArea(var2, 30, var1);
this.listen.setBackground(GammaTextArea.getBackgroundColor());
}
this.listen.setForeground(Color.black);
}
public void println(String var1) {
this.listen.println(var1);
}
public void activate(Console console, Container container, Console console1) {
if (!this.classicTextArea) {
Color var4 = GammaTextArea.getBackgroundColor();
this.listen.setBackground(var4);
this.listen.setForeground(Color.black);
this.listen.repaint();
} else {
this.listen.setBackground(Color.white);
this.listen.setForeground(Color.black);
}
}
public void deactivate() {
}
public boolean action(Event event, Object o) {
return false;
}
public boolean handle(FrameEvent frameEvent) {
this.listen.poll();
return true;
}
public void scrollToBottom() {
this.listen.scrollToBottom();
}
public void forceTakeFocus() {
((FocusPreservingTextField)this.listen).takeNextFocus();
}
}

View File

@ -0,0 +1,75 @@
package NET.worlds.scape;
import NET.worlds.console.NoteManager;
import java.io.IOException;
public class NoteAction extends Action {
String message = null;
String windowTitle = null;
private static Object classCookie = new Object();
public NoteAction() {
}
public NoteAction(String var1) {
this.message = var1;
}
public Persister trigger(Event var1, Persister var2) {
//WhisperManager.whisperManager().printFrom(this.windowTitle, this.message);
NoteManager.noteManager().print(this.windowTitle, this.message);
return null;
}
public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
Object var5 = null;
switch(var1 - var2) {
case 0:
if (var3 == 0) {
var5 = StringPropertyEditor.make(new Property(this, var1, "Note Title"));
} else if (var3 == 1) {
var5 = this.windowTitle;
} else if (var3 == 2) {
this.windowTitle = (String)var4;
}
break;
case 1:
if (var3 == 0) {
var5 = StringPropertyEditor.make(new Property(this, var1, "Message"));
} else if (var3 == 1) {
var5 = this.message;
} else if (var3 == 2) {
this.message = (String)var4;
}
break;
default:
var5 = super.properties(var1, var2 + 1, var3, var4);
}
return var5;
}
public void saveState(Saver var1) throws IOException {
var1.saveVersion(0, classCookie);
super.saveState(var1);
var1.saveString(this.windowTitle);
var1.saveString(this.message);
}
public void restoreState(Restorer var1) throws IOException, TooNewException {
switch(var1.restoreVersion(classCookie)) {
case 0:
super.restoreState(var1);
this.windowTitle = var1.restoreString();
this.message = var1.restoreString();
return;
default:
throw new TooNewException();
}
}
public String toString() {
return super.toString() + "[" + this.windowTitle + ", " + this.message + "]";
}
}

View File

@ -0,0 +1,74 @@
package NET.worlds.scape;
import NET.worlds.console.WhisperManager;
import java.io.IOException;
public class WhisperAction extends Action {
String txt = null;
String user = null;
private static Object classCookie = new Object();
public WhisperAction() {
}
public WhisperAction(String var1) {
this.txt = var1;
}
public Persister trigger(Event var1, Persister var2) {
WhisperManager.whisperManager().printFrom("NPC-" + this.user, this.txt);
return null;
}
public Object properties(int var1, int var2, int var3, Object var4) throws NoSuchPropertyException {
Object var5 = null;
switch(var1 - var2) {
case 0:
if (var3 == 0) {
var5 = StringPropertyEditor.make(new Property(this, var1, "Username"));
} else if (var3 == 1) {
var5 = this.user;
} else if (var3 == 2) {
this.user = (String)var4;
}
break;
case 1:
if (var3 == 0) {
var5 = StringPropertyEditor.make(new Property(this, var1, "Message"));
} else if (var3 == 1) {
var5 = this.txt;
} else if (var3 == 2) {
this.txt = (String)var4;
}
break;
default:
var5 = super.properties(var1, var2 + 1, var3, var4);
}
return var5;
}
public void saveState(Saver var1) throws IOException {
var1.saveVersion(0, classCookie);
super.saveState(var1);
var1.saveString(this.user);
var1.saveString(this.txt);
}
public void restoreState(Restorer var1) throws IOException, TooNewException {
switch(var1.restoreVersion(classCookie)) {
case 0:
super.restoreState(var1);
this.user = var1.restoreString();
this.txt = var1.restoreString();
return;
default:
throw new TooNewException();
}
}
public String toString() {
return super.toString() + "[" + this.user + ", " + this.txt + "]";
}
}

3143
TrayNotifier/mod.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
default:
g++ -Wall -c -o mumbleworlds.o src/MumbleLink.cpp
g++ -Wl,--kill-at -static -shared -o mumbleworlds.dll mumbleworlds.o

View File

@ -0,0 +1,87 @@
#include <wchar.h>
#include <windows.h>
#include <stdio.h>
#include <cmath>
#include "NET_worldsplus_MumbleLink.h"
struct LinkedMem {
UINT32 uiVersion;
DWORD uiTick;
UINT32 context_len;
float fAvatarPosition[3];
float fAvatarFront[3];
float fAvatarTop[3];
wchar_t name[256];
float fCameraPosition[3];
float fCameraFront[3];
float fCameraTop[3];
wchar_t identity[256];
unsigned char context[256];
wchar_t description[2048];
};
LinkedMem *lm = NULL;
JNIEXPORT void JNICALL Java_NET_worldsplus_MumbleLink_initMumble(JNIEnv *env, jobject object) {
HANDLE hMapObject = OpenFileMappingW(FILE_MAP_ALL_ACCESS, FALSE, L"MumbleLink");
if (hMapObject == NULL)
return;
lm = (LinkedMem *) MapViewOfFile(hMapObject, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(LinkedMem));
if (lm == NULL) {
CloseHandle(hMapObject);
hMapObject = NULL;
return;
}
}
JNIEXPORT void JNICALL Java_NET_worldsplus_MumbleLink_updateMumble(JNIEnv *env, jobject object, jstring name, float posX, float posY, float posZ, float camX, float camY, float camZ, float yaw, float pitch, jstring room) {
if (! lm)
return;
if(lm->uiVersion != 2) {
wcsncpy(lm->name, L"WorldsMumbleLink", 256);
wcsncpy(lm->description, L"WorldsMumbleLink is a link for Worlds.com", 2048);
lm->uiVersion = 2;
}
lm->uiTick++;
// Left handed coordinate system.
// X positive towards "right".
// Y positive towards "up".
// Z positive towards "front".
//
// 1 unit = 1 meter
// Unit vector pointing out of the avatar's eyes aka "At"-vector.
lm->fAvatarFront[0] = cos(yaw)*cos(pitch);
lm->fAvatarFront[1] = 0.0f;
lm->fAvatarFront[2] = sin(yaw)*cos(pitch);
// Unit vector pointing out of the top of the avatar's head aka "Up"-vector (here Top points straight up).
lm->fAvatarTop[0] = 0.0f;
lm->fAvatarTop[1] = 1.0f;
lm->fAvatarTop[2] = 0.0f;
// Position of the avatar
lm->fAvatarPosition[0] = posX;
lm->fAvatarPosition[1] = posZ;
lm->fAvatarPosition[2] = posY;
// Same as avatar but for the camera.
lm->fCameraPosition[0] = camX;
lm->fCameraPosition[1] = camZ;
lm->fCameraPosition[2] = camY;
lm->fCameraFront[0] = 0.0f;
lm->fCameraFront[1] = 0.0f;
lm->fCameraFront[2] = 1.0f;
lm->fCameraTop[0] = 0.0f;
lm->fCameraTop[1] = 1.0f;
lm->fCameraTop[2] = 0.0f;
// Identifier which uniquely identifies a certain player in a context (e.g. the ingame name).
wcsncpy(lm->identity, ( wchar_t *)env->GetStringChars(name, NULL), 256);
// Context should be equal for players which should be able to hear each other positional and
// differ for those who shouldn't (e.g. it could contain the server+port and team)
memcpy(lm->context, ( wchar_t *)env->GetStringChars(room, NULL), 16);
lm->context_len = 16;
}

View File

@ -0,0 +1,15 @@
package NET.worldsplus;
import java.net.MalformedURLException;
public class MumbleLink {
public MumbleLink() throws MalformedURLException {
initMumble();
}
private native void initMumble();
public native void updateMumble(String name, float posX, float posY, float posZ, float camX, float camY, float camZ, float direction);
}

14
WorldsPlus/README.md Normal file
View File

@ -0,0 +1,14 @@
# The Worlds+ Modification Pack
An unofficial community modpack that includes a few minor modifications and additions for Worlds.
* Sgeo's "Where is?" Mod
* Higher Friend limit
* Higher Mute limit
* Privacy settings for whispers and teleports
* Customizable nametags
* Max Animations
* No TalkAction
* and much more!
## Installation
Applying the mod should be simple if you have done so before. Simply drag and drop the contents of the ZIP into the Worlds root folder. Due to the addition of more data in this mod, it may ask you to replace some files. This is normal and should not harm your Worlds installation at all. If you prefer, you can back them up beforehand.

47253
WorldsPlus/mod.patch Normal file

File diff suppressed because it is too large Load Diff