--- a/net/minecraft/entity/item/EnderPearlEntity.java
+++ b/net/minecraft/entity/item/EnderPearlEntity.java
@@ -55,6 +55,8 @@
          if (entity instanceof ServerPlayerEntity) {
             ServerPlayerEntity serverplayerentity = (ServerPlayerEntity)entity;
             if (serverplayerentity.field_71135_a.func_147298_b().func_150724_d() && serverplayerentity.field_70170_p == this.field_70170_p && !serverplayerentity.func_70608_bn()) {
+               net.minecraftforge.event.entity.living.EnderTeleportEvent event = new net.minecraftforge.event.entity.living.EnderTeleportEvent(serverplayerentity, this.func_226277_ct_(), this.func_226278_cu_(), this.func_226281_cx_(), 5.0F);
+               if (!net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event)) { // Don't indent to lower patch size
                if (this.field_70146_Z.nextFloat() < 0.05F && this.field_70170_p.func_82736_K().func_223586_b(GameRules.field_223601_d)) {
                   EndermiteEntity endermiteentity = EntityType.field_200804_r.func_200721_a(this.field_70170_p);
                   endermiteentity.func_175496_a(true);
@@ -66,9 +68,10 @@
                   entity.func_184210_p();
                }
 
-               entity.func_70634_a(this.func_226277_ct_(), this.func_226278_cu_(), this.func_226281_cx_());
+               entity.func_70634_a(event.getTargetX(), event.getTargetY(), event.getTargetZ());
                entity.field_70143_R = 0.0F;
-               entity.func_70097_a(DamageSource.field_76379_h, 5.0F);
+               entity.func_70097_a(DamageSource.field_76379_h, event.getAttackDamage());
+               } //Forge: End
             }
          } else if (entity != null) {
             entity.func_70634_a(this.func_226277_ct_(), this.func_226278_cu_(), this.func_226281_cx_());
@@ -91,12 +94,12 @@
    }
 
    @Nullable
-   public Entity func_241206_a_(ServerWorld p_241206_1_) {
+   public Entity changeDimension(ServerWorld p_241206_1_, net.minecraftforge.common.util.ITeleporter teleporter) {
       Entity entity = this.func_234616_v_();
       if (entity != null && entity.field_70170_p.func_234923_W_() != p_241206_1_.func_234923_W_()) {
          this.func_212361_a((Entity)null);
       }
 
-      return super.func_241206_a_(p_241206_1_);
+      return super.changeDimension(p_241206_1_, teleporter);
    }
 }
