SteamWar/SpigotCore
Archiviert
13
0
Dieser Commit ist enthalten in:
BuildTools 2019-11-24 19:48:27 +01:00
Ursprung fbbbc450fb
Commit d4dcbfeafa
4 geänderte Dateien mit 36 neuen und 85 gelöschten Zeilen

Datei anzeigen

@ -2,6 +2,7 @@ package de.steamwar.core;
import de.steamwar.core.events.ChattingEvent; import de.steamwar.core.events.ChattingEvent;
import de.steamwar.core.events.PlayerJoinedEvent; import de.steamwar.core.events.PlayerJoinedEvent;
import de.steamwar.scoreboard.SWScoreboard;
import de.steamwar.sql.SQL; import de.steamwar.sql.SQL;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
@ -34,6 +35,8 @@ public class Core extends JavaPlugin{
public void onEnable() { public void onEnable() {
Bukkit.getPluginManager().registerEvents(new PlayerJoinedEvent(), this); Bukkit.getPluginManager().registerEvents(new PlayerJoinedEvent(), this);
Bukkit.getPluginManager().registerEvents(new ChattingEvent(), this); Bukkit.getPluginManager().registerEvents(new ChattingEvent(), this);
SWScoreboard.startPlayerBoards();
} }
@Override @Override

Datei anzeigen

@ -1,5 +1,6 @@
package de.steamwar.core.events; package de.steamwar.core.events;
import de.steamwar.scoreboard.SWScoreboard;
import de.steamwar.sql.SteamwarUser; import de.steamwar.sql.SteamwarUser;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@ -51,5 +52,7 @@ public class PlayerJoinedEvent implements Listener{
Player player = event.getPlayer(); Player player = event.getPlayer();
event.setQuitMessage("§c§l« §r" + player.getDisplayName()); event.setQuitMessage("§c§l« §r" + player.getDisplayName());
SWScoreboard.getPlayerBoards().remove(player);
} }
} }

Datei anzeigen

@ -3,6 +3,7 @@ package de.steamwar.scoreboard;
import com.comphenix.protocol.PacketType; import com.comphenix.protocol.PacketType;
import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.events.PacketContainer;
import de.steamwar.core.Core;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -13,17 +14,15 @@ import java.util.logging.Level;
public class SWScoreboard { public class SWScoreboard {
HashMap<String, Integer> data; private static HashMap<Player, SWScoreboard> playerBoards = new HashMap<>();
private Player player;
private String title;
public SWScoreboard(Player player, HashMap<String, Integer> data, String title) { ScoreboardCallback callback;
this.data = data;
this.player = player; public SWScoreboard(Player player, ScoreboardCallback callback) {
this.title = title; this.callback = callback;
} }
public void sendScoreboard() { public void sendScoreboard(Player player) {
PacketContainer remove = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.SCOREBOARD_OBJECTIVE); PacketContainer remove = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.SCOREBOARD_OBJECTIVE);
remove.getStrings().write(0, "AAA"); remove.getStrings().write(0, "AAA");
remove.getBytes().write(0, (byte) 1); remove.getBytes().write(0, (byte) 1);
@ -31,7 +30,7 @@ public class SWScoreboard {
PacketContainer createpacket = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.SCOREBOARD_OBJECTIVE); PacketContainer createpacket = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.SCOREBOARD_OBJECTIVE);
createpacket.getStrings().write(0, "AAA"); createpacket.getStrings().write(0, "AAA");
createpacket.getBytes().write(0, (byte) 0); createpacket.getBytes().write(0, (byte) 0);
createpacket.getStrings().write(1, this.title); createpacket.getStrings().write(1, this.callback.getTitle());
createpacket.getIntegers().write(0, 0); createpacket.getIntegers().write(0, 0);
try { try {
@ -41,7 +40,7 @@ public class SWScoreboard {
Bukkit.getLogger().log(Level.SEVERE, "COULD NOT SEND PACKAGE", ex); Bukkit.getLogger().log(Level.SEVERE, "COULD NOT SEND PACKAGE", ex);
} }
for(Map.Entry<String, Integer> entry : data.entrySet()) { for(Map.Entry<String, Integer> entry : this.callback.getData().entrySet()) {
PacketContainer update = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.SCOREBOARD_SCORE); PacketContainer update = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.SCOREBOARD_SCORE);
update.getStrings().write(0, entry.getKey()); update.getStrings().write(0, entry.getKey());
update.getBytes().write(0, (byte) 0); update.getBytes().write(0, (byte) 0);
@ -57,10 +56,10 @@ public class SWScoreboard {
} }
public void display() { public void display(Player player) {
PacketContainer display = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.SCOREBOARD_DISPLAY_OBJECTIVE); PacketContainer display = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.SCOREBOARD_DISPLAY_OBJECTIVE);
display.getBytes().write(0, (byte) 1); display.getBytes().write(0, (byte) 1);
display.getStrings().write(0, this.title); display.getStrings().write(0, this.callback.getTitle());
try { try {
ProtocolLibrary.getProtocolManager().sendServerPacket(player, display); ProtocolLibrary.getProtocolManager().sendServerPacket(player, display);
@ -69,27 +68,30 @@ public class SWScoreboard {
} }
} }
public HashMap<String, Integer> getData() { public static void startPlayerBoards() {
return data; Bukkit.getScheduler().scheduleSyncRepeatingTask(Core.getInstance(), new Runnable() {
@Override
public void run() {
synchronized (playerBoards) {
for(Map.Entry<Player, SWScoreboard> entry : playerBoards.entrySet()) {
entry.getValue().sendScoreboard(entry.getKey());
entry.getValue().display(entry.getKey());
}
}
}
}, 10, 5);
} }
public void setData(HashMap<String, Integer> data) {
this.data = data; public ScoreboardCallback getCallback() {
return callback;
} }
public Player getPlayer() { public void setCallback(ScoreboardCallback callback) {
return player; this.callback = callback;
} }
public void setPlayer(Player player) { public static HashMap<Player, SWScoreboard> getPlayerBoards() {
this.player = player; return playerBoards;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
} }
} }

Datei anzeigen

@ -1,57 +0,0 @@
package de.steamwar.scoreboard;
import de.steamwar.core.Core;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import java.util.HashMap;
import java.util.UUID;
public class ScoreboardContainer {
private static HashMap<UUID, ScoreboardContainer> containers = new HashMap<>();
Player player;
ScoreboardCallback callback;
public ScoreboardContainer(Player player, ScoreboardCallback callback) {
this.player = player;
this.callback = callback;
}
public void update() {
//Update
SWScoreboard update = new SWScoreboard(player, callback.getData(), callback.getTitle());
update.sendScoreboard();
Bukkit.getScheduler().runTaskLater(Core.getInstance(), new Runnable() {
@Override
public void run() {
update.display();
}
}, 2);
}
public void startScoreboard() {
Bukkit.getScheduler().scheduleSyncRepeatingTask(Core.getInstance(), new Runnable() {
@Override
public void run() {
for(ScoreboardContainer container : ScoreboardContainer.getContainers().values()) {
container.update();
}
}
}, 10, 5);
}
public Player getPlayer() {
return player;
}
public void setPlayer(Player player) {
this.player = player;
}
public static HashMap<UUID, ScoreboardContainer> getContainers() {
return containers;
}
}