re project

This commit is contained in:
AlphaAE
2019-04-29 09:48:31 +08:00
parent 34d49e985d
commit 6c307f1197
13 changed files with 328 additions and 180 deletions

View 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);
}
}
}

View File

@ -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();
}
}

View File

@ -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);
}

View File

@ -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);
}
}