Example #1
0
  public void sendThisChunkToPlayer(EntityPlayerMP par1EntityPlayerMP) {
    if (this.playersInChunk.contains(par1EntityPlayerMP)) {
      par1EntityPlayerMP.playerNetServerHandler.sendPacketToPlayer(
          new Packet51MapChunk(
              PlayerManager.getWorldServer(this.thePlayerManager)
                  .getChunkFromChunkCoords(
                      this.chunkLocation.chunkXPos, this.chunkLocation.chunkZPos),
              true,
              0));
      this.playersInChunk.remove(par1EntityPlayerMP);
      par1EntityPlayerMP.loadedChunks.remove(this.chunkLocation);

      MinecraftForge.EVENT_BUS.post(new ChunkWatchEvent.UnWatch(chunkLocation, par1EntityPlayerMP));

      if (this.playersInChunk.isEmpty()) {
        long i =
            (long) this.chunkLocation.chunkXPos + 2147483647L
                | (long) this.chunkLocation.chunkZPos + 2147483647L << 32;
        PlayerManager.getChunkWatchers(this.thePlayerManager).remove(i);

        if (this.numberOfTilesToUpdate > 0) {
          PlayerManager.getChunkWatchersWithPlayers(this.thePlayerManager).remove(this);
        }

        this.thePlayerManager
            .getWorldServer()
            .theChunkProviderServer
            .unloadChunksIfNotNearSpawn(this.chunkLocation.chunkXPos, this.chunkLocation.chunkZPos);
      }
    }
  }
Example #2
0
  private void SetPlayerManager(JsonArray players, JsonObject turnTracker) {
    Player[] catanPlayers = new Player[players.size()];
    int longestRoad = turnTracker.getAsJsonPrimitive("longestRoad").getAsInt();
    int largestArmy = turnTracker.getAsJsonPrimitive("largestArmy").getAsInt();

    for (int i = 0; i < players.size(); i++) {
      if (!players.get(i).isJsonNull()) {
        JsonObject player = players.get(i).getAsJsonObject();
        int index = player.getAsJsonPrimitive("playerIndex").getAsInt();

        String name = player.getAsJsonPrimitive("name").getAsString();
        String color = player.getAsJsonPrimitive("color").getAsString();
        int playerId = player.getAsJsonPrimitive("playerID").getAsInt();
        int cities = player.getAsJsonPrimitive("cities").getAsInt();
        int settlements = player.getAsJsonPrimitive("settlements").getAsInt();
        int roads = player.getAsJsonPrimitive("roads").getAsInt();
        int victoryPoints = player.getAsJsonPrimitive("victoryPoints").getAsInt();

        Player newPlayer = new Player();
        newPlayer.setPoints(victoryPoints);
        try {
          newPlayer.setColor(color);
        } catch (InvalidColorException e) {
          e.printStackTrace();
        }
        if (longestRoad == index) {
          newPlayer.setLongestRoad(true);
        }
        if (largestArmy == index) {
          newPlayer.setLargestArmy(true);
        }

        newPlayer.setId(playerId);
        newPlayer.setCitiesRemaining(cities);
        newPlayer.setSettlementsRemaining(settlements);
        newPlayer.setRoadsRemaining(roads);
        newPlayer.setPlayerIndex(index);
        newPlayer.setName(name);

        // <========Construct part of player manager here============>
        catanPlayers[index] = newPlayer;
      }
    }
    // <========Construct player manager here============>
    PlayerManager newPlayerManager = new PlayerManager();
    newPlayerManager.setCatanPlayers(catanPlayers);
    newPlayerManager.setIndexOfLargestArmy(largestArmy);
    newPlayerManager.setIndexOfLongestRoad(longestRoad);

    this.playerManager = newPlayerManager;
  }
Example #3
0
 public PlayerInstance(PlayerManager par1PlayerManager, int par2, int par3) {
   this.thePlayerManager = par1PlayerManager;
   this.playersInChunk = new ArrayList();
   this.locationOfBlockChange = new short[64];
   this.numberOfTilesToUpdate = 0;
   this.chunkLocation = new ChunkCoordIntPair(par2, par3);
   par1PlayerManager.getWorldServer().theChunkProviderServer.loadChunk(par2, par3);
 }
