1.12 conversion
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
package electroblob.wizardry.advancement;
|
||||
|
||||
import electroblob.wizardry.Wizardry;
|
||||
import net.minecraft.advancements.Advancement;
|
||||
import net.minecraft.advancements.AdvancementManager;
|
||||
import net.minecraft.advancements.AdvancementProgress;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
/**
|
||||
* This is a provisory class for the transition to 1.12
|
||||
* It contains an enum with all the advancements of this mod
|
||||
* and an helper to grant advancements on the server side only (like the command)
|
||||
*/
|
||||
public class AdvancementHelper {
|
||||
public enum EnumAdvancement {
|
||||
crystal,
|
||||
arcane_initiate,
|
||||
apprentice,
|
||||
master,
|
||||
all_spells,
|
||||
wizard_trade,
|
||||
buy_master_spell,
|
||||
freeze_blaze,
|
||||
charge_creeper,
|
||||
frankenstein,
|
||||
special_upgrade,
|
||||
craft_flask,
|
||||
elemental,
|
||||
armour_set,
|
||||
legendary,
|
||||
self_destruct,
|
||||
pig_tornado,
|
||||
jam_wizard,
|
||||
slime_skeleton,
|
||||
anger_wizard,
|
||||
defeat_evil_wizard,
|
||||
max_out_wand,
|
||||
element_master,
|
||||
identify_spell;
|
||||
}
|
||||
|
||||
public static boolean grantAdvancement(EntityPlayer player, EnumAdvancement advancementName) {
|
||||
if (player == null) { return false; }
|
||||
if (player.world.isRemote) { return true; }
|
||||
EntityPlayerMP player_mp = player.getServer().getPlayerList().getPlayerByUUID(player.getUniqueID());
|
||||
AdvancementManager am = player_mp.getServerWorld().getAdvancementManager();
|
||||
Advancement advancement = am.getAdvancement(new ResourceLocation(Wizardry.MODID, advancementName.name()));
|
||||
if (advancement == null) { return false; }
|
||||
AdvancementProgress advancementprogress = player_mp.getAdvancements().getProgress(advancement);
|
||||
if (!advancementprogress.isDone()) {
|
||||
for (String criteria : advancementprogress.getRemaningCriteria()) {
|
||||
player_mp.getAdvancements().grantCriterion(advancement, criteria);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user