类org.bukkit.event.server.ServerListPingEvent源码实例Demo

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

源代码1 项目: Skript   文件: ExprMaxPlayers.java
@SuppressWarnings("null")
@Override
public void change(Event e, @Nullable Object[] delta, ChangeMode mode) {
	ServerListPingEvent event = (ServerListPingEvent) e;
	switch (mode) {
		case SET:
			event.setMaxPlayers(((Number) delta[0]).intValue());
			break;
		case ADD:
			event.setMaxPlayers(event.getMaxPlayers() + ((Number) delta[0]).intValue());
			break;
		case REMOVE:
			event.setMaxPlayers(event.getMaxPlayers() - ((Number) delta[0]).intValue());
			break;
		case DELETE:
		case RESET:
			event.setMaxPlayers(Bukkit.getMaxPlayers());
	}
}
 
源代码2 项目: SkyWarsReloaded   文件: PingListener.java
@EventHandler
public void onPing(final ServerListPingEvent serverListPingEvent) {
    if (SkyWarsReloaded.get().serverLoaded()) {
        if (GameMap.getMaps().size() > 0) {
            GameMap game = GameMap.getMaps().get(0);
            serverListPingEvent.setMotd(new Messaging.MessageFormatter().setVariable("matchstate", game.getMatchState().toString())
                    .setVariable("playercount","" + game.getPlayerCount()).setVariable("maxplayers", "" + game.getMaxPlayers())
                    .setVariable("displayname", game.getDisplayName()).format("bungee.motd"));
        } else {
            serverListPingEvent.setMotd(new Messaging.MessageFormatter().setVariable("matchstate", MatchState.ENDING.toString() )
                    .setVariable("playercount","0").setVariable("maxplayers", "0")
                    .setVariable("displayname", "null").format("bungee.motd"));
        }
    } else {
        serverListPingEvent.setMotd(new Messaging.MessageFormatter().setVariable("matchstate", MatchState.ENDING.toString() )
                .setVariable("playercount","0").setVariable("maxplayers", "0")
                .setVariable("displayname", "null").format("bungee.motd"));
    }
}
 
源代码3 项目: CardinalPGM   文件: MOTD.java
@EventHandler(priority = EventPriority.LOWEST)
public void onServerListPing(ServerListPingEvent event) {
    String name = match.getLoadedMap().getName();
    ChatColor color = ChatColor.GRAY;
    switch (match.getState()) {
        case ENDED:
            color = ChatColor.AQUA;
            break;
        case PLAYING:
            color = ChatColor.GOLD;
            break;
        case STARTING:
            color = ChatColor.GREEN;
            break;
    }
    event.setMotd(color + "\u00BB " + ChatColor.AQUA + name + color + " \u00AB" +
            (!Config.motdMessage.equals("") ? "\n" + ChatColor.translateAlternateColorCodes('`', Config.motdMessage) : ""));

}
 
源代码4 项目: Geyser   文件: GeyserBukkitPingPassthrough.java
@Override
public GeyserPingInfo getPingInformation() {
    try {
        ServerListPingEvent event = new GeyserPingEvent(InetAddress.getLocalHost(), Bukkit.getMotd(), Bukkit.getOnlinePlayers().size(), Bukkit.getMaxPlayers());
        Bukkit.getPluginManager().callEvent(event);
        GeyserPingInfo geyserPingInfo = new GeyserPingInfo(event.getMotd(), event.getNumPlayers(), event.getMaxPlayers());
        Bukkit.getOnlinePlayers().forEach(player -> {
            geyserPingInfo.addPlayer(player.getName());
        });
        return geyserPingInfo;
    } catch (Exception e) {
        logger.debug("Error while getting Bukkit ping passthrough: " + e.toString());
        return new GeyserPingInfo(null, 0, 0);
    }
}
 
