@Override
  public void endChore() {
    if (!owner.worldObj.isRemote) {
      PacketDispatcher.sendPacketToAllPlayers(PacketHelper.createSyncPacket(owner));
      PacketDispatcher.sendPacketToAllPlayers(PacketHelper.createAddAIPacket(owner));
    } else {
      PacketDispatcher.sendPacketToServer(PacketHelper.createAddAIPacket(owner));
    }

    owner.addAI();

    hasEnded = true;
  }
Esempio n. 2
0
  @Override
  public void onPlayerLogin(EntityPlayer player) {
    // This occurs on server side
    //		ModelManager.getServerInstance().initNewPlayerToMap(player.username);
    //		PacketDispatcher.sendPacketToAllPlayers(PacketTypeHandler.convertToMinecraftPacketForm(new
    // PacketModelManData(player.username)));
    List playersList = player.worldObj.playerEntities;
    String[] playerNames = new String[playersList.size()];
    for (int i = 0; i < playersList.size(); i++) {
      playerNames[i] = ((EntityPlayer) playersList.get(i)).username;
    }
    //		PacketDispatcher.sendPacketToPlayer(PacketTypeHandler.convertToMinecraftPacketForm(new
    // PacketModelManData(playerNames)), (Player)player);

    InventoryManager.getServerInstance().initNewPlayer(player.username);
    PacketDispatcher.sendPacketToAllPlayers(
        PacketTypeHandler.convertToMinecraftPacketForm(
            new PacketInventoryManData(player.username)));
    PacketDispatcher.sendPacketToPlayer(
        PacketTypeHandler.convertToMinecraftPacketForm(new PacketInventoryManData(playerNames)),
        (Player) player);

    LifeformIndexManager.getServerInstance().initPlayerIfNecessary(player.username);
    int index = LifeformIndexManager.getServerInstance().getLifeformIndexOfPlayer(player.username);
    PacketDispatcher.sendPacketToPlayer(
        PacketTypeHandler.convertToMinecraftPacketForm(new PacketLifeformIndexToClient(index)),
        (Player) player);

    PacketDispatcher.sendPacketToPlayer(
        PacketTypeHandler.convertToMinecraftPacketForm(new PacketLFSMAll()), (Player) player);
  }
  @Override
  public void beginChore() {
    if (MCA.instance.isDedicatedServer) {
      if (!MCA.instance.modPropertiesManager.modProperties.server_allowWoodcuttingChore) {
        // End the chore and sync all clients so that the chore is stopped everywhere.
        endChore();
        PacketDispatcher.sendPacketToAllPlayers(PacketHelper.createSyncPacket(owner));
        owner
            .worldObj
            .getPlayerEntityByName(owner.lastInteractingPlayer)
            .addChatMessage("\u00a7cChore disabled by the server administrator.");
        return;
      }
    }

    if (!owner.worldObj.isRemote) {
      owner.say(
          LanguageHelper.getString(
              owner.worldObj.getPlayerEntityByName(owner.lastInteractingPlayer),
              owner,
              "chore.start.woodcutting",
              true));
    }

    owner.tasks.taskEntries.clear();
    hasBegun = true;
  }
  @Override
  public void handle() {
    if (tile.working) return;

    if (level == -1) {
      int index = tile.enchantments.indexOf(enchant);
      tile.removeLevel(index);
      tile.removeEnchant(index);
    } else {
      if (!tile.enchantments.contains(enchant)) {
        if (player instanceof EntityPlayer
            && EnchantmentManager.canApply(
                tile.getStackInSlot(0), Enchantment.enchantmentsList[enchant], tile.enchantments)
            && EnchantmentManager.canEnchantmentBeUsed(
                ((EntityPlayer) player).username, Enchantment.enchantmentsList[enchant])) {
          tile.appendEnchant(enchant);
          tile.appendLevel(1);
        }
      } else {
        int maxLevel = Enchantment.enchantmentsList[enchant].getMaxLevel();
        tile.setLevel(tile.enchantments.indexOf(enchant), Math.max(1, Math.min(maxLevel, level)));
      }
    }
    tile.updateAspectList();

    PacketDispatcher.sendPacketToAllPlayers(tile.getDescriptionPacket());
  }
  @Override
  public void doSpellCasterEffect(EntityPlayer caster) {
    caster.worldObj.playSoundAtEntity(caster, "mob.wither.idle", 1.0F, 1.0F);

    final EntitySkeleton witherSkeleton = new EntitySkeleton(caster.worldObj);
    witherSkeleton.setSkeletonType(1);
    witherSkeleton.setPosition(caster.posX, caster.posY, caster.posZ);

    caster.worldObj.spawnEntityInWorld(witherSkeleton);
    PacketDispatcher.sendPacketToAllPlayers(
        PacketHandler.createSummonGFXPacket(
            witherSkeleton.posX, witherSkeleton.posY, witherSkeleton.posZ));
  }
