summaryrefslogtreecommitdiff
path: root/src/main/java/jp/plusplus/fbs/event/wish
diff options
context:
space:
mode:
authorBenjamin Culkin <scorpress@gmail.com>2024-08-24 08:16:37 -0400
committerBenjamin Culkin <scorpress@gmail.com>2024-08-24 08:16:37 -0400
commit70c1354a4a96698758a88c032866288f79de6f5a (patch)
treeeca51294e84b90a4cb3230bc2c7900469e784184 /src/main/java/jp/plusplus/fbs/event/wish
Initial commitHEADtrunk
Diffstat (limited to 'src/main/java/jp/plusplus/fbs/event/wish')
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/ContainerWish.classbin0 -> 527 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/ContainerWish.java17
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/GuiWish.classbin0 -> 3693 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/GuiWish.java88
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/WishHandler$1.classbin0 -> 1221 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/WishHandler.classbin0 -> 3501 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/WishHandler.java74
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/IWishEntry.classbin0 -> 310 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/IWishEntry.java31
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryDeath.classbin0 -> 1699 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryDeath.java33
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryExp.classbin0 -> 1524 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryExp.java33
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryGeneric.classbin0 -> 5846 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryGeneric.java153
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryHealth.classbin0 -> 1671 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryHealth.java35
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryMoney.classbin0 -> 1657 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryMoney.java33
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntrySanity.classbin0 -> 1629 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntrySanity.java32
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryText.classbin0 -> 1696 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryText.java36
23 files changed, 565 insertions, 0 deletions
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/ContainerWish.class b/src/main/java/jp/plusplus/fbs/event/wish/ContainerWish.class
new file mode 100644
index 0000000..600231f
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/ContainerWish.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/ContainerWish.java b/src/main/java/jp/plusplus/fbs/event/wish/ContainerWish.java
new file mode 100644
index 0000000..fca62b9
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/ContainerWish.java
@@ -0,0 +1,17 @@
+package jp.plusplus.fbs.event.wish;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.inventory.Container;
+
+/**
+ * Created by plusplus_F on 2016/03/31.
+ */
+public class ContainerWish extends Container {
+
+ public ContainerWish(){}
+
+ @Override
+ public boolean canInteractWith(EntityPlayer p_75145_1_) {
+ return true;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/GuiWish.class b/src/main/java/jp/plusplus/fbs/event/wish/GuiWish.class
new file mode 100644
index 0000000..435e82b
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/GuiWish.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/GuiWish.java b/src/main/java/jp/plusplus/fbs/event/wish/GuiWish.java
new file mode 100644
index 0000000..7874ca7
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/GuiWish.java
@@ -0,0 +1,88 @@
+package jp.plusplus.fbs.event.wish;
+
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.container.ContainerContract;
+import jp.plusplus.fbs.gui.button.GuiButtonEnchantment;
+import jp.plusplus.fbs.packet.MessageGuiButtonWithString;
+import jp.plusplus.fbs.packet.MessageWish;
+import jp.plusplus.fbs.packet.PacketHandler;
+import net.minecraft.client.gui.GuiButton;
+import net.minecraft.client.gui.GuiTextField;
+import net.minecraft.client.gui.inventory.GuiContainer;
+import net.minecraft.client.resources.I18n;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.util.StatCollector;
+import org.lwjgl.input.Keyboard;
+import org.lwjgl.opengl.GL11;
+
+/**
+ * Created by plusplus_F on 2015/03/31.
+ */
+public class GuiWish extends GuiContainer {
+ public static final ResourceLocation rl = new ResourceLocation(FBS.MODID+":textures/gui/wish.png");
+ public GuiTextField textField;
+
+ public GuiWish() {
+ super(new ContainerWish());
+ this.ySize=37;
+ }
+
+ @Override
+ public void initGui() {
+ super.initGui();
+ int i = (this.width - this.xSize) / 2;
+ int j = (this.height - this.ySize) / 2;
+ this.allowUserInput = true;
+ Keyboard.enableRepeatEvents(true);
+
+ textField=new GuiTextField(fontRendererObj, i+9, j+17, 159, 9);
+ textField.setTextColor(-1);
+ textField.setDisabledTextColour(-1);
+ textField.setEnableBackgroundDrawing(false);
+ textField.setMaxStringLength(40);
+ }
+
+ @Override
+ public void onGuiClosed(){
+ super.onGuiClosed();
+ Keyboard.enableRepeatEvents(false);
+ PacketHandler.INSTANCE.sendToServer(new MessageWish(textField.getText()));
+ }
+
+ @Override
+ protected void drawGuiContainerForegroundLayer(int par1, int par2){
+ super.drawGuiContainerForegroundLayer(par1, par2);
+ this.fontRendererObj.drawString(StatCollector.translateToLocal("info.fbs.wish.0"), 6, 4, 0x404040);
+ }
+ @Override
+ protected void drawGuiContainerBackgroundLayer(float v, int i, int i1) {
+ GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
+
+ this.mc.getTextureManager().bindTexture(rl);
+
+ int k = (this.width - this.xSize) / 2;
+ int l = (this.height - this.ySize) / 2;
+ this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize);
+ }
+
+ @Override
+ protected void mouseClicked(int p_73864_1_, int p_73864_2_, int p_73864_3_) {
+ super.mouseClicked(p_73864_1_, p_73864_2_, p_73864_3_);
+ textField.mouseClicked(p_73864_1_, p_73864_2_, p_73864_3_);
+ }
+
+ @Override
+ protected void keyTyped(char p_73869_1_, int p_73869_2_) {
+ if(!textField.textboxKeyTyped(p_73869_1_, p_73869_2_)){
+ super.keyTyped(p_73869_1_, p_73869_2_);
+ }
+ }
+
+ @Override
+ public void drawScreen(int p_73863_1_, int p_73863_2_, float p_73863_3_) {
+ super.drawScreen(p_73863_1_, p_73863_2_, p_73863_3_);
+ GL11.glDisable(GL11.GL_LIGHTING);
+ GL11.glDisable(GL11.GL_BLEND);
+ textField.drawTextBox();
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/WishHandler$1.class b/src/main/java/jp/plusplus/fbs/event/wish/WishHandler$1.class
new file mode 100644
index 0000000..25f2f69
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/WishHandler$1.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/WishHandler.class b/src/main/java/jp/plusplus/fbs/event/wish/WishHandler.class
new file mode 100644
index 0000000..f482c7f
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/WishHandler.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/WishHandler.java b/src/main/java/jp/plusplus/fbs/event/wish/WishHandler.java
new file mode 100644
index 0000000..d6fecbb
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/WishHandler.java
@@ -0,0 +1,74 @@
+package jp.plusplus.fbs.event.wish;
+
+import jp.plusplus.fbs.event.wish.entry.*;
+import net.minecraft.entity.item.EntityItem;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.StatCollector;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+
+/**
+ * Created by plusplus_F on 2016/03/31.
+ */
+public class WishHandler {
+ private static WishHandler instance=new WishHandler();
+ private ArrayList<IWishEntry> wishEntries=new ArrayList<IWishEntry>();
+ private boolean isSorted=false;
+
+ private WishHandler(){}
+
+ public static void register(){
+ addWishEntry(new WishEntryGeneric());
+
+ addWishEntry(new WishEntryText("panty"));
+ addWishEntry(new WishEntryText("herobrine"));
+ addWishEntry(new WishEntryText("wish"));
+ addWishEntry(new WishEntryText("goddess"));
+ addWishEntry(new WishEntryText("achievement"));
+ addWishEntry(new WishEntryText("insanity"));
+
+ addWishEntry(new WishEntryMoney());
+ addWishEntry(new WishEntryDeath());
+ addWishEntry(new WishEntryExp());
+ addWishEntry(new WishEntryHealth());
+ addWishEntry(new WishEntrySanity());
+ }
+
+ public static void addWishEntry(IWishEntry entry){
+ instance.wishEntries.add(entry);
+ instance.isSorted=false;
+ }
+
+ public static void handleWish(EntityPlayer player, String wish){
+ if(!instance.isSorted){
+ instance.isSorted=true;
+ Collections.sort(instance.wishEntries, new Comparator<IWishEntry>() {
+ @Override
+ public int compare(IWishEntry o1, IWishEntry o2) {
+ float p=o2.priority()-o1.priority();
+ return p>0?1:(p<0?-1:0);
+ }
+ });
+ }
+
+ for(IWishEntry entry : instance.wishEntries){
+ if(entry.matches(wish)){
+ ItemStack itemStack=entry.get(player, wish);
+ if(itemStack!=null){
+ EntityItem entityItem=player.entityDropItem(itemStack, player.getEyeHeight());
+ if(entityItem!=null){
+ entityItem.delayBeforeCanPickup=0;
+ }
+ }
+ return;
+ }
+ }
+ }
+
+ public static String getGetMessage(String key){
+ return "<"+ StatCollector.translateToLocal("wish.fbs.goddess")+">"+StatCollector.translateToLocal("wish.fbs."+key+".get");
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/IWishEntry.class b/src/main/java/jp/plusplus/fbs/event/wish/entry/IWishEntry.class
new file mode 100644
index 0000000..230c9bc
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/IWishEntry.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/IWishEntry.java b/src/main/java/jp/plusplus/fbs/event/wish/entry/IWishEntry.java
new file mode 100644
index 0000000..71f8edb
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/IWishEntry.java
@@ -0,0 +1,31 @@
+package jp.plusplus.fbs.event.wish.entry;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+
+/**
+ * Created by plusplus_F on 2016/03/31.
+ */
+public interface IWishEntry {
+ /**
+ * 0.0f-1.0fの範囲で優先度を返す<br>
+ * 数値が大きいほど判定が優先される
+ * @return
+ */
+ public float priority();
+
+ /**
+ * プレイヤーの願いと一致するか判定する
+ * @param string 願い事
+ * @return 一致すればtrue
+ */
+ public boolean matches(String string);
+
+ /**
+ * 願いごとを叶える処理
+ * @param player 願ったプレイヤー
+ * @param string 願い事
+ * @return プレイヤーに与えるItemStack (Nullable)
+ */
+ public ItemStack get(EntityPlayer player, String string);
+}
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryDeath.class b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryDeath.class
new file mode 100644
index 0000000..f07be7a
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryDeath.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryDeath.java b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryDeath.java
new file mode 100644
index 0000000..9563aa2
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryDeath.java
@@ -0,0 +1,33 @@
+package jp.plusplus.fbs.event.wish.entry;
+
+import jp.plusplus.fbs.event.wish.WishHandler;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.StatCollector;
+
+import java.util.regex.Pattern;
+
+/**
+ * Created by plusplus_F on 2016/03/31.
+ */
+public class WishEntryDeath implements IWishEntry {
+ @Override
+ public float priority() {
+ return 1.f;
+ }
+
+ @Override
+ public boolean matches(String string) {
+ return Pattern.compile(StatCollector.translateToLocal("wish.fbs.death.regex"), Pattern.CASE_INSENSITIVE).matcher(string).matches();
+ }
+
+ @Override
+ public ItemStack get(EntityPlayer player, String string) {
+ player.addChatComponentMessage(new ChatComponentText(WishHandler.getGetMessage("death")));
+ player.attackEntityFrom(DamageSource.generic, 99999);
+ player.setDead();
+ return null;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryExp.class b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryExp.class
new file mode 100644
index 0000000..55dbc79
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryExp.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryExp.java b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryExp.java
new file mode 100644
index 0000000..1c63a22
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryExp.java
@@ -0,0 +1,33 @@
+package jp.plusplus.fbs.event.wish.entry;
+
+import jp.plusplus.fbs.event.wish.WishHandler;
+import net.minecraft.entity.boss.EntityDragon;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.StatCollector;
+
+import java.util.regex.Pattern;
+
+/**
+ * Created by plusplus_F on 2016/03/31.
+ */
+public class WishEntryExp implements IWishEntry {
+ @Override
+ public float priority() {
+ return 1.f;
+ }
+
+ @Override
+ public boolean matches(String string) {
+ return Pattern.compile(StatCollector.translateToLocal("wish.fbs.exp.regex"), Pattern.CASE_INSENSITIVE).matcher(string).matches();
+ }
+
+ @Override
+ public ItemStack get(EntityPlayer player, String string) {
+ player.addExperience(1000);
+ player.addChatComponentMessage(new ChatComponentText(WishHandler.getGetMessage("exp")));
+ return null;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryGeneric.class b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryGeneric.class
new file mode 100644
index 0000000..bad232e
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryGeneric.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryGeneric.java b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryGeneric.java
new file mode 100644
index 0000000..90e1346
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryGeneric.java
@@ -0,0 +1,153 @@
+package jp.plusplus.fbs.event.wish.entry;
+
+import com.google.common.collect.Maps;
+import cpw.mods.fml.common.registry.GameData;
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.alchemy.characteristic.CharacteristicBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+
+import java.util.*;
+
+/**
+ * Created by plusplus_F on 2016/03/31.
+ */
+public class WishEntryGeneric implements IWishEntry {
+ private static Integer[] itemIds;
+ private static String[] itemNames;
+ private Random rand=new Random();
+
+ @Override
+ public float priority() {
+ return 0.0f;
+ }
+
+ @Override
+ public boolean matches(String string) {
+ return true;
+ }
+
+ @Override
+ public ItemStack get(EntityPlayer player, String string) {
+ if(itemIds==null){
+ Map<String,Integer> idMapping = Maps.newHashMap();
+ GameData.itemRegistry.serializeInto(idMapping);
+
+ itemIds=new Integer[idMapping.size()];
+ idMapping.values().toArray(itemIds);
+ itemNames=new String[idMapping.size()];
+ idMapping.keySet().toArray(itemNames);
+ }
+
+
+ int maxMatchIndex=-1;
+ int maxMatchValue=0;
+ ItemStack maxMatchItemStack=null;
+
+ //------------------------------------------------------------------------------------
+ // 一致度の判定
+ //------------------------------------------------------------------------------------
+ if(string.contains(":")){ //ドメイン指定の名前かどうか判定して処理を分ける
+ String[] domainAndName=string.split(":");
+ FBS.logger.info("<Wish>"+domainAndName[0]+":"+domainAndName[1]);
+
+ ArrayList<Character>[] tokens=new ArrayList[2];
+ for(int i=0;i<2;i++){
+ tokens[i]=new ArrayList<Character>(); // 名前を1文字ずつ区切ったトークン列
+ for(char c : domainAndName[i].toCharArray()){
+ if(c!=' ') tokens[i].add((Character)c);
+ }
+ }
+
+ for(int i=0;i<itemIds.length;i++){
+ int tmp=0;
+ String[] itemDomainAndName=itemNames[i].split(":");
+ itemDomainAndName[0]=itemDomainAndName[0].trim();
+ itemDomainAndName[1]=itemDomainAndName[1].trim();
+
+ for(int m=0;m<2;m++){
+ if(domainAndName[m].length()>0){
+ boolean perfect=(domainAndName[m].length()==itemDomainAndName[m].length());
+ int length=itemDomainAndName[m].length();
+
+ ArrayList<Character> t=(ArrayList<Character>)tokens[m].clone();
+ for(int k=0;k<length && !t.isEmpty();k++){
+ char c=itemDomainAndName[m].charAt(k);
+ if(c==' ') continue;
+
+ if(t.contains(c)){
+ tmp+=50+rand.nextInt(15);
+ t.remove((Character)c);
+ }
+ else perfect=false;
+ }
+ if(perfect){
+ tmp+=10000; //完全に一致している場合、メチャ一致度を上げる
+ }
+ }
+ }
+
+ if(maxMatchValue<tmp){
+ maxMatchIndex=i;
+ maxMatchValue=tmp;
+ }
+ }
+
+ // ItemStack生成
+ if(maxMatchIndex!=-1){
+ Item item=GameData.getItemRegistry().getObjectById(itemIds[maxMatchIndex]);
+ ArrayList<ItemStack> subItems=new ArrayList<ItemStack>();
+ item.getSubItems(item, item.getCreativeTab(), subItems);
+
+ maxMatchItemStack=subItems.get(rand.nextInt(subItems.size()));
+ }
+ }
+ else{
+ ArrayList<Character> tokens=new ArrayList<Character>(); // 名前を1文字ずつ区切ったトークン列
+ // Java死ね
+ for(char c : string.toCharArray()){
+ if(c!=' ') tokens.add((Character)c);
+ }
+
+ for(int i=0;i<itemIds.length;i++){
+ Item item=GameData.getItemRegistry().getObjectById(itemIds[i]);
+ if(item==null) continue;
+
+ ArrayList<ItemStack> subItems=new ArrayList<ItemStack>();
+ item.getSubItems(item, item.getCreativeTab(), subItems);
+
+ // CreativeTabsに見える全てのアイテムについて調べる
+ for(ItemStack itemStack : subItems){
+ int tmp=0;
+ String name=itemStack.getDisplayName();
+
+ boolean perfect=(name.length()==string.length());
+ int length=name.length();
+ ArrayList<Character> t=(ArrayList<Character>)tokens.clone();
+ for(int k=0;k<length && !t.isEmpty();k++){
+ char c=name.charAt(k);
+ if(c==' ') continue;
+
+ if(t.contains(c)){
+ tmp+=50+rand.nextInt(15);
+ t.remove((Character)c);
+ }
+ else perfect=false;
+ }
+ if(perfect) tmp+=10000; //名前が完全に一致している場合、メチャ一致度を上げる
+
+ if(maxMatchValue<tmp){
+ maxMatchIndex=i;
+ maxMatchValue=tmp;
+ maxMatchItemStack=itemStack;
+ }
+ }
+ }
+ }
+
+ // アイテムを得る
+ return maxMatchItemStack!=null?maxMatchItemStack.copy():new ItemStack(Blocks.dirt);
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryHealth.class b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryHealth.class
new file mode 100644
index 0000000..e3fe684
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryHealth.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryHealth.java b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryHealth.java
new file mode 100644
index 0000000..a299a45
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryHealth.java
@@ -0,0 +1,35 @@
+package jp.plusplus.fbs.event.wish.entry;
+
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.api.FBSEntityPropertiesAPI;
+import jp.plusplus.fbs.event.wish.WishHandler;
+import jp.plusplus.fbs.mod.ForSS2;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.StatCollector;
+
+import java.util.regex.Pattern;
+
+/**
+ * Created by plusplus_F on 2016/03/31.
+ */
+public class WishEntryHealth implements IWishEntry {
+ @Override
+ public float priority() {
+ return 1.f;
+ }
+
+ @Override
+ public boolean matches(String string) {
+ return Pattern.compile(StatCollector.translateToLocal("wish.fbs.health.regex"), Pattern.CASE_INSENSITIVE).matcher(string).matches();
+ }
+
+ @Override
+ public ItemStack get(EntityPlayer player, String string) {
+ player.addChatComponentMessage(new ChatComponentText(WishHandler.getGetMessage("health")));
+ player.heal(100);
+ player.getFoodStats().addStats(20,1);
+ return null;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryMoney.class b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryMoney.class
new file mode 100644
index 0000000..8f634a8
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryMoney.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryMoney.java b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryMoney.java
new file mode 100644
index 0000000..26763b4
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryMoney.java
@@ -0,0 +1,33 @@
+package jp.plusplus.fbs.event.wish.entry;
+
+import jp.plusplus.fbs.event.wish.WishHandler;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.StatCollector;
+import shift.mceconomy2.api.MCEconomyAPI;
+
+import java.util.regex.Pattern;
+
+/**
+ * Created by plusplus_F on 2016/03/31.
+ */
+public class WishEntryMoney implements IWishEntry {
+ @Override
+ public float priority() {
+ return 1.f;
+ }
+
+ @Override
+ public boolean matches(String string) {
+ return Pattern.compile(StatCollector.translateToLocal("wish.fbs.money.regex"), Pattern.CASE_INSENSITIVE).matcher(string).matches();
+ }
+
+ @Override
+ public ItemStack get(EntityPlayer player, String string) {
+ MCEconomyAPI.addPlayerMP(player, (player.experienceLevel/3+1)*8000, false);
+ player.addChatComponentMessage(new ChatComponentText(WishHandler.getGetMessage("money")));
+ return null;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntrySanity.class b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntrySanity.class
new file mode 100644
index 0000000..9db355e
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntrySanity.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntrySanity.java b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntrySanity.java
new file mode 100644
index 0000000..96e5a95
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntrySanity.java
@@ -0,0 +1,32 @@
+package jp.plusplus.fbs.event.wish.entry;
+
+import jp.plusplus.fbs.api.FBSEntityPropertiesAPI;
+import jp.plusplus.fbs.event.wish.WishHandler;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.StatCollector;
+
+import java.util.regex.Pattern;
+
+/**
+ * Created by plusplus_F on 2016/03/31.
+ */
+public class WishEntrySanity implements IWishEntry {
+ @Override
+ public float priority() {
+ return 1.f;
+ }
+
+ @Override
+ public boolean matches(String string) {
+ return Pattern.compile(StatCollector.translateToLocal("wish.fbs.sanity.regex"), Pattern.CASE_INSENSITIVE).matcher(string).matches();
+ }
+
+ @Override
+ public ItemStack get(EntityPlayer player, String string) {
+ FBSEntityPropertiesAPI.AddSanity(player, 100, 1, true);
+ player.addChatComponentMessage(new ChatComponentText(WishHandler.getGetMessage("sanity")));
+ return null;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryText.class b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryText.class
new file mode 100644
index 0000000..ff14820
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryText.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryText.java b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryText.java
new file mode 100644
index 0000000..913a8a8
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryText.java
@@ -0,0 +1,36 @@
+package jp.plusplus.fbs.event.wish.entry;
+
+import jp.plusplus.fbs.event.wish.WishHandler;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.StatCollector;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Created by plusplus_F on 2016/03/31.
+ */
+public class WishEntryText implements IWishEntry {
+ protected String key;
+ public WishEntryText(String key){
+ this.key=key;
+ }
+
+ @Override
+ public float priority() {
+ return 1.f;
+ }
+
+ @Override
+ public boolean matches(String string) {
+ return Pattern.compile(StatCollector.translateToLocal("wish.fbs."+key+".regex"), Pattern.CASE_INSENSITIVE).matcher(string).matches();
+ }
+
+ @Override
+ public ItemStack get(EntityPlayer player, String string) {
+ player.addChatComponentMessage(new ChatComponentText(WishHandler.getGetMessage(key)));
+ return null;
+ }
+}