类org.bukkit.scheduler.BukkitScheduler源码实例Demo

下面列出了怎么用org.bukkit.scheduler.BukkitScheduler的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: Hawk   文件: ViolationLogger.java
public void updateFile() {
    if (!enabled) return;
    if (buffer.size() == 0) return;
    List<String> asyncList = new ArrayList<>(buffer);
    buffer.clear();
    BukkitScheduler hawkLogger = Bukkit.getServer().getScheduler();
    hawkLogger.runTaskAsynchronously(hawk, () -> {
        try (FileWriter fw = new FileWriter(storageFile, true);
             BufferedWriter bw = new BufferedWriter(fw);
             PrintWriter out = new PrintWriter(bw)) {
            for (String aBuffer : asyncList) {
                out.println(aBuffer);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    });
}
 
源代码2 项目: Plan   文件: PlanBukkitMocker.java
PlanBukkitMocker withServer() {
    Server serverMock = Mockito.mock(Server.class);
    doReturn("").when(serverMock).getIp();
    doReturn("Bukkit").when(serverMock).getName();
    doReturn("Bukkit").when(serverMock).getServerName();
    doReturn(25565).when(serverMock).getPort();
    doReturn("1.12.2").when(serverMock).getVersion();
    doReturn("32423").when(serverMock).getBukkitVersion();
    doReturn(TestConstants.SERVER_MAX_PLAYERS).when(serverMock).getMaxPlayers();
    ConsoleCommandSender sender = Mockito.mock(ConsoleCommandSender.class);
    doReturn(sender).when(serverMock).getConsoleSender();

    BukkitScheduler bukkitScheduler = Mockito.mock(BukkitScheduler.class);
    doReturn(bukkitScheduler).when(serverMock).getScheduler();

    doReturn(serverMock).when(planMock).getServer();
    return this;
}
 
源代码3 项目: CombatLogX   文件: ListenerLogin.java
@EventHandler(priority=EventPriority.MONITOR, ignoreCancelled=true)
public void onJoin(PlayerJoinEvent e) {
    Player player = e.getPlayer();
    player.setCanPickupItems(false);

    NPCManager npcManager = this.expansion.getNPCManager();
    NPC npc = npcManager.getNPC(player);
    if(npc != null) npc.despawn(DespawnReason.PLUGIN);
    
    Runnable task = () -> {
        punish(player);
        player.setCanPickupItems(true);
    };

    JavaPlugin plugin = this.expansion.getPlugin().getPlugin();
    BukkitScheduler scheduler = Bukkit.getScheduler();
    scheduler.runTaskLater(plugin, task, 1L);
}
 
源代码4 项目: CombatLogX   文件: TraitCombatLogX.java
@Override
public void run() {
    if(this.ticksUntilRemove > 0) {
        this.ticksUntilRemove--;
        return;
    }
    
    long survivalSeconds = getSurvivalSeconds();
    if(survivalSeconds < 0) return;
    
    Player enemy = getEnemy();
    ICombatLogX plugin = this.expansion.getPlugin();
    if(enemy != null && waitUntilEnemyEscape()) {
        ICombatManager combatManager = plugin.getCombatManager();
        if(combatManager.isInCombat(enemy)) return;
    }
    
    Runnable task = () -> {
        NPC npc = getNPC();
        npc.despawn(DespawnReason.PLUGIN);
    };

    JavaPlugin javaPlugin = plugin.getPlugin();
    BukkitScheduler scheduler = Bukkit.getScheduler();
    scheduler.runTaskLater(javaPlugin, task, 1L);
}
 
源代码5 项目: CombatLogX   文件: BossBarManager.java
public void removeBossBar(Player player, boolean onDisable) {
    ICombatLogX plugin = this.expansion.getPlugin();
    MultiVersionHandler<?> multiVersionHandler = plugin.getMultiVersionHandler();
    AbstractNMS nmsHandler = multiVersionHandler.getInterface();
    BossBarHandler bossBarHandler = nmsHandler.getBossBarHandler();
    
    if(onDisable || isDisabledGlobally() || isDisabled(player)) {
        bossBarHandler.removeBossBar(player);
        return;
    }

    String message = getEndedMessage(player);
    String color = getColor();
    String style = getStyle();
    bossBarHandler.updateBossBar(player, message, 0.0D, color, style);
    
    Runnable task = () -> bossBarHandler.removeBossBar(player);
    BukkitScheduler scheduler = Bukkit.getScheduler();
    scheduler.runTaskLater(plugin.getPlugin(), task, 20L);
}
 
源代码6 项目: CombatLogX   文件: ListenerLegacyItemPickup.java
private void sendMessage(Player player) {
    if(player == null) return;

    UUID uuid = player.getUniqueId();
    if(messageCooldownList.contains(uuid)) return;

    String message = this.plugin.getLanguageMessageColoredWithPrefix("cheat-prevention.items.no-pickup");
    this.plugin.sendMessage(player, message);
    messageCooldownList.add(uuid);

    BukkitScheduler scheduler = Bukkit.getScheduler();
    Runnable task = () -> messageCooldownList.remove(uuid);

    FileConfiguration config = this.expansion.getConfig("cheat-prevention.yml");
    long messageCooldown = 20L * config.getLong("message-cooldown");
    scheduler.runTaskLater(this.plugin.getPlugin(), task, messageCooldown);
}
 
源代码7 项目: CombatLogX   文件: ListenerRiptide.java
private void sendMessage(Player player) {
    if(player == null) return;

    UUID uuid = player.getUniqueId();
    if(messageCooldownList.contains(uuid)) return;

    String message = this.plugin.getLanguageMessageColoredWithPrefix("cheat-prevention.no-riptide");
    this.plugin.sendMessage(player, message);
    messageCooldownList.add(uuid);

    BukkitScheduler scheduler = Bukkit.getScheduler();
    Runnable task = () -> messageCooldownList.remove(uuid);

    FileConfiguration config = this.expansion.getConfig("cheat-prevention.yml");
    long messageCooldown = 20L * config.getLong("message-cooldown");
    scheduler.runTaskLater(this.plugin.getPlugin(), task, messageCooldown);
}
 
源代码8 项目: CombatLogX   文件: ListenerBlocks.java
private void sendMessageWithCooldown(Player player, String path) {
    if(player == null || path == null || path.isEmpty()) return;
    List<UUID> messageCooldownList = messagePathToCooldownList.getOrDefault(path, Util.newList());

    UUID uuid = player.getUniqueId();
    if(messageCooldownList.contains(uuid)) return;

    String message = this.plugin.getLanguageMessageColoredWithPrefix(path);
    this.plugin.sendMessage(player, message);
    messageCooldownList.add(uuid);
    messagePathToCooldownList.put(path, messageCooldownList);

    BukkitScheduler scheduler = Bukkit.getScheduler();
    Runnable task = () -> removeCooldown(player, path);

    FileConfiguration config = this.expansion.getConfig("cheat-prevention.yml");
    long messageCooldown = 20L * config.getLong("message-cooldown");
    scheduler.runTaskLater(this.plugin.getPlugin(), task, messageCooldown);
}
 
源代码9 项目: CombatLogX   文件: ListenerNewItemPickup.java
private void sendMessage(Player player) {
    if(player == null) return;

    UUID uuid = player.getUniqueId();
    if(messageCooldownList.contains(uuid)) return;

    String message = this.plugin.getLanguageMessageColoredWithPrefix("cheat-prevention.items.no-pickup");
    this.plugin.sendMessage(player, message);
    messageCooldownList.add(uuid);

    BukkitScheduler scheduler = Bukkit.getScheduler();
    Runnable task = () -> messageCooldownList.remove(uuid);

    FileConfiguration config = this.expansion.getConfig("cheat-prevention.yml");
    long messageCooldown = 20L * config.getLong("message-cooldown");
    scheduler.runTaskLater(this.plugin.getPlugin(), task, messageCooldown);
}
 
源代码10 项目: CombatLogX   文件: NoEntryExpansion.java
public final void sendNoEntryMessage(Player player, LivingEntity enemy) {
    if(player == null || enemy == null) return;

    UUID uuid = player.getUniqueId();
    if(noEntryMessageCooldownList.contains(uuid)) return;

    NoEntryHandler handler = getNoEntryHandler();
    TagType tagType = (enemy instanceof Player ? TagType.PLAYER : TagType.MOB);
    String messagePath = handler.getNoEntryMessagePath(tagType);

    ICombatLogX plugin = getPlugin();
    String message = plugin.getLanguageMessageColoredWithPrefix(messagePath);
    plugin.sendMessage(player, message);

    noEntryMessageCooldownList.add(uuid);

    long cooldown = handler.getNoEntryMessageCooldown();
    long delay = (cooldown * 20L);
    BukkitScheduler scheduler = Bukkit.getScheduler();
    scheduler.runTaskLaterAsynchronously(plugin.getPlugin(), () -> noEntryMessageCooldownList.remove(uuid), delay);
}
 
源代码11 项目: LagMonitor   文件: LagMonitor.java
private void setupMonitoringDatabase() {
    try {
        String host = getConfig().getString("host");
        int port = getConfig().getInt("port");
        String database = getConfig().getString("database");
        boolean usessl = getConfig().getBoolean("usessl");

        String username = getConfig().getString("username");
        String password = getConfig().getString("password");
        String tablePrefix = getConfig().getString("tablePrefix");
        Storage storage = new Storage(getLogger(), host, port, database, usessl, username, password, tablePrefix);
        storage.createTables();

        BukkitScheduler scheduler = getServer().getScheduler();
        scheduler.runTaskTimerAsynchronously(this, new TPSSaveTask(tpsHistoryTask, storage), 20L,
                 getConfig().getInt("tps-save-interval") * 20L);
        //this can run async because it runs independently from the main thread
        scheduler.runTaskTimerAsynchronously(this, new MonitorSaveTask(this, storage),
                20L,getConfig().getInt("monitor-save-interval") * 20L);
        scheduler.runTaskTimerAsynchronously(this, new NativeSaveTask(this, storage),
                20L,getConfig().getInt("native-save-interval") * 20L);
    } catch (SQLException sqlEx) {
        getLogger().log(Level.SEVERE, "Failed to setup monitoring database", sqlEx);
    }
}
 
@Before
public void setUpPlugin() throws IOException {
    dataFolder = temporaryFolder.newFolder();

    // Wire various Bukkit components
    setField(Bukkit.class, "server", null, server);
    given(server.getLogger()).willReturn(mock(Logger.class));
    given(server.getScheduler()).willReturn(mock(BukkitScheduler.class));
    given(server.getPluginManager()).willReturn(pluginManager);
    given(server.getVersion()).willReturn("1.9.4-RC1");

    // SettingsManager always returns the default
    given(settings.getProperty(any(Property.class))).willAnswer(new Answer<Object>() {
        @Override
        public Object answer(InvocationOnMock invocation) throws Throwable {
            return ((Property<?>) invocation.getArguments()[0]).getDefaultValue();
        }
    });

    // PluginDescriptionFile is final and so cannot be mocked
    PluginDescriptionFile descriptionFile = new PluginDescriptionFile(
        "PerWorldInventory", "N/A", PerWorldInventory.class.getCanonicalName());
    JavaPluginLoader pluginLoader = new JavaPluginLoader(server);
    plugin = new PerWorldInventory(pluginLoader, descriptionFile, dataFolder, null);
    setField(JavaPlugin.class, "logger", plugin, mock(PluginLogger.class));
}
 
源代码13 项目: LagMonitor   文件: LagMonitor.java
private void setupMonitoringDatabase() {
    try {
        String host = getConfig().getString("host");
        int port = getConfig().getInt("port");
        String database = getConfig().getString("database");
        boolean usessl = getConfig().getBoolean("usessl");

        String username = getConfig().getString("username");
        String password = getConfig().getString("password");
        String tablePrefix = getConfig().getString("tablePrefix");
        Storage storage = new Storage(getLogger(), host, port, database, usessl, username, password, tablePrefix);
        storage.createTables();

        BukkitScheduler scheduler = getServer().getScheduler();
        scheduler.runTaskTimerAsynchronously(this, new TPSSaveTask(tpsHistoryTask, storage), 20L,
                 getConfig().getInt("tps-save-interval") * 20L);
        //this can run async because it runs independently from the main thread
        scheduler.runTaskTimerAsynchronously(this, new MonitorSaveTask(this, storage),
                20L,getConfig().getInt("monitor-save-interval") * 20L);
        scheduler.runTaskTimerAsynchronously(this, new NativeSaveTask(this, storage),
                20L,getConfig().getInt("native-save-interval") * 20L);
    } catch (SQLException sqlEx) {
        getLogger().log(Level.SEVERE, "Failed to setup monitoring database", sqlEx);
    }
}
 
源代码14 项目: ChangeSkin   文件: SkullCommand.java
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if (!(sender instanceof Player)) {
        plugin.sendMessage(sender, "no-console");
        return true;
    }

    if (args.length == 0) {
        plugin.sendMessage(sender, "select-noargs");
    } else {
        String targetName = args[0].toLowerCase().replace("skin-", "");
        try {
            Player player = (Player) sender;
            int targetId = Integer.parseInt(targetName);

            BukkitScheduler scheduler = Bukkit.getScheduler();
            scheduler.runTaskAsynchronously(plugin, () -> applySkin(player, plugin.getStorage().getSkin(targetId)));
        } catch (NumberFormatException numberFormatException) {
            plugin.sendMessage(sender, "invalid-skin-name");
        }
    }

    return true;
}
 
源代码15 项目: uSkyBlock   文件: ChunkRegenerator.java
/**
 * Regenerates the given list of {@link Chunk}s at the configured chunks/tick speed (default: 4).
 * @param chunkList List of chunks to regenerate.
 * @param onCompletion Runnable to schedule on completion, or null to call no runnable.
 */
public void regenerateChunks(@NotNull List<Chunk> chunkList, @Nullable Runnable onCompletion) {
    Validate.notNull(chunkList, "ChunkList cannot be empty");

    final int CHUNKS_PER_TICK = plugin.getConfig().getInt("options.advanced.chunkRegenSpeed", 4);
    BukkitScheduler scheduler = plugin.getServer().getScheduler();
    task = scheduler.runTaskTimer(plugin, () -> {
        for (int i = 0; i <= CHUNKS_PER_TICK; i++) {
            if (!chunkList.isEmpty()) {
                Chunk chunk = chunkList.remove(0);
                regenerateChunk(chunk);
            } else {
                if (onCompletion != null) {
                    scheduler.runTaskLater(plugin, onCompletion, 1L);
                }
                task.cancel();
                break;
            }
        }
    }, 0L, 1L);
}
 
@Before
public void setUpPlugin() throws IOException {
    dataFolder = temporaryFolder.newFolder();

    // Wire various Bukkit components
    setField(Bukkit.class, "server", null, server);
    given(server.getLogger()).willReturn(mock(Logger.class));
    given(server.getScheduler()).willReturn(mock(BukkitScheduler.class));
    given(server.getPluginManager()).willReturn(pluginManager);
    given(server.getVersion()).willReturn("1.9.4-RC1");

    // SettingsManager always returns the default
    given(settings.getProperty(any(Property.class))).willAnswer(new Answer<Object>() {
        @Override
        public Object answer(InvocationOnMock invocation) throws Throwable {
            return ((Property<?>) invocation.getArguments()[0]).getDefaultValue();
        }
    });

    // PluginDescriptionFile is final and so cannot be mocked
    PluginDescriptionFile descriptionFile = new PluginDescriptionFile(
        "PerWorldInventory", "N/A", PerWorldInventory.class.getCanonicalName());
    JavaPluginLoader pluginLoader = new JavaPluginLoader(server);
    plugin = new PerWorldInventory(pluginLoader, descriptionFile, dataFolder, null);
    setField(JavaPlugin.class, "logger", plugin, mock(PluginLogger.class));
}
 
源代码17 项目: Lukkit   文件: LukkitCommand.java
@Override
public boolean execute(CommandSender sender, String command, String[] args) {
    if (!this.testPermissionSilent(sender)) {
        sender.sendMessage(ERROR_NO_PERMISSION);
        return true;
    }
    try {
        if (args.length > maxArgs && maxArgs >= 0) {
            sender.sendMessage(ERROR_TOO_MANY_ARGS);
        } else if (args.length < minArgs) {
            sender.sendMessage(ERROR_MISSING_ARGS);
        } else {
            if (runAsync) {
                BukkitScheduler scheduler = Bukkit.getScheduler();
                scheduler.runTaskAsynchronously(plugin, () -> function.invoke(new LuaValue[]{new CommandEvent(sender, command, args)}));
            } else {
                function.invoke(new LuaValue[]{new CommandEvent(sender, command, args)});
            }
        }
    } catch (LukkitPluginException e) {
        e.printStackTrace();
        LuaEnvironment.addError(e);
    }
    return true;
}
 
源代码18 项目: AuthMeReloaded   文件: PurgeTaskTest.java
@Test
public void shouldStopTaskAndInformConsoleUser() {
    // given
    Set<String> names = newHashSet("name1", "name2");
    PurgeTask task = new PurgeTask(purgeService, permissionsManager, null, names, new OfflinePlayer[0]);

    BukkitTask bukkitTask = mock(BukkitTask.class);
    given(bukkitTask.getTaskId()).willReturn(10049);
    ReflectionTestUtils.setField(BukkitRunnable.class, task, "task", bukkitTask);

    Server server = mock(Server.class);
    BukkitScheduler scheduler = mock(BukkitScheduler.class);
    given(server.getScheduler()).willReturn(scheduler);
    ReflectionTestUtils.setField(Bukkit.class, null, "server", server);
    ConsoleCommandSender consoleSender = mock(ConsoleCommandSender.class);
    given(server.getConsoleSender()).willReturn(consoleSender);

    task.run(); // Run for the first time -> results in empty names list

    // when
    task.run();

    // then
    verify(scheduler).cancelTask(task.getTaskId());
    verify(consoleSender).sendMessage(argThat(containsString("Database has been purged successfully")));
}
 
源代码19 项目: IridiumSkyblock   文件: Island.java
public void initBlocks() {
    updating = true;

    final Config config = IridiumSkyblock.getConfiguration();
    final IridiumSkyblock plugin = IridiumSkyblock.getInstance();
    final BukkitScheduler scheduler = Bukkit.getScheduler();
    final Runnable task = new InitIslandBlocksRunnable(this, config.blocksPerTick, () -> {
        if (IridiumSkyblock.blockspertick != -1) {
            config.blocksPerTick = IridiumSkyblock.blockspertick;
            IridiumSkyblock.blockspertick = -1;
        }
        scheduler.cancelTask(initBlocks);
        initBlocks = -1;
        plugin.updatingBlocks = false;
        updating = false;
        valuableBlocks.clear();
        spawners.clear();
        for (Location location : tempValues) {
            final Block block = location.getBlock();
            if (!(Utils.isBlockValuable(block) || !(block.getState() instanceof CreatureSpawner))) continue;
            final Material material = block.getType();
            final XMaterial xmaterial = XMaterial.matchXMaterial(material);
            valuableBlocks.compute(xmaterial.name(), (xmaterialName, original) -> {
                if (original == null) return 1;
                return original + 1;
            });
        }
        tempValues.clear();
        calculateIslandValue();
    });
    initBlocks = scheduler.scheduleSyncRepeatingTask(plugin, task, 0, 1);
}
 
源代码20 项目: IridiumSkyblock   文件: Island.java
public void forceInitBlocks(CommandSender sender, int blocksPerTick, String name) {
    final Config config = IridiumSkyblock.getConfiguration();
    final Messages messages = IridiumSkyblock.getMessages();
    if (sender != null)
        sender.sendMessage(Utils.color(messages.updateStarted
                .replace("%player%", name)
                .replace("%prefix%", config.prefix)));
    updating = true;
    final IridiumSkyblock plugin = IridiumSkyblock.getInstance();
    final BukkitScheduler scheduler = Bukkit.getScheduler();
    final Runnable task = new InitIslandBlocksWithSenderRunnable(this, blocksPerTick, sender, name, () -> {
        if (sender != null)
            sender.sendMessage(Utils.color(messages.updateFinished
                    .replace("%player%", name)
                    .replace("%prefix%", config.prefix)));
        scheduler.cancelTask(initBlocks);
        initBlocks = -1;
        updating = false;
        valuableBlocks.clear();
        spawners.clear();
        for (Location location : tempValues) {
            final Block block = location.getBlock();
            if (!(Utils.isBlockValuable(block) || !(block.getState() instanceof CreatureSpawner))) continue;
            final Material material = block.getType();
            final XMaterial xmaterial = XMaterial.matchXMaterial(material);
            valuableBlocks.compute(xmaterial.name(), (xmaterialName, original) -> {
                if (original == null) return 1;
                return original + 1;
            });
        }
        tempValues.clear();
        calculateIslandValue();
    });
    initBlocks = scheduler.scheduleSyncRepeatingTask(plugin, task, 0, 1);
}
 
private static Server mockServer() {
    Server server = mock(Server.class);

    PluginManager pluginManager = mock(PluginManager.class);
    when(server.getPluginManager()).thenReturn(pluginManager);

    BukkitScheduler scheduler = mock(BukkitScheduler.class);
    when(server.getScheduler()).thenReturn(scheduler);

    setServer(server);
    return server;
}
 
源代码22 项目: ExploitFixer   文件: ExploitFixer.java
@Override
public void onEnable() {
	final Server server = this.getServer();
	final BukkitScheduler scheduler = server.getScheduler();

	this.configurationUtil = new ConfigurationUtil(this);

	createConfigurations();

	final YamlConfiguration configYml = this.configurationUtil.getConfiguration("%datafolder%/config.yml");
	final YamlConfiguration messagesYml = this.configurationUtil.getConfiguration("%datafolder%/messages.yml");

	VersionUtil.initialize(server);

	exploitFixer = this;
	this.moduleManager = new ModuleManager(this, configYml, messagesYml);
	this.listenerInitializer = new ListenerInitializer(this, moduleManager);

	registerListeners();
	registerCommands();

	if (checkHamsterAPI()) {
		server.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");

		this.hamsterAPIListenerInitializer = new HamsterAPIListenerInitializer(this, moduleManager);

		registerHamsterApi();
	} else {
		scheduler.runTaskTimer(this, () -> this.getLogger().severe(
				"ExploitFixer requires HamsterAPI 0.0.8 or newer to work! Download: https://www.spigotmc.org/resources/78831/"),
				20L, 20L);
	}

	scheduler.runTaskTimerAsynchronously(this, () -> {
		final ExploitPlayerManager exploitPlayerManager = moduleManager.getExploitPlayerManager();

		exploitPlayerManager.clear();
	}, 9000L, 9000L);
}
 
源代码23 项目: ExploitFixer   文件: ExploitFixer.java
@Override
public void onDisable() {
	final Server server = this.getServer();
	final BukkitScheduler scheduler = server.getScheduler();

	scheduler.cancelTasks(this);

	this.listenerInitializer.unregister();

	if (checkHamsterAPI()) {
		this.hamsterAPIListenerInitializer.unregister();
	}
}
 
源代码24 项目: Hawk   文件: SQLModule.java
private void postBuffer() {
    if (!enabled || violations.size() == 0)
        return;

    List<Violation> asyncList = new ArrayList<>(violations);
    violations.clear();

    BukkitScheduler hawkLogger = Bukkit.getServer().getScheduler();
    hawkLogger.runTaskAsynchronously(hawk, () -> {
        PreparedStatement ps;
        try {
            ps = conn.prepareStatement(INSERT_TABLE);

            for (Violation loopViolation : asyncList) {
                ps.setNull(1, Types.INTEGER);
                ps.setObject(2, loopViolation.getPlayer().getUniqueId(), Types.VARCHAR);
                ps.setObject(3, loopViolation.getCheck(), Types.VARCHAR);
                ps.setObject(4, loopViolation.getPing(), Types.INTEGER);
                ps.setObject(5, loopViolation.getVl(), Types.INTEGER);
                ps.setObject(6, loopViolation.getServer(), Types.VARCHAR);
                ps.setTimestamp(7, new Timestamp(loopViolation.getTime()));
                ps.addBatch();
            }

            ps.executeBatch();

        }
        catch (SQLException e) {
            e.printStackTrace();
        }
    });
}
 
源代码25 项目: ProjectAres   文件: CoreMatchModule.java
@Override
public void enable() {
    if (this.match.getMapInfo().proto.isOlderThan(MODES_IMPLEMENTATION_VERSION)) {
        CoreConvertMonitor ccm = new CoreConvertMonitor(this);
        BukkitScheduler scheduler = this.match.getServer().getScheduler();
        this.ccmTaskId1 = scheduler.scheduleSyncDelayedTask(this.match.getPlugin(), ccm, 15*60*20); // 15 minutes
        this.ccmTaskId2 = scheduler.scheduleSyncDelayedTask(this.match.getPlugin(), ccm, 20*60*20); // 20 minutes
    }
}
 
源代码26 项目: CombatLogX   文件: ListenerDamageDeath.java
@EventHandler(priority=EventPriority.MONITOR, ignoreCancelled=true)
public void onDespawn(NPCDespawnEvent e) {
    DespawnReason despawnReason = e.getReason();
    if(despawnReason == DespawnReason.PENDING_RESPAWN) return;
    
    Logger logger = this.expansion.getLogger();
    logger.info("[Debug] Removing NPC for reason '" + despawnReason + "'.");
    
    NPC npc = e.getNPC();
    NPCManager npcManager = this.expansion.getNPCManager();
    if(npcManager.isInvalid(npc)) return;

    TraitCombatLogX traitCombatLogX = npc.getTrait(TraitCombatLogX.class);
    OfflinePlayer owner = traitCombatLogX.getOwner();
    if(owner == null) return;
    
    if(despawnReason == DespawnReason.DEATH) npcManager.dropInventory(npc);
    npcManager.saveHealth(npc);
    npcManager.saveLocation(npc);
    
    YamlConfiguration data = npcManager.getData(owner);
    data.set("citizens-compatibility.punish-next-join", true);
    npcManager.setData(owner, data);

    JavaPlugin plugin = this.expansion.getPlugin().getPlugin();
    BukkitScheduler scheduler = Bukkit.getScheduler();
    scheduler.runTaskLater(plugin, npc::destroy, 1L);
}
 
源代码27 项目: CombatLogX   文件: NoEntryExpansion.java
public final void preventEntry(Cancellable e, Player player, Location fromLoc, Location toLoc) {
    ICombatManager combatManager = getPlugin().getCombatManager();
    if(!combatManager.isInCombat(player)) return;

    LivingEntity enemy = combatManager.getEnemy(player);
    sendNoEntryMessage(player, enemy);

    BukkitScheduler scheduler = Bukkit.getScheduler();
    NoEntryHandler handler = getNoEntryHandler();
    NoEntryMode noEntryMode = handler.getNoEntryMode();
    switch(noEntryMode) {
        case KILL:
            player.setHealth(0.0D);
            break;

        case CANCEL:
            e.setCancelled(true);
            break;

        case TELEPORT:
            if(enemy != null) player.teleport(enemy);
            else e.setCancelled(true);
            break;

        case KNOCKBACK:
            e.setCancelled(true);
            scheduler.runTaskLater(getPlugin().getPlugin(), () -> knockbackPlayer(player, fromLoc, toLoc), 1L);
            break;

        case VULNERABLE:
        case NOTHING:
        default:
            break;
    }
}
 
源代码28 项目: PerWorldInventory   文件: PWIPlayerManagerTest.java
@BeforeInjecting
public void initSettings() {
    given(settings.getProperty(PwiProperties.SAVE_INTERVAL)).willReturn(300);

    // Add mocks for Bukkit.getScheduler, called in @PostConstruct method
    Server server = mock(Server.class);
    TestHelper.setField(Bukkit.class, "server", null, server);
    BukkitScheduler scheduler = mock(BukkitScheduler.class);
    given(server.getScheduler()).willReturn(scheduler);
}
 
源代码29 项目: uSkyBlock   文件: ChatEventsTest.java
@Before
public void setUp() {
    uSkyBlock fakePlugin = mock(uSkyBlock.class);
    Server fakeServer = mock(Server.class);
    when(fakePlugin.getServer()).thenReturn(fakeServer);

    fakeScheduler = mock(BukkitScheduler.class);
    when(fakeScheduler.runTask(any(Plugin.class), any(Runnable.class))).thenReturn(mock(BukkitTask.class));
    when(fakeServer.getScheduler()).thenReturn(fakeScheduler);

    fakeLogic = spy(mock(ChatLogic.class));
    doNothing().when(fakeLogic).sendMessage(any(), any(), any());

    listener = new ChatEvents(fakeLogic, fakePlugin);
}
 
源代码30 项目: PerWorldInventory   文件: PWIPlayerManagerTest.java
@BeforeInjecting
public void initSettings() {
    given(settings.getProperty(PwiProperties.SAVE_INTERVAL)).willReturn(300);

    // Add mocks for Bukkit.getScheduler, called in @PostConstruct method
    Server server = mock(Server.class);
    TestHelper.setField(Bukkit.class, "server", null, server);
    BukkitScheduler scheduler = mock(BukkitScheduler.class);
    given(server.getScheduler()).willReturn(scheduler);
}
 
 类所在包
 同包方法