Esempio n. 6
0
  private void handlePacket(Packet250CustomPayload packet, Player player) throws IOException {
    DataInputStream in = new DataInputStream(new ByteArrayInputStream(packet.data));
    EntityPlayer play = (EntityPlayer) player;

    if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
      if (packet.channel.equals(Reference.CHANNEL + "REMOVE")) RadioUpdatePacket.execute(packet);
      else if (packet.channel.equals(Reference.CHANNEL + "TIMEUNTIL")) {
        int ticks = in.readInt();
        int minute = ticks / 20 / 60;
        int sec = (ticks / 20) - (minute * 60);
        play.addChatMessage(String.format("Next Song will begin in %d:%02d", minute, sec));
      } else if (packet.channel.equals(Reference.CHANNEL + "REQUEST")) {
        System.out.println("REQUEST RECIEVED CLIENT");
        RequestPacket.execute(in, packet);
      } else if (packet.channel.equals(Reference.CHANNEL + "MESS")) {
        String s = in.readUTF();
        if (s.equals("FALSE")) {
          Location a = new Location(in.readInt(), in.readInt(), in.readInt());
          ((TileEntityJux)
                      ModLoader.getMinecraftInstance().theWorld.getBlockTileEntity(a.x, a.y, a.z))
                  .isDisabled =
              false;
          ((TileEntityJux)
                      ModLoader.getMinecraftInstance().theWorld.getBlockTileEntity(a.x, a.y, a.z))
                  .done =
              false;
        } else {
          ((TileEntityJux)
                      ModLoader.getMinecraftInstance()
                          .theWorld
                          .getBlockTileEntity(in.readInt(), in.readInt(), in.readInt()))
                  .isDisabled =
              true;
          play.addChatMessage(s);
        }
      } else SongPacket.execute(in, packet);

    } else {
      EntityPlayerMP p = (EntityPlayerMP) play;
      if (packet.channel.equals(Reference.CHANNEL + "TIMEUNTIL")) {
        // System.out.println("received RadioUpdate packet from player");
        new RadioUpdatePacket(
            Reference.CHANNEL + "TIMEUNTIL",
            in.readUTF(),
            (int) p.posX,
            (int) p.posY,
            (int) p.posZ);
      } else if (packet.channel.contains(Reference.CHANNEL + "CHANGE")) {
        RadioUpdatePacket.execute(packet);
      } else if (packet.channel.equals(Reference.CHANNEL + "NEXT")) {
        System.out.println("received next");
        if (MinecraftServer.getServer().isSinglePlayer()) RadioInit.getStation(in.readUTF()).next();
        else if (MinecraftServer.getServer()
            .getConfigurationManager()
            .getOps()
            .contains(play.username.toLowerCase())) RadioInit.getStation(in.readUTF()).next();
      } else if (packet.channel.equals(Reference.CHANNEL + "REQUEST")) {
        new RequestPacket(Reference.CHANNEL + "REQUEST", in.readInt(), in.readInt(), in.readInt());
      } else PacketDispatcher.sendPacketToAllPlayers(packet);
    }
  }