1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
package jp.plusplus.fbs.container.slot;
import cpw.mods.fml.common.FMLCommonHandler;
import jp.plusplus.fbs.AchievementRegistry;
import jp.plusplus.fbs.api.IPottery;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
/**
* Createdby pluslus_Fon 2015/06/08.
*/
public class SlotTakeOnly extends Slot{
protected int achievement;
public SlotTakeOnly(IInventory p_i1824_1_, int p_i1824_2_, int p_i1824_3_, int p_i1824_4_) {
this(p_i1824_1_, p_i1824_2_, p_i1824_3_, p_i1824_4_, 0);
}
public SlotTakeOnly(IInventory p_i1824_1_, int p_i1824_2_, int p_i1824_3_, int p_i1824_4_, int achievement){
super(p_i1824_1_, p_i1824_2_, p_i1824_3_, p_i1824_4_);
this.achievement=achievement;
}
@Override
public boolean isItemValid(ItemStack item){
return false;
}
@Override
public void onPickupFromSlot(EntityPlayer player, ItemStack stack) {
Item item=stack.getItem();
if(achievement==1){
if(item instanceof ItemBlock){
Block b=((ItemBlock) item).field_150939_a;
if(b instanceof IPottery){
player.triggerAchievement(AchievementRegistry.grade);
if(((IPottery) b).getGrade(stack.getTagCompound())== IPottery.PotteryGrade.SOULFUL){
player.triggerAchievement(AchievementRegistry.soulful);
}
}
}
}
else if(achievement==2){
FMLCommonHandler.instance().firePlayerCraftingEvent(player, stack, null);
}
super.onPickupFromSlot(player, stack);
}
}
|