源代码5 项目: PGM   文件: MotdListener.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onServerListPing(ServerListPingEvent event) {
  final String format = PGM.get().getConfiguration().getMotd();
  if (format == null || format.isEmpty()) return;

  event.setMotd(MessageFormat.format(format, event.getMotd(), mapName, phaseColor.toString()));
}
 
源代码6 项目: PGM   文件: ServerPingDataListener.java
@EventHandler
public void onServerListPing(ServerListPingEvent event) {
  if (!ready.get() || legacySportPaper.get()) return;

  // Remove vanished players from player sample/ping count
  Iterator<Player> playerSample = event.iterator();
  while (playerSample.hasNext()) {
    Player player = playerSample.next();
    if (vanishManager.isVanished(player.getUniqueId())) {
      playerSample.remove();
    }
  }

  try {
    JsonObject root = event.getOrCreateExtra(PGM.get());
    this.matchManager
        .getMatches()
        .forEachRemaining(
            match -> {
              String matchId = match.getId();
              try {
                root.add(matchId, this.matchCache.get(match));
              } catch (ExecutionException e) {
                this.logger.log(
                    Level.SEVERE, "Could not load server ping data for match: " + matchId, e);
              }
            });
  } catch (NoSuchMethodError ex) {
    legacySportPaper.compareAndSet(false, true);
  }
}
 
源代码7 项目: UhcCore   文件: PingListener.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onPing(ServerListPingEvent event){
	GameManager gm = GameManager.getGameManager();

	if (gm == null){
		return; // Still loading
	}

	if (gm.getConfiguration().getDisableMotd()){
		return; // No motd support
	}

	// Display motd
	switch(gm.getGameState()){
		case ENDED:
			event.setMotd(Lang.DISPLAY_MOTD_ENDED);
			break;
		case LOADING:
			event.setMotd(Lang.DISPLAY_MOTD_LOADING);
			break;
		case DEATHMATCH:
		case PLAYING:
			event.setMotd(Lang.DISPLAY_MOTD_PLAYING);
			break;
		case STARTING:
			event.setMotd(Lang.DISPLAY_MOTD_STARTING);
			break;
		case WAITING:
			event.setMotd(Lang.DISPLAY_MOTD_WAITING);
			break;
		default:
			event.setMotd(Lang.DISPLAY_MESSAGE_PREFIX);
			break;
	}
}
 
源代码8 项目: Skript   文件: ExprMOTD.java
@SuppressWarnings({"unchecked", "null"})
@Override
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, ParseResult parseResult) {
	boolean isServerPingEvent = ScriptLoader.isCurrentEvent(ServerListPingEvent.class) ||
			(PAPER_EVENT_EXISTS && ScriptLoader.isCurrentEvent(PaperServerListPingEvent.class));
	if (parseResult.mark == 2 && !isServerPingEvent) {
		Skript.error("The 'shown' MOTD expression can't be used outside of a server list ping event");
		return false;
	}
	isDefault = (parseResult.mark == 0 && !isServerPingEvent) || parseResult.mark == 1;
	return true;
}
 
源代码9 项目: Skript   文件: ExprMOTD.java
@Override
@Nullable
public String[] get(Event e) {
	if (isDefault)
		return CollectionUtils.array(Bukkit.getMotd());
	else
		return CollectionUtils.array(((ServerListPingEvent) e).getMotd());
}
 
源代码10 项目: Skript   文件: ExprMOTD.java
@SuppressWarnings("null")
@Override
public void change(Event e, @Nullable Object[] delta, ChangeMode mode) {
	ServerListPingEvent event = (ServerListPingEvent) e;
	switch (mode) {
		case SET:
			event.setMotd((String) delta[0]);
			break;
		case DELETE:
			event.setMotd("");
			break;
		case RESET:
			event.setMotd(Bukkit.getMotd());
	}
}
 
