0

我在一个名为 Minecraft 的游戏中为我的“力场”编写了一个朋友系统。我的想法是,如果玩家不在好友列表中,玩家就会发起攻击。以下是我朋友系统和力场的所有代码。

public static boolean friends = true;
public static List friend = new ArrayList();

public static void friendsList(){
    if(friends){
        try{
            File file = new File("friends.txt");
            BufferedWriter bufferedwriter = new BufferedWriter(new FileWriter(file));
            for(int i = 0; i < friend.size(); i++){
                bufferedwriter.write((new StringBuilder()).append((String) friend.get(i)).append("\r\n").toString());
            }
            bufferedwriter.close();
        }
        catch(Exception exception){
            System.err.print(exception.toString());
        }
    }

力场:

if(Camb.nocheat){
    if (Camb.killaura)
      {

    hitDelay++;
        for(Object o: mc.theWorld.loadedEntityList){
    Entity e = (Entity)o;
        if(e != this && *******CHECK IF PLAYER IS NOT ON LIST******* && e instanceof EntityPlayer &&getDistanceToEntity(e) < 3.95D){
        if(e.isEntityAlive()){
        if(hitDelay >= 4){
            if(Camb.criticals){
               if(mc.thePlayer.isSprinting()==false){
                   if(mc.thePlayer.isJumping==false){
                   if(mc.thePlayer.onGround){
                       mc.thePlayer.jump();
                   }
                   }
               }


           }
        swingItem();
        mc.playerController.attackEntity(this, e);
        hitDelay = 0;
    break;

        }
        }
        }
        }
      }
    }

添加/删除/清除好友列表:

if(par1Str.startsWith("&friendadd")){
        Camb.friends = true;
        String as0[] = par1Str.split("");
        Camb.friend.add(as0[1]);
        mc.thePlayer.addChatMessage((new StringBuilder()).append("\2479[CAMB]\247e Added Friend.").append("").toString());
        Camb.friendsList();
        Camb.friends = false;
        return;
    }
    if(par1Str.startsWith("&friendremove")){
        Camb.friends = true;
        String as0[] = par1Str.split("");
        Camb.friend.remove(as0[1]);
        mc.thePlayer.addChatMessage((new StringBuilder()).append("\2479[CAMB]\247e Removed Friend.").append("").toString());
        Camb.friendsList();
        Camb.friends = false;
        return;
    }
    if(par1Str.startsWith("&friendclear")){
        Camb.friends = true;
        Camb.friend.clear();
        Camb.friendsList();
        mc.thePlayer.addChatMessage("\2479[CAMB]\247e Friends list cleared.");
        return;
    }

par1Str 是在聊天中输入的字符串。基本上是命令。此外,&friendremove 系统也已损坏。我不确定为什么。

谢谢,布拉德

4

2 回答 2

1

使用friend.contains(e). 它通过迭代检查是否相等。

如果此列表包含指定元素,则返回 true。更正式地说,当且仅当此列表包含至少一个元素 e 时才返回 true 使得(o==null ? e==null : o.equals(e))

于 2013-08-02T20:50:12.580 回答
0

我不太熟悉你用来做这个的 SDK,但你可以使用这个 oneliner 来检查一个元素是否在ArrayList.

myList.contains("friendname");

http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html#contains(java.lang.Object)

于 2013-08-02T20:51:56.437 回答