From 70c1354a4a96698758a88c032866288f79de6f5a Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sat, 24 Aug 2024 08:16:37 -0400 Subject: Initial commit --- .../plusplus/fbs/event/wish/entry/IWishEntry.class | Bin 0 -> 310 bytes .../plusplus/fbs/event/wish/entry/IWishEntry.java | 31 +++++ .../fbs/event/wish/entry/WishEntryDeath.class | Bin 0 -> 1699 bytes .../fbs/event/wish/entry/WishEntryDeath.java | 33 +++++ .../fbs/event/wish/entry/WishEntryExp.class | Bin 0 -> 1524 bytes .../fbs/event/wish/entry/WishEntryExp.java | 33 +++++ .../fbs/event/wish/entry/WishEntryGeneric.class | Bin 0 -> 5846 bytes .../fbs/event/wish/entry/WishEntryGeneric.java | 153 +++++++++++++++++++++ .../fbs/event/wish/entry/WishEntryHealth.class | Bin 0 -> 1671 bytes .../fbs/event/wish/entry/WishEntryHealth.java | 35 +++++ .../fbs/event/wish/entry/WishEntryMoney.class | Bin 0 -> 1657 bytes .../fbs/event/wish/entry/WishEntryMoney.java | 33 +++++ .../fbs/event/wish/entry/WishEntrySanity.class | Bin 0 -> 1629 bytes .../fbs/event/wish/entry/WishEntrySanity.java | 32 +++++ .../fbs/event/wish/entry/WishEntryText.class | Bin 0 -> 1696 bytes .../fbs/event/wish/entry/WishEntryText.java | 36 +++++ 16 files changed, 386 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/IWishEntry.class create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/IWishEntry.java create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryDeath.class create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryDeath.java create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryExp.class create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryExp.java create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryGeneric.class create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryGeneric.java create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryHealth.class create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryHealth.java create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryMoney.class create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryMoney.java create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntrySanity.class create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntrySanity.java create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryText.class create mode 100644 src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryText.java (limited to 'src/main/java/jp/plusplus/fbs/event/wish/entry') 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 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/event/wish/entry/IWishEntry.class 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の範囲で優先度を返す
+ * 数値が大きいほど判定が優先される + * @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 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryDeath.class 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 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryExp.class 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 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/event/wish/entry/WishEntryGeneric.class 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 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(""+domainAndName[0]+":"+domainAndName[1]); + + ArrayList[] tokens=new ArrayList[2]; + for(int i=0;i<2;i++){ + tokens[i]=new ArrayList(); // 名前を1文字ずつ区切ったトークン列 + for(char c : domainAndName[i].toCharArray()){ + if(c!=' ') tokens[i].add((Character)c); + } + } + + for(int i=0;i0){ + boolean perfect=(domainAndName[m].length()==itemDomainAndName[m].length()); + int length=itemDomainAndName[m].length(); + + ArrayList t=(ArrayList)tokens[m].clone(); + for(int k=0;k subItems=new ArrayList(); + item.getSubItems(item, item.getCreativeTab(), subItems); + + maxMatchItemStack=subItems.get(rand.nextInt(subItems.size())); + } + } + else{ + ArrayList tokens=new ArrayList(); // 名前を1文字ずつ区切ったトークン列 + // Java死ね + for(char c : string.toCharArray()){ + if(c!=' ') tokens.add((Character)c); + } + + for(int i=0;i subItems=new ArrayList(); + 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 t=(ArrayList)tokens.clone(); + for(int k=0;k