源代码11 项目: Skript   文件: ExprIP.java
@SuppressWarnings({"null", "unchecked"})
@Override
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, ParseResult parseResult) {
	isProperty = matchedPattern < 2;
	isConnectEvent = ScriptLoader.isCurrentEvent(PlayerLoginEvent.class);
	boolean isServerPingEvent = ScriptLoader.isCurrentEvent(ServerListPingEvent.class) ||
			(PAPER_EVENT_EXISTS && ScriptLoader.isCurrentEvent(PaperServerListPingEvent.class));
	if (isProperty) {
		players = (Expression<Player>) exprs[0];
	} else if (!isConnectEvent && !isServerPingEvent) {
		Skript.error("You must specify players whose IP addresses to get outside of server list ping and connect events.");
		return false;
	}
	return true;
}
 
源代码12 项目: Skript   文件: ExprVersionString.java
@Override
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, ParseResult parseResult) {
	if (ScriptLoader.isCurrentEvent(ServerListPingEvent.class)) {
		Skript.error("The version string expression requires Paper 1.12.2 or newer");
		return false;
	} else if (!(PAPER_EVENT_EXISTS && ScriptLoader.isCurrentEvent(PaperServerListPingEvent.class))) {
		Skript.error("The version string expression can't be used outside of a server list ping event");
		return false;
	}
	return true;
}
 
源代码13 项目: Skript   文件: ExprOnlinePlayersCount.java
@Override
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, ParseResult parseResult) {
	boolean isPaperEvent = PAPER_EVENT_EXISTS && ScriptLoader.isCurrentEvent(PaperServerListPingEvent.class);
	if (parseResult.mark == 2) {
		if (ScriptLoader.isCurrentEvent(ServerListPingEvent.class)) {
			Skript.error("The 'fake' online players count expression requires Paper 1.12.2 or newer");
			return false;
		} else if (!isPaperEvent) {
			Skript.error("The 'fake' online players count expression can't be used outside of a server list ping event");
			return false;
		}
	}
	isReal = (parseResult.mark == 0 && !isPaperEvent) || parseResult.mark == 1;
	return true;
}
 
源代码14 项目: Skript   文件: ExprMaxPlayers.java
@SuppressWarnings({"unchecked", "null"})
@Override
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, SkriptParser.ParseResult parseResult) {
	boolean isServerPingEvent = ScriptLoader.isCurrentEvent(ServerListPingEvent.class) ||
			(PAPER_EVENT_EXISTS && ScriptLoader.isCurrentEvent(PaperServerListPingEvent.class));
	if (parseResult.mark == 2 && !isServerPingEvent) {
		Skript.error("The 'shown' max players count expression can't be used outside of a server list ping event");
		return false;
	}
	isReal = (parseResult.mark == 0 && !isServerPingEvent) || parseResult.mark == 1;
	return true;
}
 
源代码15 项目: Skript   文件: ExprMaxPlayers.java
@Override
@Nullable
public Number[] get(Event e) {
	if (isReal)
		return CollectionUtils.array(Bukkit.getMaxPlayers());
	else
		return CollectionUtils.array(((ServerListPingEvent) e).getMaxPlayers());
}
 
源代码16 项目: Skript   文件: EffHidePlayerFromServerList.java
@SuppressWarnings({"unchecked", "null"})
@Override
public boolean init(Expression<?>[] exprs, int matchedPattern, Kleenean isDelayed, ParseResult parseResult) {
	boolean isServerPingEvent = ScriptLoader.isCurrentEvent(ServerListPingEvent.class) ||
			(PAPER_EVENT_EXISTS && ScriptLoader.isCurrentEvent(PaperServerListPingEvent.class));
	if (!isServerPingEvent) {
		Skript.error("The hide player from server list effect can't be used outside of a server list ping event");
		return false;
	} else if (isDelayed == Kleenean.TRUE) {
		Skript.error("Can't hide players from the server list anymore after the server list ping event has already passed");
		return false;
	}
	players = (Expression<Player>) exprs[0];
	return true;
}
 