Example #4
0
  private void SetTurnManager(JsonObject turnTracker)
      throws TurnIndexException, InvalidTurnStatusException, GeneralPlayerException {
    int currentTurn = turnTracker.getAsJsonPrimitive("currentTurn").getAsInt();
    String status = turnTracker.getAsJsonPrimitive("status").getAsString();

    PlayerTurnTracker playerTurnTracker =
        new PlayerTurnTracker(currentTurn, TurnType.toEnum(status));
    playerManager.setTurnTracker(playerTurnTracker);
  }
Example #5
0
 /** calculateHP HP表示用計算 */
 public void calculateHP() {
   countHP = percentHP;
   // プレイヤー情報取得
   player = PlayerManager.GetPlayer(0);
   // 現在の割合を取得
   percentHP = (float) player.GetHP() / (float) player.GetMaxHP();
   // いくつ減らすか計算
   countHP -= percentHP;
   calculateHP = false;
   stopHP = false;
 }
Example #6
0
 /** calculateChakra チャクラ表示用計算 */
 public void calculateChakra() {
   countChakra = percentChakra;
   // プレイヤー情報取得
   player = PlayerManager.GetPlayer(0);
   // 現在の割合を取得
   percentChakra = (float) player.GetChakra() / (float) player.GetMaxChakra();
   // いくつ減らすか計算
   countChakra -= percentChakra;
   calculateChakra = false;
   stopChakra = false;
 }
  @Override
  public void onApplicationEvent(AbstractSubProtocolEvent event) {
    MessageHeaders headers = event.getMessage().getHeaders();
    Principal user = SimpMessageHeaderAccessor.getUser(headers);

    if (event instanceof SessionConnectEvent) {
      String id = SimpMessageHeaderAccessor.getSessionId(headers);

      playerManager.addPlayer(id, user.getName());

      messagingTemplate.convertAndSend(
          "/topic/player/join", PlayerEntry.create(user.getName(), PlayerEntry.State.ACTIVE));
    } else if (event instanceof SessionDisconnectEvent) {
      SessionDisconnectEvent disconnectEvent = (SessionDisconnectEvent) event;

      playerManager.removePlayer(disconnectEvent.getSessionId());

      messagingTemplate.convertAndSend(
          "/topic/player/leave", PlayerEntry.create(user.getName(), PlayerEntry.State.DETACHED));
    }
  }
Example #8
0
 @Override
 public void onDisable() {
   try {
     am.save();
   } catch (IOException ex) {
     Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
   }
   if (spawn != null) {
     for (Player player : getServer().getOnlinePlayers()) {
       player.teleport(spawn);
       pm.backToNormal(player);
     }
   }
 }
Example #9
0
  public void b(EntityPlayer entityplayer) {
    if (this.b.contains(entityplayer)) {
      entityplayer.netServerHandler.sendPacket(
          new Packet51MapChunk(
              PlayerManager.a(this.playerManager).getChunkAt(this.location.x, this.location.z),
              true,
              0));
      this.b.remove(entityplayer);
      entityplayer.chunkCoordIntPairQueue.remove(this.location);
      // Forge start
      MinecraftForge.EVENT_BUS.post(new ChunkWatchEvent.UnWatch(this.location, entityplayer));
      // Forge end
      if (this.b.isEmpty()) {
        long i = (long) this.location.x + 2147483647L | (long) this.location.z + 2147483647L << 32;

        PlayerManager.b(this.playerManager).remove(i);
        if (this.dirtyCount > 0) {
          PlayerManager.c(this.playerManager).remove(this);
        }

        this.playerManager.a().chunkProviderServer.queueUnload(this.location.x, this.location.z);
      }
    }
  }
