Java 类org.bukkit.scheduler.BukkitRunnable 实例源码

项目:SpigotBoard    文件:SBScoreboard.java   
@Override
public void enableScoreboard() {
       final Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
       final Objective obj = board.registerNewObjective("Spigotboard", "dummy");

       obj.setDisplaySlot(DisplaySlot.SIDEBAR);
       obj.setDisplayName(ChatColor.translateAlternateColorCodes('&', Main.instance.getConfig().getString("title")));

       new BukkitRunnable() {
           @Override
           public void run() {
               for(Player p : Bukkit.getOnlinePlayers()) {
                int count = Main.instance.getConfig().getList("text").size();

                PlaceholderUtils placeholders = new PlaceholderUtils(p);
                   for(Object text : Main.instance.getConfig().getList("text")){
                    obj.getScore(ChatColor.translateAlternateColorCodes('&', placeholders.replace(text.toString()))).setScore(count);
                    count--;
                   }
                   p.setScoreboard(board);
               }
           }
       }.runTaskTimer(Main.instance, 0, 20);
}
项目:HCFCore    文件:PlayerBoard.java   
public void setTemporarySidebar(final SidebarProvider provider, final long expiration) {
    if (this.removed.get()) {
        throw new IllegalStateException("Cannot update whilst board is removed");
    }
    this.temporaryProvider = provider;
    this.updateObjective();
    new BukkitRunnable() {
        public void run() {
            if (PlayerBoard.this.removed.get()) {
                this.cancel();
                return;
            }
            if (PlayerBoard.this.temporaryProvider == provider) {
                PlayerBoard.access$4(PlayerBoard.this, null);
                PlayerBoard.this.updateObjective();
            }
        }
    }.runTaskLaterAsynchronously((Plugin)this.plugin, expiration);
}
项目:mczone    文件:GameEvents.java   
@EventHandler
public void onPlayerRespawn(PlayerRespawnEvent event) {
    final Gamer g = Gamer.get(event.getPlayer());

    new BukkitRunnable() {

        @Override
        public void run() {
            Team t = Nexus.getRotary().getCurrentMap().getTeam(g);

            if (t == null) {
                g.teleport(Nexus.getRotary().getCurrentMap().getSpawnLocation());
                return;
            }

            g.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 20 * 5, 3));

            g.teleport(t.getSpawnLocation());
            g.run("give-kit");
        }

    }.runTaskLater(Nexus.getPlugin(), 1);
}
项目:PA    文件:Helpers.java   
public void lobbyScoreboard() {
    ScoreboardUtil board = new ScoreboardUtil(PAData.LOBBY.getPrefix(), "lobby");
    new BukkitRunnable() {
        @Override
        public void run() {
            if (u.getPlayer() == null) {
                board.reset();
                cancel();
                return;
            }

            if (!u.isOnline()) {
                board.reset();
                cancel();
                return;
            }

            board.setName(PAData.LOBBY.getOldPrefix());
            board.text(3, "§d ");
            board.text(2, "Rango: §" + PACmd.Grupo.groupColor(u.getUserData().getGrupo()) + u.getUserData().getGrupo().toString());
            board.text(1, "§d ");
            board.text(0, PACore.getIP().replace('&', '§'));
            board.build(u.getPlayer());
        }
    }.runTaskTimer(PALobby.getInstance(), 1, 20);
}
项目:Arcadia-Spigot    文件:KingOfTheHillGame.java   
@Override
public void onGameStart() {
    this.allowPVP = true;
    new BukkitRunnable() {
        public void run() {
            if(getAPI().getGameManager().getGameState() != GameState.INGAME) {
                this.cancel();
                return;
            }
            for(Player player : Bukkit.getOnlinePlayers()) {
                if(!getAPI().getGameManager().isAlive(player)) continue;
                if(hill.contains(player.getLocation())) {
                    ScoreSidebar scoreSidebar = (ScoreSidebar) getSidebar();
                    scoreSidebar.setScore(player, (scoreSidebar.getScore(player)+1));
                }
            }
        }
    }.runTaskTimer(this.getAPI().getPlugin(), 0, 20L);
}
项目:RPGInventory    文件:ItemListener.java   
@EventHandler(priority = EventPriority.MONITOR)
public void afterEquipChange(final InventoryDragEvent event) {
    final Player player = (Player) event.getWhoClicked();

    if (!InventoryManager.playerIsLoaded(player)) {
        return;
    }

    new BukkitRunnable() {
        @Override
        public void run() {
            InventoryView inventoryView = event.getView();
            for (int slot : event.getRawSlots()) {
                ItemStack item = inventoryView.getItem(slot);
                if (CustomItem.isCustomItem(item)) {
                    ItemManager.updateStats((Player) event.getWhoClicked());
                }
            }
        }
    }.runTaskLater(RPGInventory.getInstance(), 1);
}
项目:OpenRPG    文件:NPC.java   
public void spawn(OpenPlayer player) {
        PlayerConnection connection = player.getConnection();

        connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, this.entity));
        connection.sendPacket(new PacketPlayOutNamedEntitySpawn(this.entity));