源代码17 项目: AnnihilationPro   文件: GameListeners.java
@EventHandler(priority=EventPriority.HIGHEST, ignoreCancelled=true)
public void pingServer(ServerListPingEvent event)
{
	if(GameVars.useMOTD())
	{
		if(Game.getGameMap() == null || Game.getGameMap().getCurrentPhase() < 1)
			event.setMotd("In Lobby");
		else event.setMotd("Phase "+Game.getGameMap().getCurrentPhase());
	}
}
 
源代码18 项目: ServerListPlus   文件: PaperEventHandler.java
@Override
@EventHandler
public void onServerListPing(ServerListPingEvent event) {
    if (event instanceof PaperServerListPingEvent) {
        handlePaperServerListPing((PaperServerListPingEvent) event);
    } else {
        // Still handle events that don't implement PaperServerListPingEvent
        super.onServerListPing(event);
    }
}
 
源代码19 项目: Kettle   文件: CraftEventFactory.java
/**
 * Server methods
 */
public static ServerListPingEvent callServerListPingEvent(Server craftServer, InetAddress address, String motd, int numPlayers, int maxPlayers) {
    ServerListPingEvent event = new ServerListPingEvent(address, motd, numPlayers, maxPlayers);
    craftServer.getPluginManager().callEvent(event);
    return event;
}
 
源代码20 项目: CloudNet   文件: BukkitBootstrap.java
private void enableTasks() {
    Bukkit.getScheduler().runTask(this, new Runnable() {
        @Override
        public void run() {
            if (CloudServer.getInstance().getGroupData() != null) {
                if (CloudAPI.getInstance()
                            .getServerGroupData(CloudAPI.getInstance().getGroup())
                            .getMode()
                            .equals(ServerGroupMode.LOBBY) || CloudAPI.getInstance()
                                                                      .getServerGroupData(CloudAPI.getInstance()
                                                                                                  .getGroup())
                                                                      .getMode()
                                                                      .equals(ServerGroupMode.STATIC_LOBBY)) {
                    CommandCloudServer server = new CommandCloudServer();

                    getCommand("cloudserver").setExecutor(server);
                    getCommand("cloudserver").setPermission("cloudnet.command.cloudserver");
                    getCommand("cloudserver").setTabCompleter(server);
                }

                Bukkit.getPluginManager().callEvent(new BukkitCloudServerInitEvent(CloudServer.getInstance()));
                CloudServer.getInstance().update();

                if (CloudAPI.getInstance()
                            .getServerGroupData(CloudAPI.getInstance().getGroup())
                            .getAdvancedServerConfig()
                            .isDisableAutoSavingForWorlds()) {
                    for (World world : Bukkit.getWorlds()) {
                        world.setAutoSave(false);
                    }
                }
            }

            if (CloudServer.getInstance().getGroupData() != null) {
                getServer().getScheduler().runTaskTimer(BukkitBootstrap.this, new Runnable() {
                    @Override
                    public void run() {
                        try {
                            ServerListPingEvent serverListPingEvent = new ServerListPingEvent(new InetSocketAddress("127.0.0.1",
                                                                                                                    53345).getAddress(),
                                                                                              CloudServer.getInstance().getMotd(),
                                                                                              Bukkit.getOnlinePlayers().size(),
                                                                                              CloudServer.getInstance()
                                                                                                         .getMaxPlayers());
                            Bukkit.getPluginManager().callEvent(serverListPingEvent);
                            if (!serverListPingEvent.getMotd().equalsIgnoreCase(CloudServer.getInstance()
                                                                                           .getMotd()) || serverListPingEvent.getMaxPlayers() != CloudServer
                                .getInstance()
                                .getMaxPlayers()) {
                                CloudServer.getInstance().setMotd(serverListPingEvent.getMotd());
                                CloudServer.getInstance().setMaxPlayers(serverListPingEvent.getMaxPlayers());
                                if (serverListPingEvent.getMotd().toLowerCase().contains("running") || serverListPingEvent.getMotd()
                                                                                                                          .toLowerCase()
                                                                                                                          .contains(
                                                                                                                              "ingame")) {
                                    CloudServer.getInstance().changeToIngame();
                                } else {
                                    CloudServer.getInstance().update();
                                }
                            }
                        } catch (Exception ex) {
                        }
                    }
                }, 0, 5);
            }

            if (CloudAPI.getInstance().getPermissionPool() != null && (getServer().getPluginManager()
                                                                                  .isPluginEnabled("VaultAPI") || getServer().getPluginManager()
                                                                                                                             .isPluginEnabled(
                                                                                                                                 "Vault"))) {
                try {
                    Class.forName("de.dytanic.cloudnet.bridge.vault.VaultInvoker").getMethod("invoke").invoke(null);
                } catch (IllegalAccessException | ClassNotFoundException | NoSuchMethodException | InvocationTargetException e) {
                    e.printStackTrace();
                }
            }
        }
    });
}
 