Example #10
0
  private void handleAlias(Player player, String alias, String message) {
    ChatPlayer cp = PlayerManager.getPlayer(player.getName(), plugin.name);
    if (cp.modes.contains(ChatPlayer.Mode.LOCKED)) {
      PluginUtil.send(cp.name, "You have been locked in your channel and may not change channels.");
      return;
    }

    String channel = aliases.get(alias);
    String read_perm = ChannelManager.getChannel(channel).read_permission;
    if (!read_perm.equals("")
        && !MCNSAChat3.permissions.has(player, "mcnsachat3.read." + read_perm)) {
      plugin
          .getLogger()
          .info(
              player.getName() + " attempted to read channel " + channel + " without permission!");
      PluginUtil.send(player.getName(), "&cYou don't have permission to do that!");
      return;
    }

    if (!message.trim().equals("")) {
      // send a message rather than changing
      String write_perm = ChannelManager.getChannel(channel).write_permission;
      if (!write_perm.equals("")
          && !MCNSAChat3.permissions.has(player, "mcnsachat3.write." + write_perm)) {
        plugin
            .getLogger()
            .info(
                player.getName()
                    + " attempted to write to channel "
                    + channel
                    + " without permission!");
        PluginUtil.send(player.getName(), "&cYou don't have permission to do that!");
        return;
      }
      if (cp.modes.contains(ChatPlayer.Mode.MUTE)
          || ChannelManager.getChannel(channel).modes.contains(ChatChannel.Mode.MUTE)) {
        PluginUtil.send(cp.name, "You are not allowed to speak right now.");
        return;
      }
      plugin.chat.chat(cp, message, channel);
      if (MCNSAChat3.thread != null)
        MCNSAChat3.thread.write(
            new PlayerChatPacket(cp, message, channel, PlayerChatPacket.Type.CHAT));
      return;
    }

    cp.changeChannels(channel.toLowerCase());
  }
Example #11
0
  public void a(int i, int j, int k) {
    if (this.dirtyCount == 0) {
      PlayerManager.c(this.playerManager).add(this);
    }

    this.f |= 1 << (j >> 4);
    if (this.dirtyCount < 64) {
      short short1 = (short) (i << 12 | k << 8 | j);

      for (int l = 0; l < this.dirtyCount; ++l) {
        if (this.dirtyBlocks[l] == short1) {
          return;
        }
      }

      this.dirtyBlocks[this.dirtyCount++] = short1;
    }
  }
Example #12
0
 public PlayerInstance(PlayerManager playermanager, int i, int j) {
   this.playerManager = playermanager;
   this.b = new ArrayList();
   this.dirtyBlocks = new short[64];
   this.dirtyCount = 0;
   this.location = new ChunkCoordIntPair(i, j);
   // CraftBukkit start
   playermanager
       .a()
       .chunkProviderServer
       .getChunkAt(
           i,
           j,
           new Runnable() {
             public void run() {
               PlayerInstance.this.loaded = true;
             }
           });
   // CraftBukkit end
 }
Example #13
0
  public void flagChunkForUpdate(int par1, int par2, int par3) {
    if (this.numberOfTilesToUpdate == 0) {
      PlayerManager.getChunkWatchersWithPlayers(this.thePlayerManager).add(this);
    }

    this.field_73260_f |= 1 << (par2 >> 4);

    // if (this.numberOfTilesToUpdate < 64) //Forge; Cache everything, so always run
    {
      short short1 = (short) (par1 << 12 | par3 << 8 | par2);

      for (int l = 0; l < this.numberOfTilesToUpdate; ++l) {
        if (this.locationOfBlockChange[l] == short1) {
          return;
        }
      }

      if (numberOfTilesToUpdate == locationOfBlockChange.length) {
        locationOfBlockChange =
            Arrays.copyOf(locationOfBlockChange, locationOfBlockChange.length << 1);
      }
      this.locationOfBlockChange[this.numberOfTilesToUpdate++] = short1;
    }
  }