//        if (this.sleeping) {
//            connection.sendPacket(new PacketPlayOutBed(this.entity, new BlockPosition(this.entity.locX, this.entity.locY - 1, this.entity.locZ)));
//        }

        new BukkitRunnable() {
            @Override
            public void run() {
                connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, entity));
            }
        }.runTaskLater(Main.getInstance(), 20 * 5);
    }
项目:OMGPI    文件:Game.java   
/**
 * Start game: discovery or get ready to start.
 */
public void game_start() {
    if (state == GameState.PRELOBBY) {
        event_game_preStart();
        if (settings.hasDiscovery) {
            OMGPlayer.link.values().forEach(p -> gamePreparer.player_start_discovery(p));
            event_game_discovery();
            state = GameState.DISCOVERY;
            broadcast(ChatColor.AQUA + "You have " + (settings.discoveryLength / 20) + " seconds to discover the map.");
            discoveryStartDelay = new BukkitRunnable() {
                public void run() {
                    game_readyToStart();
                }
            };
            discoveryStartDelay.runTaskLater(this, settings.discoveryLength);
        } else {
            OMGPlayer.link.values().forEach(p -> gamePreparer.player_start_nonDiscovery(p));
            game_readyToStart();
        }
    }
}
项目:black    文件:LiveElement.java   
@Override
public void displayOn(Inventory inventory, int locX, int locY) {
    frames[0].displayOn(inventory, locX, locY);

    new BukkitRunnable(){
        private int iterator;

        @Override
        public void run() {
            if (inventory.getViewers().isEmpty()) {
                this.cancel();
            } else {
                nextFrame().displayOn(inventory, locX, locY);
            }
        }

        private final Element nextFrame() {
            iterator = iterator + 1 < frames.length
                ? iterator + 1
                : 0;

            return frames[iterator];
        }
    }.runTaskTimer(plugin, 1, period);
}
项目:ZorahPractice    文件:PlayerTab.java   
public PlayerTab(Player player) {
    this.player = player;

    entries = new ArrayList<>();

    clear();

    if (!player.getScoreboard().equals(Bukkit.getScoreboardManager().getMainScoreboard())) {
        scoreboard = player.getScoreboard();
        assemble();
    } else {
        new BukkitRunnable() {
            @Override
            public void run() {
                scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
                player.setScoreboard(scoreboard);
                assemble();
            }
        }.runTask(PracticePlugin.getInstance());
    }

    playerTabs.add(this);
}
项目:Hub    文件:OpeningAnimationRunnable.java   
private void walk(Location location, Runnable callback)
{
    this.graou.getGraouEntity().getPathfinderGoalWalkToTile().setTileToWalk(location.getX(), location.getY(), location.getZ());

    new BukkitRunnable()
    {
        @Override
        public void run()
        {
            Optional<Entity> entity = ProximityUtils.getNearbyEntities(location, 3.0D).stream()
                    .filter(e -> e.getUniqueId() != null)
                    .filter(e -> e.getUniqueId() == OpeningAnimationRunnable.this.graou.getGraouEntity().getUniqueID())
                    .findAny();

            if (entity.isPresent())
            {
                OpeningAnimationRunnable.this.graou.getGraouEntity().getPathfinderGoalWalkToTile().cancel();
                OpeningAnimationRunnable.this.hub.getServer().getScheduler().runTask(OpeningAnimationRunnable.this.hub, callback);

                this.cancel();
            }
        }
    }.runTaskTimer(this.hub, 5L, 5L);
}
项目:skLib    文件:Main.java   
public static void sendMessage(final String channel, final String msg) {
    if (!connected) {
        return;
    }
    Jedis jedis = pool.getResource();
    new BukkitRunnable(){

        public void run() {
            if (!Main.connected) {
                return;
            }
            try {
                jedis.publish(channel, msg);
            }
            catch (Exception e) {
                e.printStackTrace();
            }
            jedis.close();
        }
    }.runTaskAsynchronously(plugin);
}
项目:OMGPI    文件:Game.java   
/**
 * Stop the game and reload OMGPI.
 */
