-
-
Notifications
You must be signed in to change notification settings - Fork 307
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
113 changed files
with
18,809 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
<!-- Citizens build file --> | ||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
<modelVersion>4.0.0</modelVersion> | ||
<parent> | ||
<groupId>net.citizensnpcs</groupId> | ||
<artifactId>citizens-parent</artifactId> | ||
<version>2.0.22-SNAPSHOT</version> | ||
</parent> | ||
<artifactId>citizens-v1_12_R1</artifactId> | ||
|
||
<properties> | ||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||
<craftbukkit.version>1.12-pre6-SNAPSHOT</craftbukkit.version> | ||
</properties> | ||
|
||
<repositories> | ||
<repository> | ||
<id>everything</id> | ||
<url>http://repo.citizensnpcs.co</url> | ||
</repository> | ||
</repositories> | ||
|
||
<dependencies> | ||
<dependency> | ||
<groupId>${project.groupId}</groupId> | ||
<artifactId>citizens-main</artifactId> | ||
<version>${project.version}</version> | ||
<type>jar</type> | ||
<scope>provided</scope> | ||
</dependency> | ||
<dependency> | ||
<groupId>org.bukkit</groupId> | ||
<artifactId>craftbukkit</artifactId> | ||
<version>${craftbukkit.version}</version> | ||
<type>jar</type> | ||
<scope>provided</scope> | ||
</dependency> | ||
</dependencies> | ||
|
||
<build> | ||
<defaultGoal>clean package install</defaultGoal> | ||
<sourceDirectory>${basedir}/src/main/java</sourceDirectory> | ||
|
||
<plugins> | ||
<plugin> | ||
<groupId>org.apache.maven.plugins</groupId> | ||
<artifactId>maven-compiler-plugin</artifactId> | ||
<version>2.3.2</version> | ||
<configuration> | ||
<source>1.6</source> | ||
<target>1.6</target> | ||
</configuration> | ||
</plugin> | ||
|
||
<plugin> | ||
<groupId>org.apache.maven.plugins</groupId> | ||
<artifactId>maven-jar-plugin</artifactId> | ||
<version>2.3.2</version> | ||
</plugin> | ||
|
||
<plugin> | ||
<groupId>org.apache.maven.plugins</groupId> | ||
<artifactId>maven-shade-plugin</artifactId> | ||
<version>2.1</version> | ||
<executions> | ||
<execution> | ||
<phase>package</phase> | ||
<goals> | ||
<goal>shade</goal> | ||
</goals> | ||
</execution> | ||
</executions> | ||
</plugin> | ||
</plugins> | ||
</build> | ||
</project> |
174 changes: 174 additions & 0 deletions
174
v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/BatController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,174 @@ | ||
package net.citizensnpcs.nms.v1_12_R1.entity; | ||
|
||
import org.bukkit.Bukkit; | ||
import org.bukkit.craftbukkit.v1_12_R1.CraftServer; | ||
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftBat; | ||
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftEntity; | ||
import org.bukkit.entity.Bat; | ||
import org.bukkit.util.Vector; | ||
|
||
import net.citizensnpcs.api.event.NPCEnderTeleportEvent; | ||
import net.citizensnpcs.api.event.NPCPushEvent; | ||
import net.citizensnpcs.api.npc.NPC; | ||
import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl; | ||
import net.citizensnpcs.npc.CitizensNPC; | ||
import net.citizensnpcs.npc.ai.NPCHolder; | ||
import net.citizensnpcs.util.Util; | ||
import net.minecraft.server.v1_12_R1.DamageSource; | ||
import net.minecraft.server.v1_12_R1.EntityBat; | ||
import net.minecraft.server.v1_12_R1.NBTTagCompound; | ||
import net.minecraft.server.v1_12_R1.SoundEffect; | ||
import net.minecraft.server.v1_12_R1.World; | ||
|
||
public class BatController extends MobEntityController { | ||
public BatController() { | ||
super(EntityBatNPC.class); | ||
} | ||
|
||
@Override | ||
public Bat getBukkitEntity() { | ||
return (Bat) super.getBukkitEntity(); | ||
} | ||
|
||
public static class BatNPC extends CraftBat implements NPCHolder { | ||
private final CitizensNPC npc; | ||
|
||
public BatNPC(EntityBatNPC entity) { | ||
super((CraftServer) Bukkit.getServer(), entity); | ||
this.npc = entity.npc; | ||
} | ||
|
||
@Override | ||
public NPC getNPC() { | ||
return npc; | ||
} | ||
} | ||
|
||
public static class EntityBatNPC extends EntityBat implements NPCHolder { | ||
private final CitizensNPC npc; | ||
|
||
public EntityBatNPC(World world) { | ||
this(world, null); | ||
} | ||
|
||
public EntityBatNPC(World world, NPC npc) { | ||
super(world); | ||
this.npc = (CitizensNPC) npc; | ||
if (npc != null) { | ||
NMSImpl.clearGoals(goalSelector, targetSelector); | ||
setFlying(false); | ||
} | ||
} | ||
|
||
@Override | ||
protected SoundEffect cd() { | ||
return NMSImpl.getSoundEffect(npc, super.cd(), NPC.DEATH_SOUND_METADATA); | ||
} | ||
|
||
@Override | ||
public void collide(net.minecraft.server.v1_12_R1.Entity entity) { | ||
// this method is called by both the entities involved - cancelling | ||
// it will not stop the NPC from moving. | ||
super.collide(entity); | ||
if (npc != null) { | ||
Util.callCollisionEvent(npc, entity.getBukkitEntity()); | ||
} | ||
} | ||
|
||
@Override | ||
protected SoundEffect d(DamageSource damagesource) { | ||
return NMSImpl.getSoundEffect(npc, super.d(damagesource), NPC.HURT_SOUND_METADATA); | ||
} | ||
|
||
@Override | ||
public boolean d(NBTTagCompound save) { | ||
return npc == null ? super.d(save) : false; | ||
} | ||
|
||
@Override | ||
public void enderTeleportTo(double d0, double d1, double d2) { | ||
if (npc == null) | ||
super.enderTeleportTo(d0, d1, d2); | ||
NPCEnderTeleportEvent event = new NPCEnderTeleportEvent(npc); | ||
Bukkit.getPluginManager().callEvent(event); | ||
if (!event.isCancelled()) { | ||
super.enderTeleportTo(d0, d1, d2); | ||
} | ||
} | ||
|
||
@Override | ||
public void f(double x, double y, double z) { | ||
if (npc == null) { | ||
super.f(x, y, z); | ||
return; | ||
} | ||
if (NPCPushEvent.getHandlerList().getRegisteredListeners().length == 0) { | ||
if (!npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true)) | ||
super.f(x, y, z); | ||
return; | ||
} | ||
Vector vector = new Vector(x, y, z); | ||
NPCPushEvent event = Util.callPushEvent(npc, vector); | ||
if (!event.isCancelled()) { | ||
vector = event.getCollisionVector(); | ||
super.f(vector.getX(), vector.getY(), vector.getZ()); | ||
} | ||
// when another entity collides, this method is called to push the | ||
// NPC so we prevent it from doing anything if the event is | ||
// cancelled. | ||
} | ||
|
||
@Override | ||
public SoundEffect F() { | ||
return NMSImpl.getSoundEffect(npc, super.F(), NPC.AMBIENT_SOUND_METADATA); | ||
} | ||
|
||
@Override | ||
public CraftEntity getBukkitEntity() { | ||
if (npc != null && !(bukkitEntity instanceof NPCHolder)) { | ||
bukkitEntity = new BatNPC(this); | ||
} | ||
return super.getBukkitEntity(); | ||
} | ||
|
||
@Override | ||
public NPC getNPC() { | ||
return npc; | ||
} | ||
|
||
@Override | ||
public boolean isLeashed() { | ||
if (npc == null) { | ||
return super.isLeashed(); | ||
} | ||
boolean protectedDefault = npc.data().get(NPC.DEFAULT_PROTECTED_METADATA, true); | ||
if (!protectedDefault || !npc.data().get(NPC.LEASH_PROTECTED_METADATA, protectedDefault)) | ||
return super.isLeashed(); | ||
if (super.isLeashed()) { | ||
unleash(true, false); // clearLeash with client update | ||
} | ||
return false; // shouldLeash | ||
} | ||
|
||
@Override | ||
protected void L() { | ||
if (npc == null) { | ||
super.L(); | ||
} | ||
} | ||
|
||
@Override | ||
public void M() { | ||
if (npc == null) { | ||
super.M(); | ||
} else { | ||
NMSImpl.updateAI(this); | ||
npc.update(); | ||
} | ||
} | ||
|
||
public void setFlying(boolean flying) { | ||
setAsleep(flying); | ||
} | ||
} | ||
} |
Oops, something went wrong.