Example #14
0
  public void a() {
    if (this.dirtyCount != 0) {
      int i;
      int j;
      int k;

      if (this.dirtyCount == 1) {
        i = this.location.x * 16 + (this.dirtyBlocks[0] >> 12 & 15);
        j = this.dirtyBlocks[0] & 255;
        k = this.location.z * 16 + (this.dirtyBlocks[0] >> 8 & 15);
        this.sendAll(new Packet53BlockChange(i, j, k, PlayerManager.a(this.playerManager)));
        if (PlayerManager.a(this.playerManager).isTileEntity(i, j, k)) {
          this.sendTileEntity(PlayerManager.a(this.playerManager).getTileEntity(i, j, k));
        }
      } else {
        int l;

        if (this.dirtyCount == 64) {
          i = this.location.x * 16;
          j = this.location.z * 16;
          this.sendAll(
              new Packet51MapChunk(
                  PlayerManager.a(this.playerManager).getChunkAt(this.location.x, this.location.z),
                  (this.f == 0xFFFF),
                  this
                      .f)); // CraftBukkit - send everything (including biome) if all sections
                            // flagged

          for (k = 0; k < 16; ++k) {
            if ((this.f & 1 << k) != 0) {
              l = k << 4;
              // Forge start
              // BugFix: 16 makes it load an extra chunk, which isn't associated with a player,
              // which makes it not unload unless a player walks near it.
              // ToDo: Find a way to efficiently clean abandoned chunks.
              // List list = PlayerManager.a(this.playerManager).getTileEntities(i, l, j, i + 16, l
              // + 16, j + 16);
              List list =
                  PlayerManager.a(this.playerManager)
                      .getTileEntities(i, l, j, i + 15, l + 16, j + 15);
              // Forge end
              for (int i1 = 0; i1 < list.size(); ++i1) {
                this.sendTileEntity((TileEntity) list.get(i1));
              }
            }
          }
        } else {
          this.sendAll(
              new Packet52MultiBlockChange(
                  this.location.x,
                  this.location.z,
                  this.dirtyBlocks,
                  this.dirtyCount,
                  PlayerManager.a(this.playerManager)));

          for (i = 0; i < this.dirtyCount; ++i) {
            j = this.location.x * 16 + (this.dirtyBlocks[i] >> 12 & 15);
            k = this.dirtyBlocks[i] & 255;
            l = this.location.z * 16 + (this.dirtyBlocks[i] >> 8 & 15);
            if (PlayerManager.a(this.playerManager).isTileEntity(j, k, l)) {
              this.sendTileEntity(PlayerManager.a(this.playerManager).getTileEntity(j, k, l));
            }
          }
        }
      }

      this.dirtyCount = 0;
      this.f = 0;
    }
  }
Example #15
0
 public List<Artist> getArtists() {
   if (PlayerManager.isFiltering()) {
     return artistExpander.getFilteredCache();
   }
   return artistExpander.getUnfilteredCache();
 }
 /**
  * add an active TriggerContext for a player
  *
  * @param player a bukkit player
  */
 public void createContext(final Player player) {
   playerManager.createContext(getEditorPlayer(player));
 }
Example #17
0
 /**
  * Get an instance of the wanted player
  *
  * @param player instance of bukkit player
  * @return
  */
 public static synchronized ACPlayer getPlayer(final Player player) {
   return PlayerManager.getInstance().demandACPlayer(player);
 }
 public int getEntityViewDistance() {
   return PlayerManager.getFurthestViewableBlock(this.getViewDistance());
 }
 @RequestMapping("/addAi")
 public @ResponseBody void addAi(
     @RequestBody com.scheible.risingempire.web.join.message.client.Player player)
     throws Exception {
   playerManager.addAi(player);
 }
 @RequestMapping("/players")
 public @ResponseBody List<PlayerEntry> players() {
   return playerManager.getPlayerEntries();
 }
 /**
  * delete an active TriggerContext for a player
  *
  * @param player a bukkit player
  */
 public void deleteContext(final Player player) {
   playerManager.cancelContext(getEditorPlayer(player));
 }
 public int func_72372_a() {
   return PlayerManager.func_72686_a(func_72395_o());
 }