public void game_stop() {
    if (state == GameState.INGAME) {
        OMGPlayer.link.values().forEach(p -> {
            if (p.team != spectatorTeam) {
                p.setTeam(spectatorTeam);
                if (p.played) player_reward(p, "winner");
            } else if (p.played) player_reward(p, "loser");
            p.play_sound_levelup();
        });
        broadcast(ChatColor.AQUA + "You will be sent to the prelobby in 10 seconds.");
        state = GameState.ENDING;
        if (infoBar != null) infoBar.removeAll();
        new BukkitRunnable() {
            public void run() {
                event_game_stop();
                OMGPI.instance.reload();
            }
        }.runTaskLater(OMGPI.instance, 200L);
    }
}
项目:HCFCore    文件:DeathbanListener.java   
@EventHandler(ignoreCancelled=true, priority=EventPriority.LOW)
/*     */   public void onPlayerDeath(PlayerDeathEvent event) {
/*  99 */     final Player player = event.getEntity();
/* 100 */     final Deathban deathban = this.plugin.getDeathbanManager().applyDeathBan(player, event.getDeathMessage());
/* 101 */     long remaining = deathban.getRemaining();
/* 102 */     if ((remaining <= 0L) || (player.hasPermission("hcf.deathban.bypass"))) {
/* 103 */       return;
/*     */     }
/*     */
/* 106 */     if ((RESPAWN_KICK_DELAY_MILLIS <= 0L) || (remaining < RESPAWN_KICK_DELAY_MILLIS)) {
/* 107 */       handleKick(player, deathban);
/* 108 */       return;
/*     */     }
/*     */
/*     */
/* 112 */     this.respawnTickTasks.put(player.getUniqueId(), new BukkitRunnable()
/*     */     {
            /*     */       public void run() {
/* 115 */         DeathbanListener.this.handleKick(player, deathban);
/*     */       }
/* 117 */     }.runTaskLater(this.plugin, RESPAWN_KICK_DELAY_TICKS).getTaskId());
/*     */   }
项目:HCFCore    文件:LoggerEntityHuman.java   
@Override
public void postSpawn(HCF plugin) {
    if (this.world.addEntity((Entity)this)) {
        Bukkit.getConsoleSender().sendMessage(String.format((Object)ChatColor.GOLD + "Combat logger of " + this.getName() + " has spawned at %.2f, %.2f, %.2f", this.locX, this.locY, this.locZ));
        MinecraftServer.getServer().getPlayerList().playerFileData.load((EntityHuman)this);
    } else {
        Bukkit.getConsoleSender().sendMessage(String.format((Object)ChatColor.RED + "Combat logger of " + this.getName() + " failed to spawned at %.2f, %.2f, %.2f", this.locX, this.locY, this.locZ));
    }
    this.removalTask = new BukkitRunnable(){

        public void run() {
            MinecraftServer.getServer().getPlayerList().sendAll((Packet)PacketPlayOutPlayerInfo.removePlayer((EntityPlayer)LoggerEntityHuman.this.getBukkitEntity().getHandle()));
            LoggerEntityHuman.this.destroy();
        }
    }.runTaskLater((Plugin)plugin, SettingsYML.COMBAT_LOG_DESPAWN_TICKS);
}
项目:Hub    文件:DeveloperRoomParkour.java   
@EventHandler
public void onPlayerResourcePackStatus(PlayerResourcePackStatusEvent event)
{
    if (!this.expected.contains(event.getPlayer().getUniqueId()) || event.getStatus() != PlayerResourcePackStatusEvent.Status.SUCCESSFULLY_LOADED)
        return;

    this.playMusic(event.getPlayer());

    new BukkitRunnable()
    {
        @Override
        public void run()
        {
            if (expected.contains(event.getPlayer().getUniqueId()))
                playMusic(event.getPlayer());
            else
                this.cancel();
        }
    }.runTaskTimer(this.hub, MUSIC_LENGTH, MUSIC_LENGTH);
}
项目:black    文件:LivePane.java   
@Override
public void displayOn(Inventory inventory) {
    frames[0].displayOn(inventory);

    new BukkitRunnable(){
        private int iterator;

        @Override
        public void run() {
            if (inventory.getViewers().isEmpty()) {
                this.cancel();
            } else {
                nextFrame().displayOn(inventory);
            }
        }

        private final Pane nextFrame() {
            iterator = iterator + 1 < frames.length
                ? iterator + 1
                : 0;

            return frames[iterator];
        }
    }.runTaskTimer(plugin, 1, period);
}
项目:InventoryAPI    文件:InventorySlotWatcher.java   
public void startListing() {
    if ( !active ) {
        scheduler = new BukkitRunnable() {
            @Override
            public void run() {
                if ( ( inventory.getContents()[slot] == null ) == ( lastItemStack == null ) ) {
                    if ( lastItemStack != null && !lastItemStack.equals( inventory.getContents()[slot] ) ) {
                        update( inventory.getContents()[slot] );
                    }
                }
                else {
                    update( inventory.getContents()[slot] );
                }
            }
        };
        scheduler.runTaskTimer(plugin, 1L, 1L );
        active = true;
    }
}
项目:DragonEggDrop    文件:DragonEggDrop.java   
private void doVersionCheck() {
    new BukkitRunnable() {
        @Override
        public void run() {
            try (BufferedReader reader = new BufferedReader(new InputStreamReader(new URL(SPIGET_LINK).openStream()))){
                JsonObject object = GSON.fromJson(reader, JsonObject.class);
                String currentVersion = getDescription().getVersion();
                String recentVersion = object.get("name").getAsString();

                if (!currentVersion.equals(recentVersion)) {
                    getLogger().info("New version available. Your Version = " + currentVersion + ". New Version = " + recentVersion);
                    newVersionAvailable = true;
                    newVersion = recentVersion;
                }
            } catch (IOException e) {
                getLogger().info("Could not check for a new version. Perhaps the website is down?");
            }
        }
    }.runTaskAsynchronously(this);
}
项目:FactionsXL    文件:FScoreboard.java   
public void setDefaultSidebar(final FSidebarProvider provider, int updateInterval) {
    if (!isSupportedByServer()) {
        return;
    }

    defaultProvider = provider;
    if (temporaryProvider == null) {
        // We have no temporary provider; update the BufferedObjective!
        updateObjective();
    }

    new BukkitRunnable() {
        @Override
        public void run() {
            if (removed || provider != defaultProvider) {
                cancel();
                return;
            }

            if (temporaryProvider == null) {
                updateObjective();
            }
        }
    }.runTaskTimer(plugin, updateInterval, updateInterval);
}
项目:ZorahPractice    文件:PlayerListener.java   
@EventHandler
public void onPlayerTabCreateEvent(PlayerTabCreateEvent event) {
    if (!PracticeConfiguration.USE_TAB) {
        return;
    }

    PlayerTab playerTab = event.getPlayerTab();

    new BukkitRunnable() {
        public void run() {
            if (playerTab == null || playerTab.getPlayer() == null || !playerTab.getPlayer().isOnline()) {
                this.cancel();
                return;
            }

            try {
                updateTab(playerTab);
            }
            catch (Exception e) {
                e.printStackTrace();
                this.cancel();
                playerTab.getPlayer().sendMessage(ChatColor.RED + "Failed to load your tab info, re-join if you want to re-attempt to load it.");
            }
        }
    }.runTaskTimerAsynchronously(PracticePlugin.getInstance(), 0L, 10L);
}
项目:HCFCore    文件:LoggerEntityHuman.java   
@Override
public void postSpawn(HCF plugin) {
    if (this.world.addEntity((Entity)this)) {
        Bukkit.getConsoleSender().sendMessage(String.format((Object)ChatColor.GOLD + "Combat logger of " + this.getName() + " has spawned at %.2f, %.2f, %.2f", this.locX, this.locY, this.locZ));
        MinecraftServer.getServer().getPlayerList().playerFileData.load((EntityHuman)this);
    } else {
        Bukkit.getConsoleSender().sendMessage(String.format((Object)ChatColor.RED + "Combat logger of " + this.getName() + " failed to spawned at %.2f, %.2f, %.2f", this.locX, this.locY, this.locZ));
    }
    this.removalTask = new BukkitRunnable(){

        public void run() {
            MinecraftServer.getServer().getPlayerList().sendAll((Packet)PacketPlayOutPlayerInfo.removePlayer((EntityPlayer)LoggerEntityHuman.this.getBukkitEntity().getHandle()));
            LoggerEntityHuman.this.destroy();
        }
    }.runTaskLater((Plugin)plugin, SettingsYML.COMBAT_LOG_DESPAWN_TICKS);
}
项目:MBedwars-Kits    文件:Events.java   
@EventHandler
public void onArenaStatusUpdateEvent(final ArenaStatusUpdateEvent event){
    // give every player the items of their kits if the arena is starting
    if(BedwarsAddonKits.kits.size() >= 1 && event.getStatusBefore() == ArenaStatus.Lobby && event.getStatus() == ArenaStatus.Running){
        // wait a secound before giving him his items because if we would give them him now, they would disappear
        new BukkitRunnable(){
            @Override
            public void run(){
                for(Player player:event.getArena().getPlayers()){
                    for(ItemStack is:BedwarsAddonKits.selectedKits.get(player).getItems())
                        player.getInventory().addItem(is);
                }
            }
        }.runTaskLater(BedwarsAddonKits.plugin, 20);
    }
}
项目:ZorahPractice    文件:Cache.java   
public static void storeInventory(Player player, boolean dead) {
    List<String> effects = new ArrayList<>();
    player.getActivePotionEffects().forEach(effect -> effects.add(effect.getType().getName() + " " + effect.getAmplifier() + " (" + TimeUtil.formatSeconds(effect.getDuration() / 20) + ")"));
    CachedInventory inv = getCachedInventory(player, dead);

    if (inventories.containsKey(player.getUniqueId())) {
        inventories.replace(player.getUniqueId(), inv);
    }
    else {
        inventories.put(player.getUniqueId(), inv);
    }

    new BukkitRunnable() {
        public void run() {
            if (inventories.containsKey(player.getUniqueId()) && inventories.get(player.getUniqueId()).getIdentifier().equals(inv.getIdentifier())) {
                inventories.remove(player.getUniqueId());
            }
        }
    }.runTaskLater(PracticePlugin.getInstance(), 20L * 60);
}
项目:AlphaLibary    文件:EndercrystalFakeUtil.java   
/**
 * Teleport a {@link FakeEndercrystal} to a specific {@link Location} in certain intervals, which is visible for all Players
 *
 * @param p             the {@link Player} to teleport the {@link FakeEndercrystal} for
 * @param to            the {@link Location} where the {@link FakeEndercrystal} should be teleported to
 * @param teleportCount the amount of teleportation that should be made
 * @param wait          the amount of time to wait 'till the next teleport starts
 * @param endercrystal  the {@link FakeEndercrystal} which should be teleported
 */