源代码21 项目: ProjectAres   文件: PingListener.java
@EventHandler
private void onPing(ServerListPingEvent event) {
    event.getExtra().put("pgm", new Info());
}
 
源代码22 项目: Skript   文件: EffHidePlayerFromServerList.java
@Override
protected void execute(Event e) {
	Iterator<Player> it = ((ServerListPingEvent) e).iterator();		
	Iterators.removeAll(it, Arrays.asList(players.getArray(e)));
}
 
源代码23 项目: Thermos   文件: CraftEventFactory.java
/**
 * Server methods
 */
public static ServerListPingEvent callServerListPingEvent(Server craftServer, InetAddress address, String motd, int numPlayers, int maxPlayers) {
    ServerListPingEvent event = new ServerListPingEvent(address, motd, numPlayers, maxPlayers);
    craftServer.getPluginManager().callEvent(event);
    return event;
}
 
源代码24 项目: PingAPI   文件: PingInjector.java
/**
 * Injects a DuplexHandler into each NetworkManager's pipeline when the server receives a ping packet
 * @param event The event
 */
@EventHandler
public void serverListPing(ServerListPingEvent event) {
	this.injectOpenConnections();
}
 
源代码25 项目: PingAPI   文件: PingInjector.java
/**
 * Injects a DuplexHandler into each NetworkManager's pipeline when the server receives a ping packet
 * @param event The event
 */
@EventHandler
public void serverListPing(ServerListPingEvent event) {
	this.injectOpenConnections();
}
 
源代码26 项目: PingAPI   文件: PingInjector.java
/**
 * Injects a DuplexHandler into each NetworkManager's pipeline when the server receives a ping packet
 * @param event The event
 */
@EventHandler
public void serverListPing(ServerListPingEvent event) {
	this.injectOpenConnections();
}
 
源代码27 项目: PingAPI   文件: PingInjector.java
/**
 * Injects a DuplexHandler into each NetworkManager's pipeline when the server receives a ping packet
 * @param event The event
 */
@EventHandler
public void serverListPing(ServerListPingEvent event) {
	this.injectOpenConnections();
}
 
源代码28 项目: PingAPI   文件: PingInjector.java
/**
 * Injects a DuplexHandler into each NetworkManager's pipeline when the server receives a ping packet
 * @param event The event
 */
@EventHandler
public void serverListPing(ServerListPingEvent event) {
	this.injectOpenConnections();
}
 
源代码29 项目: PingAPI   文件: PingInjector.java
/**
 * Injects a DuplexHandler into each NetworkManager's pipeline when the server receives a ping packet
 * @param event The event
 */
@EventHandler
public void serverListPing(ServerListPingEvent event) {
	this.injectOpenConnections();
}
 
源代码30 项目: PingAPI   文件: PingInjector.java
/**
 * Injects a DuplexHandler into each NetworkManager's pipeline when the server receives a ping packet
 * @param event The event
 */
@EventHandler
public void serverListPing(ServerListPingEvent event) {
	this.injectOpenConnections();
}
 
 类所在包
 类方法
 同包方法