Example #23
0
  public void sendChunkUpdate() {
    if (this.numberOfTilesToUpdate != 0) {
      int i;
      int j;
      int k;

      if (this.numberOfTilesToUpdate == 1) {
        i = this.chunkLocation.chunkXPos * 16 + (this.locationOfBlockChange[0] >> 12 & 15);
        j = this.locationOfBlockChange[0] & 255;
        k = this.chunkLocation.chunkZPos * 16 + (this.locationOfBlockChange[0] >> 8 & 15);
        this.sendToAllPlayersWatchingChunk(
            new Packet53BlockChange(i, j, k, PlayerManager.getWorldServer(this.thePlayerManager)));

        if (PlayerManager.getWorldServer(this.thePlayerManager).blockHasTileEntity(i, j, k)) {
          this.sendTileToAllPlayersWatchingChunk(
              PlayerManager.getWorldServer(this.thePlayerManager).getBlockTileEntity(i, j, k));
        }
      } else {
        int l;

        if (this.numberOfTilesToUpdate >= ForgeDummyContainer.clumpingThreshold) {
          i = this.chunkLocation.chunkXPos * 16;
          j = this.chunkLocation.chunkZPos * 16;
          this.sendToAllPlayersWatchingChunk(
              new Packet51MapChunk(
                  PlayerManager.getWorldServer(this.thePlayerManager)
                      .getChunkFromChunkCoords(
                          this.chunkLocation.chunkXPos, this.chunkLocation.chunkZPos),
                  false,
                  this.field_73260_f));

          /* Forge: Grabs ALL tile entities is costly on a modded server, only send needed ones
          for (k = 0; k < 16; ++k)
          {
              if ((this.field_73260_f & 1 << k) != 0)
              {
                  l = k << 4;
                  List list = PlayerManager.getWorldServer(this.thePlayerManager).getAllTileEntityInBox(i, l, j, i + 16, l + 16, j + 16);

                  for (int i1 = 0; i1 < list.size(); ++i1)
                  {
                      this.sendTileToAllPlayersWatchingChunk((TileEntity)list.get(i1));
                  }
              }
          }
          */
        } else {
          this.sendToAllPlayersWatchingChunk(
              new Packet52MultiBlockChange(
                  this.chunkLocation.chunkXPos,
                  this.chunkLocation.chunkZPos,
                  this.locationOfBlockChange,
                  this.numberOfTilesToUpdate,
                  PlayerManager.getWorldServer(this.thePlayerManager)));
        }

        { // Forge: Send only the tile entities that are updated, Adding this brace lets us keep the
          // indent and the patch small
          for (i = 0; i < this.numberOfTilesToUpdate; ++i) {
            j = this.chunkLocation.chunkXPos * 16 + (this.locationOfBlockChange[i] >> 12 & 15);
            k = this.locationOfBlockChange[i] & 255;
            l = this.chunkLocation.chunkZPos * 16 + (this.locationOfBlockChange[i] >> 8 & 15);

            if (PlayerManager.getWorldServer(this.thePlayerManager).blockHasTileEntity(j, k, l)) {
              this.sendTileToAllPlayersWatchingChunk(
                  PlayerManager.getWorldServer(this.thePlayerManager).getBlockTileEntity(j, k, l));
            }
          }
        }
      }

      this.numberOfTilesToUpdate = 0;
      this.field_73260_f = 0;
    }
  }
Example #24
0
 /**
  * Get an instance of the wanted player
  *
  * @param name name of the player
  * @return
  */
 public static synchronized ACPlayer getPlayer(final String name) {
   return PlayerManager.getInstance().demandACPlayer(name);
 }
Example #25
0
 public List<Album> getAlbums() {
   if (PlayerManager.isFiltering()) {
     return albumExpander.getFilteredCache();
   }
   return albumExpander.getUnfilteredCache();
 }
Example #26
0
 /**
  * Get all player having the select power
  *
  * @param power power to check
  * @return
  */
 public static List<ACPlayer> getPlayers(final String power) {
   return PlayerManager.getInstance().getACPlayerHavingPower(power);
 }
 /**
  * @param player a bukkit player
  * @return the EditorPlayer
  */
 public EditorPlayer getEditorPlayer(final Player player) {
   return playerManager.getEditorPlayer(player);
 }