public static void splitTeleportBigItem(final Player p, final Location to, final int teleportCount, final long wait, final FakeEndercrystal endercrystal) {
    final Location currentLocation = endercrystal.getCurrentlocation();
    Vector between = to.toVector().subtract(currentLocation.toVector());

    final double toMoveInX = between.getX() / teleportCount;
    final double toMoveInY = between.getY() / teleportCount;
    final double toMoveInZ = between.getZ() / teleportCount;

    SPLIT_MAP.put(p.getName(), new BukkitRunnable() {
        public void run() {
            if (!LocationUtil.isSameLocation(currentLocation, to)) {
                teleportEndercrystal(p, currentLocation.add(new Vector(toMoveInX, toMoveInY, toMoveInZ)), endercrystal);
            } else
                this.cancel();
        }
    }.runTaskTimer(AlphaLibary.getInstance(), 0, wait));
}
项目:mczone    文件:KitEvents.java   
@EventHandler
public void onPlayerMove(PlayerMoveEvent event) {
    final Gamer g = Gamer.get(event.getPlayer());

    if (g.getVariable("spectator") != null)
        return;

    if (g.getVariable("kit") != Kit.get("tank"))
        return;

    g.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 1, 100), true);

    if (g.getPlayer().isSprinting()) {
        new BukkitRunnable() {
            public void run() {
                g.getPlayer().setSprinting(false);
            }
        }.runTaskLater(Nexus.getPlugin(), 1);
    }
}
项目:AlphaLibary    文件:MobFakeUtil.java   
/**
 * Teleport a {@link FakeMob} to a specific {@link Location} in certain intervals, which is visible for all Players
 *
 * @param p             the {@link Player} to teleport the {@link FakeMob} for
 * @param to            the {@link Location} where the {@link FakeMob} should be teleported to
 * @param teleportCount the amount of teleportation that should be made
 * @param wait          the amount of time to wait 'till the next teleport starts
 * @param mob           the {@link FakeMob} which should be teleported
 */
