Skip to content

Commit 0cdc95e

Browse files
committed
added Navigation NMS flag field accessors
1 parent 883659d commit 0cdc95e

File tree

3 files changed

+46
-4
lines changed

3 files changed

+46
-4
lines changed

builder/version.properties

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
#Thu, 14 Nov 2013 10:09:40 +0100
1+
#Thu, 14 Nov 2013 13:23:59 +0100
22

33
version.number=6
4-
version.build=16
5-
version.timestamp=201311141009
4+
version.build=18
5+
version.timestamp=201311141323
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.primitives;
2+
3+
import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.system.NativeFieldPrivate;
4+
5+
public class NativeFieldBoolean<C extends Object> extends NativeFieldPrivate<C> {
6+
7+
public NativeFieldBoolean(final String fieldName) {
8+
super(fieldName);
9+
}
10+
11+
public NativeFieldBoolean(final Class<C> nativeClass, final String fieldName) {
12+
super(nativeClass, fieldName);
13+
}
14+
15+
public boolean get(final C object) {
16+
try {
17+
return this.getField(object).getBoolean(object);
18+
} catch(Throwable e) {
19+
this.handleException(e);
20+
return false;
21+
}
22+
}
23+
24+
public void set(final C object, final boolean value) {
25+
try {
26+
this.getField(object).setBoolean(object, value);
27+
} catch(Throwable e) {
28+
this.handleException(e);
29+
}
30+
}
31+
32+
}

src/java/de/ntcomputer/minecraft/controllablemobs/implementation/nativeinterfaces/server/NmsNavigation.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import net.minecraft.server.v1_6_R3.EntityLiving;
44
import net.minecraft.server.v1_6_R3.Navigation;
55
import net.minecraft.server.v1_6_R3.PathEntity;
6+
import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.primitives.NativeFieldBoolean;
67
import de.ntcomputer.minecraft.controllablemobs.implementation.nativeinterfaces.system.NativeMethodPublic;
78

89
public class NmsNavigation {
@@ -14,6 +15,14 @@ public class NmsNavigation {
1415
public final MoveAlongPath METHOD_MOVEALONGPATH = new MoveAlongPath();
1516
public final CreatePathToEntity METHOD_CREATEPATHTOENTITY = new CreatePathToEntity();
1617
public final CreatePathToLocation METHOD_CREATEPATHTOLOCATION = new CreatePathToLocation();
18+
// first of 4 booleans
19+
public final NativeFieldBoolean<Navigation> FIELD_USEOPENDOOR = new NativeFieldBoolean<Navigation>(Navigation.class, "j");
20+
// second of 4 booleans
21+
public final NativeFieldBoolean<Navigation> FIELD_USECLOSEDDOOR = new NativeFieldBoolean<Navigation>(Navigation.class, "k");
22+
// third of 4 booleans
23+
public final NativeFieldBoolean<Navigation> FIELD_AVOIDWATER = new NativeFieldBoolean<Navigation>(Navigation.class, "l");
24+
// last of 4 booleans
25+
public final NativeFieldBoolean<Navigation> FIELD_CANSWIM = new NativeFieldBoolean<Navigation>(Navigation.class, "m");
1726

1827
public class IsMoveFinished extends NativeMethodPublic {
1928
public boolean invoke(final Navigation navigation) {
@@ -78,5 +87,6 @@ public PathEntity invoke(final Navigation navigation, final double x, final doub
7887
return null;
7988
}
8089
}
81-
}
90+
}
91+
8292
}

0 commit comments

Comments
 (0)