Re-add PlayerGiveXpEvent & PlayerChangeLevelEvent (#6165)
This commit is contained in:
parent
8248eb6ea1
commit
94cbf72e39
5 changed files with 207 additions and 14 deletions
|
@ -425,7 +425,29 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1703,7 +1818,10 @@
|
@@ -1462,6 +1577,10 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
public void func_195068_e(int p_195068_1_) {
|
||||||
|
+ net.minecraftforge.event.entity.player.PlayerXpEvent.XpChange event = new net.minecraftforge.event.entity.player.PlayerXpEvent.XpChange(this, p_195068_1_);
|
||||||
|
+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event)) return;
|
||||||
|
+ p_195068_1_ = event.getAmount();
|
||||||
|
+
|
||||||
|
this.func_85039_t(p_195068_1_);
|
||||||
|
this.field_71106_cc += (float)p_195068_1_ / (float)this.func_71050_bK();
|
||||||
|
this.field_71067_cb = MathHelper.func_76125_a(this.field_71067_cb + p_195068_1_, 0, Integer.MAX_VALUE);
|
||||||
|
@@ -1501,6 +1620,10 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
public void func_82242_a(int p_82242_1_) {
|
||||||
|
+ net.minecraftforge.event.entity.player.PlayerXpEvent.LevelChange event = new net.minecraftforge.event.entity.player.PlayerXpEvent.LevelChange(this, p_82242_1_);
|
||||||
|
+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event)) return;
|
||||||
|
+ p_82242_1_ = event.getLevels();
|
||||||
|
+
|
||||||
|
this.field_71068_ca += p_82242_1_;
|
||||||
|
if (this.field_71068_ca < 0) {
|
||||||
|
this.field_71068_ca = 0;
|
||||||
|
@@ -1703,7 +1826,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public ITextComponent func_145748_c_() {
|
public ITextComponent func_145748_c_() {
|
||||||
|
@ -437,7 +459,7 @@
|
||||||
return this.func_208016_c(itextcomponent);
|
return this.func_208016_c(itextcomponent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1939,4 +2057,44 @@
|
@@ -1939,4 +2065,44 @@
|
||||||
return this.field_221260_g;
|
return this.field_221260_g;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,27 +19,21 @@
|
||||||
|
|
||||||
package net.minecraftforge.event.entity.player;
|
package net.minecraftforge.event.entity.player;
|
||||||
|
|
||||||
import net.minecraftforge.eventbus.api.Cancelable;
|
|
||||||
import net.minecraft.entity.item.ExperienceOrbEntity;
|
import net.minecraft.entity.item.ExperienceOrbEntity;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraftforge.eventbus.api.Cancelable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This event is called when a player collides with a EntityXPOrb on the ground.
|
* Use {@link PlayerXpEvent.PickupXp}
|
||||||
* The event can be canceled, and no further processing will be done.
|
|
||||||
*/
|
*/
|
||||||
@Cancelable
|
@Cancelable
|
||||||
public class PlayerPickupXpEvent extends PlayerEvent
|
@Deprecated
|
||||||
|
public class PlayerPickupXpEvent extends PlayerXpEvent.PickupXp
|
||||||
{
|
{
|
||||||
private final ExperienceOrbEntity orb;
|
|
||||||
|
|
||||||
public PlayerPickupXpEvent(PlayerEntity player, ExperienceOrbEntity orb)
|
public PlayerPickupXpEvent(PlayerEntity player, ExperienceOrbEntity orb)
|
||||||
{
|
{
|
||||||
super(player);
|
super(player, orb);
|
||||||
this.orb = orb;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExperienceOrbEntity getOrb()
|
|
||||||
{
|
|
||||||
return orb;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,121 @@
|
||||||
|
/*
|
||||||
|
* Minecraft Forge
|
||||||
|
* Copyright (c) 2016-2019.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation version 2.1
|
||||||
|
* of the License.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
package net.minecraftforge.event.entity.player;
|
||||||
|
|
||||||
|
import net.minecraft.entity.item.ExperienceOrbEntity;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
|
import net.minecraftforge.eventbus.api.Cancelable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PlayerXpEvent is fired whenever an event involving player experience occurs. <br>
|
||||||
|
* If a method utilizes this {@link net.minecraftforge.eventbus.api.Event} as its parameter, the method will
|
||||||
|
* receive every child event of this class.<br>
|
||||||
|
* <br>
|
||||||
|
* All children of this event are fired on the {@link MinecraftForge#EVENT_BUS}.
|
||||||
|
*/
|
||||||
|
public class PlayerXpEvent extends PlayerEvent
|
||||||
|
{
|
||||||
|
|
||||||
|
public PlayerXpEvent(PlayerEntity player)
|
||||||
|
{
|
||||||
|
super(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This event is fired after the player collides with an experience orb, but before the player has been given the experience.
|
||||||
|
* It can be cancelled, and no further processing will be done.
|
||||||
|
*/
|
||||||
|
@Cancelable
|
||||||
|
public static class PickupXp extends PlayerXpEvent
|
||||||
|
{
|
||||||
|
|
||||||
|
private final ExperienceOrbEntity orb;
|
||||||
|
|
||||||
|
public PickupXp(PlayerEntity player, ExperienceOrbEntity orb)
|
||||||
|
{
|
||||||
|
super(player);
|
||||||
|
this.orb = orb;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExperienceOrbEntity getOrb()
|
||||||
|
{
|
||||||
|
return orb;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This event is fired when the player's experience changes through the {@link PlayerEntity#giveExperiencePoints} method.
|
||||||
|
* It can be cancelled, and no further processing will be done.
|
||||||
|
*/
|
||||||
|
@Cancelable
|
||||||
|
public static class XpChange extends PlayerXpEvent
|
||||||
|
{
|
||||||
|
|
||||||
|
private int amount;
|
||||||
|
|
||||||
|
public XpChange(PlayerEntity player, int amount)
|
||||||
|
{
|
||||||
|
super(player);
|
||||||
|
this.amount = amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAmount()
|
||||||
|
{
|
||||||
|
return this.amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAmount(int amount)
|
||||||
|
{
|
||||||
|
this.amount = amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This event is fired when the player's experience level changes through the {@link PlayerEntity#addExperienceLevel} method.
|
||||||
|
* It can be cancelled, and no further processing will be done.
|
||||||
|
*/
|
||||||
|
@Cancelable
|
||||||
|
public static class LevelChange extends PlayerXpEvent
|
||||||
|
{
|
||||||
|
|
||||||
|
private int levels;
|
||||||
|
|
||||||
|
public LevelChange(PlayerEntity player, int levels)
|
||||||
|
{
|
||||||
|
super(player);
|
||||||
|
this.levels = levels;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLevels()
|
||||||
|
{
|
||||||
|
return this.levels;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLevels(int levels)
|
||||||
|
{
|
||||||
|
this.levels = levels;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
package net.minecraftforge.debug.entity.player;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import net.minecraftforge.event.entity.player.PlayerPickupXpEvent;
|
||||||
|
import net.minecraftforge.event.entity.player.PlayerXpEvent;
|
||||||
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
|
import net.minecraftforge.fml.common.Mod;
|
||||||
|
|
||||||
|
@Mod("player_xp_event_test")
|
||||||
|
@Mod.EventBusSubscriber()
|
||||||
|
public class PlayerXpEventTest
|
||||||
|
{
|
||||||
|
|
||||||
|
private static final boolean ENABLE = false;
|
||||||
|
private static Logger logger = LogManager.getLogger(PlayerXpEventTest.class);
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onPlayerXpEvent(PlayerXpEvent event)
|
||||||
|
{
|
||||||
|
if (!ENABLE) return;
|
||||||
|
logger.info("The PlayerXpEvent has been called!");
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onPlayerPickupXpOld(PlayerPickupXpEvent event)
|
||||||
|
{
|
||||||
|
if (!ENABLE) return;
|
||||||
|
logger.info("The deprecated PlayerPickupXpEvent has been called!");
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onPlayerPickupXp(PlayerXpEvent.PickupXp event)
|
||||||
|
{
|
||||||
|
if (!ENABLE) return;
|
||||||
|
logger.info("{} picked up an experience orb worth {}", event.getPlayer().getName().getString(), event.getOrb().getXpValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onPlayerXpChange(PlayerXpEvent.XpChange event)
|
||||||
|
{
|
||||||
|
if (!ENABLE) return;
|
||||||
|
logger.info("{} has been given {} experience", event.getPlayer().getName().getString(), event.getAmount());
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onPlayerLevelChange(PlayerXpEvent.LevelChange event)
|
||||||
|
{
|
||||||
|
if (!ENABLE) return;
|
||||||
|
logger.info("{} has changed {} levels", event.getPlayer().getName().getString(), event.getLevels());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -54,4 +54,6 @@ loaderVersion="[28,)"
|
||||||
[[mods]]
|
[[mods]]
|
||||||
modId="flower_pot_test"
|
modId="flower_pot_test"
|
||||||
[[mods]]
|
[[mods]]
|
||||||
modId="forgeblockstatesloader"
|
modId="player_xp_event_test"
|
||||||
|
[[mods]]
|
||||||
|
modId="forgeblockstatesloader"
|
||||||
|
|
Loading…
Reference in a new issue