Fix some small issues and optimize some entity goals
This commit is contained in:
parent
304762408f
commit
1b3c38a64e
|
@ -2,28 +2,16 @@
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="dcab9632-7b1a-44d7-9283-be9b37640afc" name="Default Changelist" comment="">
|
<list default="true" id="dcab9632-7b1a-44d7-9283-be9b37640afc" name="Default Changelist" comment="">
|
||||||
<change afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15_R1/NMSInterface_1_15_R1.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/EntityTamableFox.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15_R1/EntityTamableFox.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/TamableFoxes.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/TamableFoxes.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/TamableFoxes.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/TamableFoxes.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/Utils.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/Utils.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/io/LanguageConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/io/LanguageConfig.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15_R1/EntityTamableFox.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15_R1/EntityTamableFox.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15/command/CommandSpawnTamableFox.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/CommandSpawnTamableFox.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15_R1/pathfinding/FoxPathfinderGoalMeleeAttack.java" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15/pathfinding/FoxPathfinderGoalFollowOwner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15_R1/pathfinding/FoxPathfinderGoalFollowOwner.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_16_R1/EntityTamableFox.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_16_R1/EntityTamableFox.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15/pathfinding/FoxPathfinderGoalHurtByTarget.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15_R1/pathfinding/FoxPathfinderGoalHurtByTarget.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_16_R1/pathfinding/FoxPathfinderGoalSleepWithOwner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_16_R1/pathfinding/FoxPathfinderGoalSleepWithOwner.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15/pathfinding/FoxPathfinderGoalMeleeAttack.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15_R1/pathfinding/FoxPathfinderGoalMeleeAttack.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15/pathfinding/FoxPathfinderGoalOwnerHurtByTarget.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15_R1/pathfinding/FoxPathfinderGoalOwnerHurtByTarget.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15/pathfinding/FoxPathfinderGoalOwnerHurtTarget.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15_R1/pathfinding/FoxPathfinderGoalOwnerHurtTarget.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15/pathfinding/FoxPathfinderGoalPanic.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15_R1/pathfinding/FoxPathfinderGoalPanic.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15/pathfinding/FoxPathfinderGoalSit.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/net/seanomik/tamablefoxes/versions/version_1_15_R1/pathfinding/FoxPathfinderGoalSit.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/resources/language.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/language.yml" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/resources/plugin.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/plugin.yml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/main/resources/plugin.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/plugin.yml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/target/classes/plugin.yml" beforeDir="false" afterPath="$PROJECT_DIR$/target/classes/plugin.yml" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/target/maven-archiver/pom.properties" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-archiver/pom.properties" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" beforeDir="false" afterPath="$PROJECT_DIR$/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" afterDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
@ -83,6 +71,7 @@
|
||||||
<recent name="net.seanomik.tamablefoxes.versions" />
|
<recent name="net.seanomik.tamablefoxes.versions" />
|
||||||
</key>
|
</key>
|
||||||
<key name="CopyClassDialog.RECENTS_KEY">
|
<key name="CopyClassDialog.RECENTS_KEY">
|
||||||
|
<recent name="net.seanomik.tamablefoxes.versions.version_1_15_R1.pathfinding" />
|
||||||
<recent name="net.seanomik.tamablefoxes.versions.version_1_16_R1.command" />
|
<recent name="net.seanomik.tamablefoxes.versions.version_1_16_R1.command" />
|
||||||
<recent name="net.seanomik.tamablefoxes.versions.version_1_15_R1.command" />
|
<recent name="net.seanomik.tamablefoxes.versions.version_1_15_R1.command" />
|
||||||
<recent name="net.seanomik.tamablefoxes.versions.version_1_15" />
|
<recent name="net.seanomik.tamablefoxes.versions.version_1_15" />
|
||||||
|
@ -94,7 +83,7 @@
|
||||||
<recent name="E:\TamableFoxesCustomEntity\src\main\resources" />
|
<recent name="E:\TamableFoxesCustomEntity\src\main\resources" />
|
||||||
</key>
|
</key>
|
||||||
</component>
|
</component>
|
||||||
<component name="RunManager" selected="JAR Application.Spigot-1.16.1">
|
<component name="RunManager" selected="JAR Application.Spigot-1.15.2">
|
||||||
<configuration name="Spigot-1.15.2" type="JarApplication">
|
<configuration name="Spigot-1.15.2" type="JarApplication">
|
||||||
<option name="JAR_PATH" value="$PROJECT_DIR$/../../_TEST_SERVER_1.15.2_/spigot-1.15.2.jar" />
|
<option name="JAR_PATH" value="$PROJECT_DIR$/../../_TEST_SERVER_1.15.2_/spigot-1.15.2.jar" />
|
||||||
<option name="PROGRAM_PARAMETERS" value="nogui" />
|
<option name="PROGRAM_PARAMETERS" value="nogui" />
|
||||||
|
@ -226,38 +215,38 @@
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state x="740" y="275" key="FileChooserDialogImpl/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1590119699228" />
|
<state x="740" y="275" key="FileChooserDialogImpl/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1590119699228" />
|
||||||
<state width="1877" height="197" key="GridCell.Tab.0.bottom" timestamp="1594748168001">
|
<state width="1877" height="211" key="GridCell.Tab.0.bottom" timestamp="1594752102677">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state width="1877" height="197" key="GridCell.Tab.0.bottom/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594748168001" />
|
<state width="1877" height="211" key="GridCell.Tab.0.bottom/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594752102677" />
|
||||||
<state width="1877" height="197" key="GridCell.Tab.0.center" timestamp="1594748168001">
|
<state width="1877" height="211" key="GridCell.Tab.0.center" timestamp="1594752102676">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state width="1877" height="197" key="GridCell.Tab.0.center/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594748168001" />
|
<state width="1877" height="211" key="GridCell.Tab.0.center/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594752102676" />
|
||||||
<state width="1877" height="197" key="GridCell.Tab.0.left" timestamp="1594748168001">
|
<state width="1877" height="211" key="GridCell.Tab.0.left" timestamp="1594752102676">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state width="1877" height="197" key="GridCell.Tab.0.left/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594748168001" />
|
<state width="1877" height="211" key="GridCell.Tab.0.left/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594752102676" />
|
||||||
<state width="1877" height="197" key="GridCell.Tab.0.right" timestamp="1594748168001">
|
<state width="1877" height="211" key="GridCell.Tab.0.right" timestamp="1594752102676">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state width="1877" height="197" key="GridCell.Tab.0.right/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594748168001" />
|
<state width="1877" height="211" key="GridCell.Tab.0.right/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594752102676" />
|
||||||
<state width="1877" height="197" key="GridCell.Tab.1.bottom" timestamp="1594748167920">
|
<state width="1877" height="211" key="GridCell.Tab.1.bottom" timestamp="1594752102527">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state width="1877" height="197" key="GridCell.Tab.1.bottom/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594748167920" />
|
<state width="1877" height="211" key="GridCell.Tab.1.bottom/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594752102527" />
|
||||||
<state width="1877" height="197" key="GridCell.Tab.1.center" timestamp="1594748167920">
|
<state width="1877" height="211" key="GridCell.Tab.1.center" timestamp="1594752102527">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state width="1877" height="197" key="GridCell.Tab.1.center/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594748167920" />
|
<state width="1877" height="211" key="GridCell.Tab.1.center/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594752102527" />
|
||||||
<state width="1877" height="197" key="GridCell.Tab.1.left" timestamp="1594748167919">
|
<state width="1877" height="211" key="GridCell.Tab.1.left" timestamp="1594752102527">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state width="1877" height="197" key="GridCell.Tab.1.left/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594748167919" />
|
<state width="1877" height="211" key="GridCell.Tab.1.left/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594752102527" />
|
||||||
<state width="1877" height="197" key="GridCell.Tab.1.right" timestamp="1594748167920">
|
<state width="1877" height="211" key="GridCell.Tab.1.right" timestamp="1594752102527">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state width="1877" height="197" key="GridCell.Tab.1.right/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594748167920" />
|
<state width="1877" height="211" key="GridCell.Tab.1.right/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594752102527" />
|
||||||
<state x="461" y="162" key="SettingsEditor" timestamp="1588876397734">
|
<state x="461" y="162" key="SettingsEditor" timestamp="1588876397734">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
|
@ -266,14 +255,18 @@
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state x="656" y="343" key="com.intellij.ide.util.TipDialog/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1590119557040" />
|
<state x="656" y="343" key="com.intellij.ide.util.TipDialog/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1590119557040" />
|
||||||
<state x="-876" y="0" width="883" height="1047" key="dock-window-1" timestamp="1594704170924">
|
<state x="607" y="135" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser" timestamp="1594751055964">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state x="607" y="135" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594751055964" />
|
||||||
|
<state x="568" y="283" width="1348" height="1027" key="dock-window-1" timestamp="1594751513464">
|
||||||
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
|
</state>
|
||||||
|
<state x="568" y="283" width="1348" height="1027" key="dock-window-1/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594751513464" />
|
||||||
|
<state x="-941" y="0" width="948" height="1047" key="dock-window-2" timestamp="1594749231953">
|
||||||
<screen x="-1920" y="0" width="1920" height="1040" />
|
<screen x="-1920" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
<state x="-876" y="0" width="883" height="1047" key="dock-window-1/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594704170924" />
|
<state x="-941" y="0" width="948" height="1047" key="dock-window-2/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594749231953" />
|
||||||
<state x="-941" y="0" width="948" height="1047" key="dock-window-2" timestamp="1594707356239">
|
|
||||||
<screen x="-1920" y="0" width="1920" height="1040" />
|
|
||||||
</state>
|
|
||||||
<state x="-941" y="0" width="948" height="1047" key="dock-window-2/0.0.1920.1040/-1920.0.1920.1040@0.0.1920.1040" timestamp="1594707356239" />
|
|
||||||
<state x="656" y="252" width="607" height="536" key="find.popup" timestamp="1594704998390">
|
<state x="656" y="252" width="607" height="536" key="find.popup" timestamp="1594704998390">
|
||||||
<screen x="0" y="0" width="1920" height="1040" />
|
<screen x="0" y="0" width="1920" height="1040" />
|
||||||
</state>
|
</state>
|
||||||
|
|
|
@ -13,6 +13,7 @@ import org.bukkit.plugin.java.JavaPlugin;
|
||||||
/* @CHANGELOG (1.7-SNAPSHOT):
|
/* @CHANGELOG (1.7-SNAPSHOT):
|
||||||
* Update to Minecraft 1.16.1.
|
* Update to Minecraft 1.16.1.
|
||||||
* This jar file will also work with Minecraft 1.15.2, and 1.16.1.
|
* This jar file will also work with Minecraft 1.15.2, and 1.16.1.
|
||||||
|
* Foxes now sleep with their owner once again.
|
||||||
*/
|
*/
|
||||||
public final class TamableFoxes extends JavaPlugin implements Listener {
|
public final class TamableFoxes extends JavaPlugin implements Listener {
|
||||||
private static TamableFoxes plugin;
|
private static TamableFoxes plugin;
|
||||||
|
|
|
@ -24,12 +24,14 @@ public class EntityTamableFox extends EntityFox {
|
||||||
|
|
||||||
protected static final DataWatcherObject<Byte> tamed;
|
protected static final DataWatcherObject<Byte> tamed;
|
||||||
protected static final DataWatcherObject<Optional<UUID>> ownerUUID;
|
protected static final DataWatcherObject<Optional<UUID>> ownerUUID;
|
||||||
|
private static final DataWatcherObject<Byte> bx;
|
||||||
private static final Predicate<Entity> bD;
|
private static final Predicate<Entity> bD;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
tamed = DataWatcher.a(EntityTamableFox.class, DataWatcherRegistry.a);
|
tamed = DataWatcher.a(EntityTamableFox.class, DataWatcherRegistry.a);
|
||||||
ownerUUID = DataWatcher.a(EntityTamableFox.class, DataWatcherRegistry.o);
|
ownerUUID = DataWatcher.a(EntityTamableFox.class, DataWatcherRegistry.o);
|
||||||
|
|
||||||
|
bx = DataWatcher.a(EntityFox.class, DataWatcherRegistry.a);
|
||||||
bD = (entity) -> !entity.bm() && IEntitySelector.e.test(entity);
|
bD = (entity) -> !entity.bm() && IEntitySelector.e.test(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,51 +45,9 @@ public class EntityTamableFox extends EntityFox {
|
||||||
@Override
|
@Override
|
||||||
public void initPathfinder() {
|
public void initPathfinder() {
|
||||||
try {
|
try {
|
||||||
this.goalSelector.a(0, getFoxInnerPathfinderGoal("g")); // FloatGoal
|
|
||||||
|
|
||||||
this.goalSit = new FoxPathfinderGoalSit(this);
|
this.goalSit = new FoxPathfinderGoalSit(this);
|
||||||
this.goalSelector.a(1, goalSit);
|
this.goalSelector.a(1, goalSit);
|
||||||
|
|
||||||
this.goalSelector.a(2, getFoxInnerPathfinderGoal("b")); // FaceplantGoal
|
|
||||||
this.goalSelector.a(3, new FoxPathfinderGoalPanic(this, 2.2D)); // PanicGoal
|
|
||||||
this.goalSelector.a(4, getFoxInnerPathfinderGoal("e", Arrays.asList(1.0D), Arrays.asList(double.class))); // BreedGoal
|
|
||||||
|
|
||||||
// Avoid human only if not tamed
|
|
||||||
this.goalSelector.a(5, new PathfinderGoalAvoidTarget(this, EntityHuman.class, 16.0F, 1.6D, 1.4D, (entityliving) -> {
|
|
||||||
return !isTamed() && bD.test((EntityLiving) entityliving);
|
|
||||||
}));
|
|
||||||
|
|
||||||
// Avoid wolf if it is not tamed
|
|
||||||
this.goalSelector.a(5, new PathfinderGoalAvoidTarget(this, EntityWolf.class, 8.0F, 1.6D, 1.4D, (entityliving) -> {
|
|
||||||
try {
|
|
||||||
Method eFMethod = EntityFox.class.getDeclaredMethod("eF");
|
|
||||||
eFMethod.setAccessible(true);
|
|
||||||
boolean eF = (boolean) eFMethod.invoke(this);
|
|
||||||
eFMethod.setAccessible(false);
|
|
||||||
|
|
||||||
return !((EntityWolf) entityliving).isTamed() && !eF;
|
|
||||||
} catch (Exception e) {
|
|
||||||
return !((EntityWolf) entityliving).isTamed();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
|
|
||||||
this.goalSelector.a(8, new FoxPathfinderGoalMeleeAttack(this, 1.2000000476837158D, true));
|
|
||||||
this.goalSelector.a(9, new FoxPathfinderGoalFollowOwner(this, 1.3D, 10.0F, 2.0F, false));
|
|
||||||
this.goalSelector.a(6, getFoxInnerPathfinderGoal("u")); // StalkPrey
|
|
||||||
this.goalSelector.a(7, new o()); // Pounce
|
|
||||||
|
|
||||||
this.goalSelector.a(9, getFoxInnerPathfinderGoal("h", Arrays.asList(this, 1.25D), Arrays.asList(EntityFox.class, double.class))); // FollowParent
|
|
||||||
|
|
||||||
this.goalSelector.a(11, new PathfinderGoalLeapAtTarget(this, 0.4F));
|
|
||||||
this.goalSelector.a(12, new PathfinderGoalRandomStrollLand(this, 1.15D));
|
|
||||||
|
|
||||||
this.goalSelector.a(12, getFoxInnerPathfinderGoal("p")); // SearchForItems
|
|
||||||
this.goalSelector.a(13, getFoxInnerPathfinderGoal("j", Arrays.asList(this, EntityHuman.class, 24.0f), Arrays.asList(EntityInsentient.class, Class.class, float.class))); // LookAtPlayer
|
|
||||||
|
|
||||||
this.targetSelector.a(1, new FoxPathfinderGoalOwnerHurtByTarget(this));
|
|
||||||
this.targetSelector.a(2, new FoxPathfinderGoalOwnerHurtTarget(this));
|
|
||||||
this.targetSelector.a(3, (new FoxPathfinderGoalHurtByTarget(this, new Class[0])).a(new Class[0]));
|
|
||||||
|
|
||||||
// Wild animal attacking
|
// Wild animal attacking
|
||||||
Field bE = this.getClass().getSuperclass().getDeclaredField("bE");
|
Field bE = this.getClass().getSuperclass().getDeclaredField("bE");
|
||||||
bE.setAccessible(true);
|
bE.setAccessible(true);
|
||||||
|
@ -107,29 +67,56 @@ public class EntityTamableFox extends EntityFox {
|
||||||
return (!isTamed() || (Config.doesTamedAttackWildAnimals() && isTamed())) && entityliving instanceof EntityFishSchool;
|
return (!isTamed() || (Config.doesTamedAttackWildAnimals() && isTamed())) && entityliving instanceof EntityFishSchool;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
this.goalSelector.a(0, getFoxInnerPathfinderGoal("g")); // FoxFloatGoal
|
||||||
|
this.goalSelector.a(1, getFoxInnerPathfinderGoal("b")); // FaceplantGoal
|
||||||
|
this.goalSelector.a(2, new FoxPathfinderGoalPanic(this, 2.2D));
|
||||||
|
this.goalSelector.a(3, getFoxInnerPathfinderGoal("e", Arrays.asList(1.0D), Arrays.asList(double.class))); // FoxBreedGoal
|
||||||
|
|
||||||
|
this.goalSelector.a(4, new PathfinderGoalAvoidTarget(this, EntityHuman.class, 16.0F, 1.6D, 1.4D, (entityliving) -> {
|
||||||
|
return !isTamed() && bD.test((EntityLiving) entityliving) && !this.isDefending();
|
||||||
|
}));
|
||||||
|
this.goalSelector.a(4, new PathfinderGoalAvoidTarget(this, EntityWolf.class, 8.0F, 1.6D, 1.4D, (entityliving) -> {
|
||||||
|
return !((net.minecraft.server.v1_16_R1.EntityWolf)entityliving).isTamed() && !this.isDefending();
|
||||||
|
}));
|
||||||
|
|
||||||
|
this.goalSelector.a(5, getFoxInnerPathfinderGoal("u")); // StalkPreyGoal
|
||||||
|
this.goalSelector.a(6, getFoxInnerPathfinderGoal("o")); // FoxPounceGoal
|
||||||
|
this.goalSelector.a(7, getFoxInnerPathfinderGoal("l", Arrays.asList(1.2000000476837158D, true), Arrays.asList(double.class, boolean.class))); // FoxMeleeAttackGoal
|
||||||
|
this.goalSelector.a(8, getFoxInnerPathfinderGoal("h", Arrays.asList(this, 1.25D), Arrays.asList(EntityFox.class, double.class))); // FoxFollowParentGoal
|
||||||
|
this.goalSelector.a(8, new FoxPathfinderGoalSleepWithOwner(this));
|
||||||
|
this.goalSelector.a(9, new FoxPathfinderGoalFollowOwner(this, 1.3D, 10.0F, 2.0F, false));
|
||||||
|
this.goalSelector.a(10, new PathfinderGoalLeapAtTarget(this, 0.4F));
|
||||||
|
this.goalSelector.a(11, new PathfinderGoalRandomStrollLand(this, 1.0D));
|
||||||
|
this.goalSelector.a(11, getFoxInnerPathfinderGoal("p")); // FoxSearchForItemsGoal
|
||||||
|
this.goalSelector.a(12, getFoxInnerPathfinderGoal("j", Arrays.asList(this, EntityHuman.class, 24.0F), Arrays.asList(EntityInsentient.class, Class.class, float.class))); // FoxLookAtPlayerGoal
|
||||||
|
|
||||||
|
this.targetSelector.a(1, new FoxPathfinderGoalOwnerHurtByTarget(this));
|
||||||
|
this.targetSelector.a(2, new FoxPathfinderGoalOwnerHurtTarget(this));
|
||||||
|
this.targetSelector.a(3, (new FoxPathfinderGoalHurtByTarget(this)).a(new Class[0]));
|
||||||
|
|
||||||
untamedGoals = new ArrayList<>();
|
untamedGoals = new ArrayList<>();
|
||||||
|
|
||||||
// Sleep
|
// Sleep
|
||||||
PathfinderGoal sleep = getFoxInnerPathfinderGoal("t");
|
PathfinderGoal sleep = getFoxInnerPathfinderGoal("t");
|
||||||
this.goalSelector.a(8, sleep);
|
this.goalSelector.a(7, sleep);
|
||||||
untamedGoals.add(sleep);
|
untamedGoals.add(sleep);
|
||||||
|
|
||||||
// PerchAndSearch (Random sitting?)
|
// PerchAndSearch (Random sitting?)
|
||||||
PathfinderGoal perchAndSearch = getFoxInnerPathfinderGoal("r");
|
PathfinderGoal perchAndSearch = getFoxInnerPathfinderGoal("r");
|
||||||
this.goalSelector.a(14, perchAndSearch);
|
this.goalSelector.a(13, perchAndSearch);
|
||||||
untamedGoals.add(perchAndSearch);
|
untamedGoals.add(perchAndSearch);
|
||||||
|
|
||||||
// EatBerries (Pick berry bushes)
|
// EatBerries (Pick berry bushes)
|
||||||
PathfinderGoal eatBerries = new f(1.2000000476837158D, 12, 2);
|
PathfinderGoal eatBerries = new f(1.2000000476837158D, 12, 2);
|
||||||
this.goalSelector.a(11, eatBerries);
|
this.goalSelector.a(10, eatBerries);
|
||||||
untamedGoals.add(eatBerries); // Maybe this should be configurable too?
|
untamedGoals.add(eatBerries); // Maybe this should be configurable too?
|
||||||
|
|
||||||
PathfinderGoal seekShelter = getFoxInnerPathfinderGoal("s", Arrays.asList(1.25D), Arrays.asList(double.class));
|
PathfinderGoal seekShelter = getFoxInnerPathfinderGoal("s", Arrays.asList(1.25D), Arrays.asList(double.class));
|
||||||
this.goalSelector.a(7, seekShelter); // SeekShelter
|
this.goalSelector.a(6, seekShelter); // SeekShelter
|
||||||
untamedGoals.add(seekShelter);
|
untamedGoals.add(seekShelter);
|
||||||
|
|
||||||
PathfinderGoal strollThroughVillage = getFoxInnerPathfinderGoal("q", Arrays.asList(32, 200), Arrays.asList(int.class, int.class));
|
PathfinderGoal strollThroughVillage = getFoxInnerPathfinderGoal("q", Arrays.asList(32, 200), Arrays.asList(int.class, int.class));
|
||||||
this.goalSelector.a(10, strollThroughVillage); // StrollThroughVillage
|
this.goalSelector.a(9, strollThroughVillage); // StrollThroughVillage
|
||||||
untamedGoals.add(strollThroughVillage);
|
untamedGoals.add(strollThroughVillage);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -161,6 +148,16 @@ public class EntityTamableFox extends EntityFox {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// deobf: getFlag
|
||||||
|
private boolean t(int i) {
|
||||||
|
return ((Byte)this.datawatcher.get(bx) & i) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// deobf: 'isDefending' from 'eF'
|
||||||
|
public boolean isDefending() {
|
||||||
|
return this.t(128);
|
||||||
|
}
|
||||||
|
|
||||||
public static Object getPrivateField(String fieldName, Class clazz, Object object) {
|
public static Object getPrivateField(String fieldName, Class clazz, Object object) {
|
||||||
Field field;
|
Field field;
|
||||||
Object o = null;
|
Object o = null;
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
package net.seanomik.tamablefoxes.versions.version_1_15_R1.pathfinding;
|
|
||||||
|
|
||||||
import net.minecraft.server.v1_15_R1.EntityLiving;
|
|
||||||
import net.minecraft.server.v1_15_R1.PathfinderGoalMeleeAttack;
|
|
||||||
import net.minecraft.server.v1_15_R1.SoundEffects;
|
|
||||||
import net.seanomik.tamablefoxes.versions.version_1_15_R1.EntityTamableFox;
|
|
||||||
|
|
||||||
public class FoxPathfinderGoalMeleeAttack extends PathfinderGoalMeleeAttack {
|
|
||||||
EntityTamableFox tamableFox;
|
|
||||||
EntityLiving enemy;
|
|
||||||
|
|
||||||
public FoxPathfinderGoalMeleeAttack(EntityTamableFox tamableFox, double d0, boolean flag) {
|
|
||||||
super(tamableFox, d0, flag);
|
|
||||||
this.tamableFox = tamableFox;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void a(EntityLiving entityliving, double d0) {
|
|
||||||
double d1 = this.a(entityliving);
|
|
||||||
this.enemy = entityliving;
|
|
||||||
|
|
||||||
if (d0 <= d1 && this.b <= 0) {
|
|
||||||
this.b = 20;
|
|
||||||
this.a.B(entityliving);
|
|
||||||
tamableFox.a(SoundEffects.ENTITY_FOX_BITE, 1.0F, 1.0F);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void c() {
|
|
||||||
tamableFox.u(false);
|
|
||||||
super.c();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean a() {
|
|
||||||
return !tamableFox.isSitting() && !tamableFox.isSleeping() && !tamableFox.isCrouching() && !tamableFox.es() && super.a();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -15,16 +15,6 @@ public class FoxPathfinderGoalPanic extends PathfinderGoalPanic {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean a() {
|
public boolean a() {
|
||||||
try {
|
return !tamableFox.isTamed() && !tamableFox.isDefending() && super.a();
|
||||||
Method isDefendingMethod = EntityFox.class.getDeclaredMethod("eF");
|
|
||||||
isDefendingMethod.setAccessible(true);
|
|
||||||
boolean isDefending = (boolean) isDefendingMethod.invoke(tamableFox);
|
|
||||||
isDefendingMethod.setAccessible(false);
|
|
||||||
|
|
||||||
return !tamableFox.isTamed() && !isDefending && super.a();
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,130 @@
|
||||||
|
package net.seanomik.tamablefoxes.versions.version_1_15_R1.pathfinding;
|
||||||
|
|
||||||
|
import net.minecraft.server.v1_15_R1.*;
|
||||||
|
import net.seanomik.tamablefoxes.versions.version_1_15_R1.EntityTamableFox;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
public class FoxPathfinderGoalSleepWithOwner extends PathfinderGoal {
|
||||||
|
private final EntityTamableFox a;
|
||||||
|
private EntityHuman b;
|
||||||
|
private BlockPosition c;
|
||||||
|
private int d;
|
||||||
|
|
||||||
|
public FoxPathfinderGoalSleepWithOwner(EntityTamableFox tamableFox) {
|
||||||
|
this.a = tamableFox;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean a() {
|
||||||
|
if (!this.a.isTamed()) {
|
||||||
|
return false;
|
||||||
|
} else if (this.a.isSitting()) { // this.a.isWillSit()
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
EntityLiving entityliving = this.a.getOwner();
|
||||||
|
if (entityliving instanceof EntityHuman) {
|
||||||
|
this.b = (EntityHuman)entityliving;
|
||||||
|
if (!entityliving.isSleeping()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.a.h(this.b) > 100.0D) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
BlockPosition blockposition = new BlockPosition(this.b);
|
||||||
|
IBlockData iblockdata = this.a.world.getType(blockposition);
|
||||||
|
if (iblockdata.getBlock().a(TagsBlock.BEDS)) {
|
||||||
|
EnumDirection enumdirection = (EnumDirection)iblockdata.get(BlockBed.FACING);
|
||||||
|
this.c = new BlockPosition(blockposition.getX() - enumdirection.getAdjacentX(), blockposition.getY(), blockposition.getZ() - enumdirection.getAdjacentZ());
|
||||||
|
return !this.g();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean g() {
|
||||||
|
List<EntityTamableFox> list = this.a.world.a(EntityTamableFox.class, (new AxisAlignedBB(this.c)).g(2.0D));
|
||||||
|
Iterator iterator = list.iterator();
|
||||||
|
|
||||||
|
EntityTamableFox entityTamableFox;
|
||||||
|
do {
|
||||||
|
do {
|
||||||
|
if (!iterator.hasNext()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
entityTamableFox = (EntityTamableFox) iterator.next();
|
||||||
|
} while(entityTamableFox == this.a);
|
||||||
|
} while(!entityTamableFox.isSleeping()); // !entityTamableFox.eY()
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean b() {
|
||||||
|
//!this.a.isWillSit()
|
||||||
|
return this.a.isTamed() && !this.a.isSitting() && this.b != null && this.b.isSleeping() && this.c != null && !this.g();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void c() {
|
||||||
|
if (this.c != null) {
|
||||||
|
this.a.setSitting(false);
|
||||||
|
this.a.getNavigation().a((double)this.c.getX(), (double)this.c.getY(), (double)this.c.getZ(), 1.100000023841858D);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void d() {
|
||||||
|
this.a.setSleeping(false);
|
||||||
|
float f = this.a.world.f(1.0F);
|
||||||
|
if (this.b.ef() >= 100 && (double)f > 0.77D && (double)f < 0.8D && (double)this.a.world.getRandom().nextFloat() < 0.7D) {
|
||||||
|
this.h();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.d = 0;
|
||||||
|
//this.a.v(false); // setRelaxStateOne
|
||||||
|
this.a.getNavigation().o();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void h() {
|
||||||
|
Random random = this.a.getRandom();
|
||||||
|
BlockPosition.MutableBlockPosition blockposition_mutableblockposition = new BlockPosition.MutableBlockPosition();
|
||||||
|
blockposition_mutableblockposition.g(this.a.getChunkCoordinates());
|
||||||
|
this.a.a((double)(blockposition_mutableblockposition.getX() + random.nextInt(11) - 5), (double)(blockposition_mutableblockposition.getY() + random.nextInt(5) - 2), (double)(blockposition_mutableblockposition.getZ() + random.nextInt(11) - 5), false);
|
||||||
|
blockposition_mutableblockposition.g(this.a.getChunkCoordinates());
|
||||||
|
LootTable loottable = this.a.world.getMinecraftServer().getLootTableRegistry().getLootTable(LootTables.ak);
|
||||||
|
LootTableInfo.Builder loottableinfo_builder = (new LootTableInfo.Builder((WorldServer)this.a.world)).set(LootContextParameters.POSITION, blockposition_mutableblockposition).set(LootContextParameters.THIS_ENTITY, this.a).a(random);
|
||||||
|
List<ItemStack> list = loottable.populateLoot(loottableinfo_builder.build(LootContextParameterSets.GIFT));
|
||||||
|
Iterator iterator = list.iterator();
|
||||||
|
|
||||||
|
while(iterator.hasNext()) {
|
||||||
|
ItemStack itemstack = (ItemStack)iterator.next();
|
||||||
|
this.a.world.addEntity(new EntityItem(this.a.world, (double)blockposition_mutableblockposition.getX() - (double)MathHelper.sin(this.a.aH * 0.017453292F), (double)blockposition_mutableblockposition.getY(), (double)blockposition_mutableblockposition.getZ() + (double)MathHelper.cos(this.a.aH * 0.017453292F), itemstack));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void e() {
|
||||||
|
if (this.b != null && this.c != null) {
|
||||||
|
this.a.setSitting(false);
|
||||||
|
this.a.getNavigation().a((double)this.c.getX(), (double)this.c.getY(), (double)this.c.getZ(), 1.100000023841858D);
|
||||||
|
if (this.a.h(this.b) < 2.5D) {
|
||||||
|
++this.d;
|
||||||
|
if (this.d > 16) {
|
||||||
|
this.a.setSleeping(true);
|
||||||
|
//this.a.y(false); // setRelaxStateOne
|
||||||
|
} else {
|
||||||
|
this.a.a(this.b, 45.0F, 45.0F);
|
||||||
|
//this.a.y(true); // setRelaxStateOne
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.a.setSleeping(false);
|
||||||
|
//this.a.x(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -69,11 +69,11 @@ public class EntityTamableFox extends EntityFox {
|
||||||
|
|
||||||
this.goalSelector.a(0, getFoxInnerPathfinderGoal("g")); // FoxFloatGoal
|
this.goalSelector.a(0, getFoxInnerPathfinderGoal("g")); // FoxFloatGoal
|
||||||
this.goalSelector.a(1, getFoxInnerPathfinderGoal("b")); // FaceplantGoal
|
this.goalSelector.a(1, getFoxInnerPathfinderGoal("b")); // FaceplantGoal
|
||||||
this.goalSelector.a(2, new FoxPathfinderGoalPanic(this, 2.2D)); // FoxPanicGoal
|
this.goalSelector.a(2, new FoxPathfinderGoalPanic(this, 2.2D));
|
||||||
this.goalSelector.a(3, getFoxInnerPathfinderGoal("e", Arrays.asList(1.0D), Arrays.asList(double.class))); // FoxBreedGoal
|
this.goalSelector.a(3, getFoxInnerPathfinderGoal("e", Arrays.asList(1.0D), Arrays.asList(double.class))); // FoxBreedGoal
|
||||||
|
|
||||||
this.goalSelector.a(4, new PathfinderGoalAvoidTarget(this, EntityHuman.class, 16.0F, 1.6D, 1.4D, (entityliving) -> {
|
this.goalSelector.a(4, new PathfinderGoalAvoidTarget(this, EntityHuman.class, 16.0F, 1.6D, 1.4D, (entityliving) -> {
|
||||||
return !isTamed() && bC.test((EntityLiving) entityliving);
|
return !isTamed() && bC.test((EntityLiving) entityliving) && !this.isDefending();
|
||||||
}));
|
}));
|
||||||
this.goalSelector.a(4, new PathfinderGoalAvoidTarget(this, EntityWolf.class, 8.0F, 1.6D, 1.4D, (entityliving) -> {
|
this.goalSelector.a(4, new PathfinderGoalAvoidTarget(this, EntityWolf.class, 8.0F, 1.6D, 1.4D, (entityliving) -> {
|
||||||
return !((EntityWolf)entityliving).isTamed() && !this.isDefending();
|
return !((EntityWolf)entityliving).isTamed() && !this.isDefending();
|
||||||
|
@ -94,8 +94,6 @@ public class EntityTamableFox extends EntityFox {
|
||||||
this.goalSelector.a(12, getFoxInnerPathfinderGoal("j", Arrays.asList(this, EntityHuman.class, 24.0f),
|
this.goalSelector.a(12, getFoxInnerPathfinderGoal("j", Arrays.asList(this, EntityHuman.class, 24.0f),
|
||||||
Arrays.asList(EntityInsentient.class, Class.class, float.class))); // LookAtPlayer
|
Arrays.asList(EntityInsentient.class, Class.class, float.class))); // LookAtPlayer
|
||||||
|
|
||||||
//this.goalSelector.a(10, new EntityFox.f(1.2000000476837158D, 12, 2));
|
|
||||||
|
|
||||||
this.targetSelector.a(1, new FoxPathfinderGoalOwnerHurtByTarget(this));
|
this.targetSelector.a(1, new FoxPathfinderGoalOwnerHurtByTarget(this));
|
||||||
this.targetSelector.a(2, new FoxPathfinderGoalOwnerHurtTarget(this));
|
this.targetSelector.a(2, new FoxPathfinderGoalOwnerHurtTarget(this));
|
||||||
this.targetSelector.a(3, (new FoxPathfinderGoalHurtByTarget(this)).a(new Class[0]));
|
this.targetSelector.a(3, (new FoxPathfinderGoalHurtByTarget(this)).a(new Class[0]));
|
||||||
|
|
|
@ -63,7 +63,7 @@ public class FoxPathfinderGoalSleepWithOwner extends PathfinderGoal {
|
||||||
|
|
||||||
entityTamableFox = (EntityTamableFox) iterator.next();
|
entityTamableFox = (EntityTamableFox) iterator.next();
|
||||||
} while(entityTamableFox == this.a);
|
} while(entityTamableFox == this.a);
|
||||||
} while(!entityTamableFox.eX() && true); // !entityTamableFox.eY()
|
} while(!entityTamableFox.isSleeping()); // !entityTamableFox.eY()
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,6 @@ net\seanomik\tamablefoxes\CommandSpawnTamableFox.class
|
||||||
net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalHurtByTarget.class
|
net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalHurtByTarget.class
|
||||||
net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalOwnerHurtTarget.class
|
net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalOwnerHurtTarget.class
|
||||||
net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalPanic.class
|
net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalPanic.class
|
||||||
net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalMeleeAttack.class
|
|
||||||
net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalFollowOwner.class
|
net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalFollowOwner.class
|
||||||
net\seanomik\tamablefoxes\io\LanguageConfig.class
|
net\seanomik\tamablefoxes\io\LanguageConfig.class
|
||||||
net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalOwnerHurtTarget.class
|
net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalOwnerHurtTarget.class
|
||||||
|
@ -21,5 +20,6 @@ net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoal
|
||||||
net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalPanic.class
|
net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalPanic.class
|
||||||
net\seanomik\tamablefoxes\versions\version_1_15_R1\NMSInterface_1_15_R1.class
|
net\seanomik\tamablefoxes\versions\version_1_15_R1\NMSInterface_1_15_R1.class
|
||||||
net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalSleepWithOwner.class
|
net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalSleepWithOwner.class
|
||||||
|
net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalSleepWithOwner.class
|
||||||
net\seanomik\tamablefoxes\Utils.class
|
net\seanomik\tamablefoxes\Utils.class
|
||||||
net\seanomik\tamablefoxes\io\Config.class
|
net\seanomik\tamablefoxes\io\Config.class
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalHurtByTarget.java
|
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalHurtByTarget.java
|
||||||
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalPanic.java
|
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalPanic.java
|
||||||
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalMeleeAttack.java
|
|
||||||
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalOwnerHurtByTarget.java
|
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalOwnerHurtByTarget.java
|
||||||
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_15_R1\EntityTamableFox.java
|
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_15_R1\EntityTamableFox.java
|
||||||
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\Utils.java
|
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\Utils.java
|
||||||
|
@ -17,7 +16,9 @@ D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tam
|
||||||
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalSit.java
|
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalSit.java
|
||||||
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalFollowOwner.java
|
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalFollowOwner.java
|
||||||
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalSit.java
|
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalSit.java
|
||||||
|
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_16_R1\pathfinding\FoxPathfinderGoalSleepWithOwner.java
|
||||||
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\io\LanguageConfig.java
|
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\io\LanguageConfig.java
|
||||||
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_15_R1\NMSInterface_1_15_R1.java
|
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_15_R1\NMSInterface_1_15_R1.java
|
||||||
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\CommandSpawnTamableFox.java
|
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\CommandSpawnTamableFox.java
|
||||||
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalOwnerHurtTarget.java
|
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalOwnerHurtTarget.java
|
||||||
|
D:\Code\java\spigotPlugins\myPlugins\TamableFoxes\src\main\java\net\seanomik\tamablefoxes\versions\version_1_15_R1\pathfinding\FoxPathfinderGoalSleepWithOwner.java
|
||||||
|
|
Loading…
Reference in New Issue