@lusu007 Hier gibts ne Anleitung dazu: http://postcrafter.de/viewtopic.php?f=15&t=1919
Das funktioniert wohl in der 1.8 (ohne ProtocolHack) nicht mehr
Das funktioniert wohl in der 1.8 (ohne ProtocolHack) nicht mehr
In Spigot 1.8 sind es dann PacketPlayOutTitle und PacketPlayOutPlayerListHeaderFooter@lusu007 Hier gibts ne Anleitung dazu: http://postcrafter.de/viewtopic.php?f=15&t=1919
Das funktioniert wohl in der 1.8 (ohne ProtocolHack) nicht mehr
@lusu007 Hier gibts ne Anleitung dazu: http://postcrafter.de/viewtopic.php?f=15&t=1919
Das funktioniert wohl in der 1.8 (ohne ProtocolHack) nicht mehr
Ist teilweise ein Bug von Intelli.Ich kann die Action.TITLE nicht importieren. Mein Code ist im Anhang.
Was ist daran falsch?
Du kannst den JSON-String auch dynamisch machen und sogar auf Fehler verzichten. Das geht einfach mit:Ich kann die Action.TITLE nicht importieren. Mein Code ist im Anhang.
Was ist daran falsch?
CraftChatMessage.fromString(String string, boolean keepNewLine);
PacketAPI.getInstance().setTitle(p, PacketPlayOutTitle.Action.TITLE, CraftChatMessage.fromString("Herzlich Willkommen", true);
Du kannst den JSON-String auch dynamisch machen und sogar auf Fehler verzichten. Das geht einfach mit:
PHP:CraftChatMessage.fromString(String string, boolean keepNewLine);
Beim String kannst du deinen Text angeben, den boolean setze ich eigentlich immer auf true, da der dafür sorgt, dass (bin mir nicht ganz sicher) ein Zeilenumbruch gemacht wird (\n).
Du kannst deinen Text dann so angleichen:
PHP:PacketAPI.getInstance().setTitle(p, PacketPlayOutTitle.Action.TITLE, CraftChatMessage.fromString("Herzlich Willkommen", true);
Farbcodes können dann dennoch ganz einfach weiterhin verwendet werden.
JSON ist nicht blöd ... Außerdem kannst du auch genauso gut einen JSON writer (z.B. GSON) verwendendiese 'blöde' JSON Format
Und damit hübsche Serialize / Deserialize Methoden schreibenJSON ist nicht blöd ... Außerdem kannst du auch genauso gut einen JSON writer (z.B. GSON) verwenden![]()
JSON ist nicht blöd ... Außerdem kannst du auch genauso gut einen JSON writer (z.B. GSON) verwenden![]()
Und damit hübsche Serialize / Deserialize Methoden schreiben![]()
Ja JSON ist auch nicht blöd. Ich finde nur das das immer aufwendig ist die ganzen Klammern und so zu setzten.![]()
Serialization ist eine... naja sagen wir mal Grundlegende Methode in Java. Es kommt ganz auf den Anwendungszweck an. Allgemein kann man das nicht sagen.Ach so.
Brauch man das für BungeeeCord?
Eigentlich werden nur Objekt Zustände in [...] gespeichert um dann bei der deserialisierung wieder zu Objekten umgewandelt zu werden.Ach so.
Brauch man das für BungeeeCord?
Ok: Hier bekommst du einen Teil des Codes:Code wäre recht angebracht.
package de.Nico.timegames.voting;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.omg.CORBA.portable.ValueOutputStream;
import de.Nico.timegames.Global;
public class Map {
List<Location> loclist = new ArrayList<Location>();
String name;
public int vote;
public Map(String name, List<Location> loclist){
this.loclist = loclist;
this.name = name;
vote = 0;
}
public String getName(){
return name;
}
public void addVote(){
vote++;
}
public void spawnPlayers(){
int i = 0;
for(Player all : Bukkit.getOnlinePlayers()){
all.teleport(loclist.get(i)); //Zeile 34
Global.locs.put(all.getName(), loclist.get(i));
i++;
}
}
}
package de.Nico.timegames.countdown;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import de.Nico.timegames.Global;
import de.Nico.timegames.Main;
import de.Nico.timegames.game.GameState;
import de.Nico.timegames.stats.Stats_Reader.Stats_Data;
import de.Nico.timegames.stats.Stats_Reader.Stats_Writer;
import de.Nico.timegames.utils.BossHealth;
import de.Nico.timegames.voting.Voting_Settings;
public class Lobby {
public static int LobbyCounter = 120;
public static void startLobby(){
Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getInstance(), new Runnable() {
@SuppressWarnings("deprecation")
public void run() {
if(Main.status == GameState.LOBBY){
if(Bukkit.getOnlinePlayers().length >= 2){
if(LobbyCounter == 120 || LobbyCounter == 90 || LobbyCounter == 60 || LobbyCounter == 30 || LobbyCounter == 15 || LobbyCounter == 10
|| LobbyCounter == 5 || LobbyCounter == 4 || LobbyCounter == 3 || LobbyCounter == 2 || LobbyCounter == 1){
Bukkit.broadcastMessage(Main.pr+"§aDas Spiel Startet in §c"+LobbyCounter+" §aSekunden.");
}
for(Player all : Bukkit.getOnlinePlayers()){
all.setLevel(LobbyCounter);
all.setExp(0);
double b = LobbyCounter;
BossHealth.displayText(all, "§3TimeGames §e| §aLobby §b"+LobbyCounter, b/120);
}
if(LobbyCounter == 12){
Global.voting = false;
Voting_Settings.endVote();
Bukkit.broadcastMessage(Main.pr+"Die Map "+Global.winMap.getName()+" hat das Voting mit "+Global.winMap.vote+" Stimmen gewonnen.");
}
if(LobbyCounter == 0){
Main.status = GameState.WARMUP;
Bukkit.broadcastMessage(Main.pr+"§6Das Spiel hat begonnen.");
WarmUp.startWarmUp();
Global.winMap.spawnPlayers();
for(Player all : Bukkit.getOnlinePlayers()){
all.getInventory().clear();
all.getInventory().setHelmet(null);
all.getInventory().setChestplate(null);
all.getInventory().setLeggings(null);
all.getInventory().setBoots(null);
all.setFoodLevel(20);
all.setHealth(20D);
all.setLevel(0);
all.setExp(0);
Global.alive.add(all.getName());
if(Main.sql == true){
Stats_Writer.addStats(Stats_Data.SpieleGespielt, all.getName(), 1);
}
}
}
LobbyCounter--;
}else{
for(Player all : Bukkit.getOnlinePlayers()){
all.setLevel(LobbyCounter);
all.setExp(0);
BossHealth.displayText(all, "§3TimeGames §e| §aLobby §cWarte...", 1);
}
LobbyCounter = 120;
}
}
}
}, 0L, 20L);
}
}
aber deswegen smiert doch nicht mein Server ab, aber danke
hat jemand noch eine Idee? Denn es ist total blöd, wenn Lobby und alle Maps auf einer Welt sein müssen?aber deswegen smiert doch nicht mein Server ab, aber danke
hat jemand noch eine Idee? Denn es ist total blöd, wenn Lobby und alle Maps auf einer Welt sein müssen?
//EDIT Ich hätte noch eine Frage, weiß jemand wie ich in Chest Heilungsppitions legen kann, also die genaue ID. Hier ist eine Beispielzeile:
items.add(new ItemStack(Material.ARROW,6))