re project
This commit is contained in:
39
src/com/alphaae/mcpe/servers/event/JoinQuitEvent.java
Normal file
39
src/com/alphaae/mcpe/servers/event/JoinQuitEvent.java
Normal file
@ -0,0 +1,39 @@
|
||||
package com.alphaae.mcpe.servers.event;
|
||||
|
||||
import cn.nukkit.event.EventHandler;
|
||||
import cn.nukkit.event.EventPriority;
|
||||
import cn.nukkit.event.Listener;
|
||||
import cn.nukkit.event.player.PlayerJoinEvent;
|
||||
import cn.nukkit.event.player.PlayerQuitEvent;
|
||||
import com.alphaae.mcpe.servers.event.block.joinquit.DisplayInfoBlock;
|
||||
import com.alphaae.mcpe.servers.event.block.joinquit.JoinQuitEventBlock;
|
||||
import com.alphaae.mcpe.servers.event.block.joinquit.JoinWindowBlock;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class JoinQuitEvent implements Listener {
|
||||
|
||||
private static List<JoinQuitEventBlock> eventBlockList;
|
||||
|
||||
static {
|
||||
eventBlockList = new ArrayList<>();
|
||||
eventBlockList.add(new DisplayInfoBlock());
|
||||
eventBlockList.add(new JoinWindowBlock());
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
for (JoinQuitEventBlock eventBlock : eventBlockList) {
|
||||
eventBlock.onPlayerJoin(event);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
|
||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
for (JoinQuitEventBlock eventBlock : eventBlockList) {
|
||||
eventBlock.onPlayerQuit(event);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package com.alphaae.mcpe.servers.event.block.joinquit;
|
||||
|
||||
import cn.nukkit.Player;
|
||||
import cn.nukkit.event.player.PlayerJoinEvent;
|
||||
import cn.nukkit.event.player.PlayerQuitEvent;
|
||||
import cn.nukkit.form.element.ElementButton;
|
||||
import cn.nukkit.form.element.ElementButtonImageData;
|
||||
import cn.nukkit.form.window.FormWindowSimple;
|
||||
import cn.nukkit.scheduler.NukkitRunnable;
|
||||
import cn.nukkit.scheduler.Task;
|
||||
import cn.nukkit.scheduler.TaskHandler;
|
||||
import cn.nukkit.utils.TextFormat;
|
||||
import com.alphaae.mcpe.servers.Config;
|
||||
import com.alphaae.mcpe.servers.MainPlugin;
|
||||
|
||||
public class DisplayInfoBlock implements JoinQuitEventBlock {
|
||||
|
||||
private TaskHandler infoHandler;
|
||||
|
||||
public DisplayInfoBlock() {
|
||||
}
|
||||
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
final Player player = event.getPlayer();
|
||||
|
||||
try {
|
||||
infoHandler = MainPlugin.getPlugin().getServer().getScheduler().scheduleDelayedRepeatingTask(new Task() {
|
||||
@Override
|
||||
public void onRun(int i) {
|
||||
String name = player.getName();
|
||||
int ping = player.getPing();
|
||||
String uuid = player.getUniqueId().toString();
|
||||
int coin = 2000;
|
||||
|
||||
player.sendActionBar(TextFormat.colorize("&b" + name + " &f延迟: " + ping + "ms 硬币: " + coin));
|
||||
}
|
||||
}, Config.JOIN_WAITING_TIME, 12);
|
||||
} catch (Exception e) {
|
||||
infoHandler.cancel();
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
if (infoHandler != null)
|
||||
infoHandler.cancel();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.alphaae.mcpe.servers.event.block.joinquit;
|
||||
|
||||
import cn.nukkit.event.player.PlayerJoinEvent;
|
||||
import cn.nukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
public interface JoinQuitEventBlock {
|
||||
void onPlayerJoin(PlayerJoinEvent event);
|
||||
|
||||
void onPlayerQuit(PlayerQuitEvent event);
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package com.alphaae.mcpe.servers.event.block.joinquit;
|
||||
|
||||
import cn.nukkit.Player;
|
||||
import cn.nukkit.event.player.PlayerJoinEvent;
|
||||
import cn.nukkit.event.player.PlayerQuitEvent;
|
||||
import cn.nukkit.form.window.FormWindowSimple;
|
||||
import cn.nukkit.scheduler.NukkitRunnable;
|
||||
import com.alphaae.mcpe.servers.Config;
|
||||
import com.alphaae.mcpe.servers.MainPlugin;
|
||||
|
||||
public class JoinWindowBlock implements JoinQuitEventBlock {
|
||||
|
||||
@Override
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
final Player player = event.getPlayer();
|
||||
showJoinWindow(player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
|
||||
}
|
||||
|
||||
private void showJoinWindow(Player player) {
|
||||
new NukkitRunnable() {
|
||||
public void run() {
|
||||
String joinText = MainPlugin.getPlugin().getConfig().getString("join-text");
|
||||
FormWindowSimple form = new FormWindowSimple("公告", "欢迎你 " + player.getName() + " \n\n" + joinText);
|
||||
player.showFormWindow(form);
|
||||
}
|
||||
}.runTaskLater(MainPlugin.getPlugin(), Config.JOIN_WAITING_TIME);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user