public static void splitTeleportMob(final Player p, final Location to, final int teleportCount, final long wait, final FakeMob mob) {
    final Location currentLocation = mob.getCurrentlocation();
    Vector between = to.toVector().subtract(currentLocation.toVector());

    final double toMoveInX = between.getX() / teleportCount;
    final double toMoveInY = between.getY() / teleportCount;
    final double toMoveInZ = between.getZ() / teleportCount;

    SPLIT_MAP.put(p.getName(), new BukkitRunnable() {
        public void run() {
            if (!LocationUtil.isSameLocation(currentLocation, to)) {
                teleportMob(p, currentLocation.add(new Vector(toMoveInX, toMoveInY, toMoveInZ)), mob);
            } else
                this.cancel();
        }
    }.runTaskTimer(AlphaLibary.getInstance(), 0, wait));
}
项目:AlphaLibary    文件:BigItemFakeUtil.java   
/**
 * Teleport a {@link FakeBigItem} to a specific {@link Location} in certain intervals, which is visible for all Players
 *
 * @param p             the {@link Player} to teleport the {@link FakeBigItem} for
 * @param to            the {@link Location} where the {@link FakeBigItem} should be teleported to
 * @param teleportCount the amount of teleportation that should be made
 * @param wait          the amount of time to wait 'till the next teleport starts
 * @param item          the {@link FakeBigItem} which should be teleported
 */
public static void splitTeleportBigItem(final Player p, final Location to, final int teleportCount, final long wait, final FakeBigItem item) {
    final Location currentLocation = item.getCurrentlocation();
    Vector between = to.toVector().subtract(currentLocation.toVector());

    final double toMoveInX = between.getX() / teleportCount;
    final double toMoveInY = between.getY() / teleportCount;
    final double toMoveInZ = between.getZ() / teleportCount;

    SPLIT_MAP.put(p.getName(), new BukkitRunnable() {
        public void run() {
            if (!LocationUtil.isSameLocation(currentLocation, to)) {
                teleportBigItem(p, currentLocation.add(new Vector(toMoveInX, toMoveInY, toMoveInZ)), item);
            } else
                this.cancel();
        }
    }.runTaskTimer(AlphaLibary.getInstance(), 0, wait));
}
项目:Locked    文件:Prison.java   
private void playTimeCounter() {
    new BukkitRunnable() {

        @Override
        public void run() {
            for (UUID uuid : playtime.keySet()) {
                playtime.put(uuid, playtime.get(uuid) + 1);
                if (playtime.get(uuid) % 3600 == 0) {
                    if (RankManager.isPrisoner(Bukkit.getPlayer(uuid))) {
                        Bukkit.getPlayer(uuid).setTotalExperience(Bukkit.getPlayer(uuid).getTotalExperience() + 100);
                    }
                }
            }
        }
    }.runTaskTimer(this, 0, 20);
}
项目:ZorahPractice    文件:KitEditManager.java   
private void finishEditing(Player player) {
    this.editKits.remove(player.getUniqueId());

    ManagerHandler.getEntityHider().showAllPlayers(player);
    PracticeProfile profile = ManagerHandler.getPlayerManager().getPlayerProfile(player);
    profile.setStatus(PlayerStatus.LOBBY);

    GameUtils.resetPlayer(player);
    player.updateInventory();

    new BukkitRunnable() {
        public void run() {
            player.getInventory().setContents(GameUtils.getLobbyInventory());
            player.updateInventory();
        }
    }.runTaskLater(PracticePlugin.getInstance(), 2L);

    ManagerHandler.getConfig().teleportToSpawn(player);
    player.sendMessage(ChatColor.GRAY + "You have been returned to spawn.");
}
项目:ZorahPractice    文件:TvTQueue.java   
private void startTask() {
    this.queueTask = new BukkitRunnable() {
        public void run() {
            if (playingAmount < 0) {
                playingAmount = 0;
            }

            Iterator<QueueData> iterator = searchList.iterator();

            while (iterator.hasNext()) {
                QueueData search = iterator.next();

                if (!iterator.hasNext()) {
                    continue;
                }

                QueueData found = iterator.next();

                createMatch(search, found);
            }
        }
    }.runTaskTimer(PracticePlugin.getInstance(), 0L, 2L);
}
项目:ZorahPractice    文件:StorageBackend.java   
private synchronized void createTables() {
    new BukkitRunnable() {
        public void run() {
            Connection connection = null;

            try {
                connection = poolManager.getConnection();
                connection.prepareStatement("CREATE TABLE IF NOT EXISTS `practice_profiles` (`id` INT(11) NOT NULL AUTO_INCREMENT, `player_name` VARCHAR(16) NOT NULL, `player_uuid` VARCHAR(36) NOT NULL, `playtime` BIGINT(20) NOT NULL DEFAULT '0', `ranked_wins` INT(11) NOT NULL DEFAULT '0', `ranked_losses` INT(11) NOT NULL DEFAULT '0', `unranked_wins` INT(11) NOT NULL DEFAULT '0', `unranked_losses` INT(11) NOT NULL DEFAULT '0', `matches_played` INT(11) NOT NULL DEFAULT '0', `global_rating` INT(11) NOT NULL DEFAULT '1000', PRIMARY KEY (`id`), UNIQUE (`player_uuid`));").executeUpdate();
                connection.prepareStatement("CREATE TABLE IF NOT EXISTS `practice_matches` (`id` int(11) NOT NULL AUTO_INCREMENT, `match_uuid` varchar(36) NOT NULL, `winner_name` varchar(16) NOT NULL, `winner_uuid` varchar(36) NOT NULL, `loser_name` varchar(16) NOT NULL, `loser_uuid` varchar(36) NOT NULL, `ladder` varchar(64) NOT NULL, `competitive` varchar(32) NOT NULL, `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `elo_change` int(5) NOT NULL, PRIMARY KEY (`id`));").executeUpdate();
            }
            catch (SQLException e) {
                if (!e.getMessage().contains("already exists")) {
                    PracticePlugin.getInstance().getLogger().severe("Failed createTables");
                    e.printStackTrace();
                }
            }
            finally {
                poolManager.close(connection, null, null);
            }
        }
    }.runTaskAsynchronously(PracticePlugin.getInstance());
}
项目:HCFCore    文件:DeathbanListener.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOW)
public void onPlayerDeath(PlayerDeathEvent event) {
    Player player = event.getEntity();
    Deathban deathban = plugin.getDeathbanManager().applyDeathBan(player, event.getDeathMessage());
    long remaining = deathban.getRemaining();
    if (remaining <= 0L || player.hasPermission(DeathbanListener.DEATH_BAN_BYPASS_PERMISSION)) {
        return;
    }

    if (DeathbanListener.RESPAWN_KICK_DELAY_MILLIS <= 0L || remaining < DeathbanListener.RESPAWN_KICK_DELAY_MILLIS) {
        this.handleKick(player, deathban);
        return;
    }

    // Let the player see the death screen for 10 seconds
    this.respawnTickTasks.put(player.getUniqueId(), new BukkitRunnable() {
        @Override
        public void run() {
            DeathbanListener.this.handleKick(player, deathban);
        }
    }.runTaskLater(plugin, DeathbanListener.RESPAWN_KICK_DELAY_TICKS).getTaskId());
}
项目:OnlineChecker-Spigot-SQL-Support    文件:SQLManager.java   
public SQLManager() {
    new BukkitRunnable() {

        @Override
        public void run() {
            if (loadList.size() <= 0) {
                return;
            }
            Iterator<String> iter = loadList.iterator();
            while (iter.hasNext()) {
                try {
                    Player p = Bukkit.getPlayer(UUID.fromString(iter.next()));
                    if (p == null || !p.isOnline()) {
                        iter.remove(); 
                        continue;
                    }
                } catch (Exception e) {
                    iter.remove();
                    continue;
                }
            }

        }
    }.runTaskTimer(Core.getInstance(), 0, 10);
}
项目:RPGInventory    文件:InventoryListener.java   
private void onItemDisappeared(PlayerEvent event, ItemStack item) {
    final Player player = event.getPlayer();
    final PlayerInventory inventory = player.getInventory();
    final int slotId = inventory.getHeldItemSlot();

    if (!InventoryManager.playerIsLoaded(player)) {
        return;
    }

    if (ItemUtils.isEmpty(inventory.getItemInMainHand()) || item.equals(inventory.getItemInMainHand())) {
        final Slot slot = InventoryManager.getQuickSlot(slotId);
        if (slot != null) {
            new BukkitRunnable() {
                @Override
                public void run() {
                    InventoryUtils.heldFreeSlot(player, slotId, InventoryUtils.SearchType.NEXT);
                    inventory.setItem(slotId, slot.getCup());
                }
            }.runTaskLater(RPGInventory.getInstance(), 1);
        }
    }
}
项目:HCFCore    文件:EnderPearlTimer.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onInventoryClick(InventoryClickEvent event) {
    HumanEntity humanEntity = event.getWhoClicked();
    if (humanEntity instanceof Player) {
        Player player = (Player) humanEntity;
        PearlNameFaker pearlNameFaker = itemNameFakes.get(player.getUniqueId());
        if (pearlNameFaker == null)
            return;

        // Required to prevent ghost items.
        int heldSlot = player.getInventory().getHeldItemSlot();
        if (event.getSlot() == heldSlot) {
            pearlNameFaker.setFakeItem(CraftItemStack.asNMSCopy(player.getItemInHand()), heldSlot);
        } else if (event.getHotbarButton() == heldSlot) {
            pearlNameFaker.setFakeItem(CraftItemStack.asNMSCopy(event.getCurrentItem()), event.getSlot());
            new BukkitRunnable() {
                @Override
                public void run() {
                    player.updateInventory();
                }
            }.runTask(plugin);
        }
    }
}
项目:mczone    文件:MySQL.java   
public boolean update(final String query) {
    new BukkitRunnable() {
        @Override
        public void run() {
            Statement statement = null;
            try {
                statement = connection.createStatement();
                statement.executeUpdate(query);
            } catch (SQLException e) {
                Chat.log("MySQL update failed: " + query);
                e.printStackTrace();
            }
        }
    }.runTaskAsynchronously(MCZone.getInstance());
    return true;
}
项目:mczone    文件:Map.java   
public void loadWorld() {
    new BukkitRunnable() {
        @Override
        public void run() {
            Bukkit.createWorld(new WorldCreator(getWorldName()));
            getWorld().setTime(6000 - (20 * 20));
            for (Location l : getSpawns())
                l.setWorld(getWorld());
            getSpecSpawn().setWorld(getWorld());

            for (Gamer g : Game.getTributes()) {
                g.clearVariable("parkour");
                g.setVariable("moveable", true);
                Location next = getNextSpawn(g.getPlayer());
                g.setVariable("spawn-block", next);

                g.teleport(next);
                g.setInvisible(false);
                g.setVariable("moveable", false);
                g.getPlayer().setHealth(20);
                g.clearInventory();
                g.clearScoreboard();
            }
        }
    }.runTask(SurvivalGames.getInstance());
}
项目:BedwarsXP    文件:ActionBarUtils.java   
public static void sendActionBar(final Player player, final String message,
        int duration) {
    sendActionBar(player, message);

    if (duration >= 0) {
        // Sends empty message at the end of the duration. Allows messages
        // shorter than 3 seconds, ensures precision.
        new BukkitRunnable() {
            @Override
            public void run() {
                sendActionBar(player, "");
            }
        }.runTaskLater(plugin, duration + 1);
    }

    // Re-sends the messages every 3 seconds so it doesn't go away from the
    // player's screen.
    while (duration > 60) {
        duration -= 60;
        int sched = duration % 60;
        new BukkitRunnable() {
            @Override
            public void run() {
                sendActionBar(player, message);
            }
        }.runTaskLater(plugin, (long) sched);
    }
}
项目:AsgardAscension    文件:RuneManager.java   
private void handleInvisibility(Player player, Rune rune) {
    for(Player p : Bukkit.getOnlinePlayers()) {
        p.hidePlayer(player);
    }
    new BukkitRunnable() {
        public void run() {
            if(player != null && player.isOnline()) {
                finish(player, true);
            }
        }
    }.runTaskLater(plugin, 100L);
}