forked from BLOCKFANTASY/LOOHP-Limbo
Added a way to change PlayerList Header and Footer
This commit is contained in:
parent
7e81f6b3be
commit
120f9dce3f
|
|
@ -55,6 +55,9 @@ public class ServerProperties {
|
||||||
private boolean resourcePackRequired;
|
private boolean resourcePackRequired;
|
||||||
private String resourcePackPrompt;
|
private String resourcePackPrompt;
|
||||||
|
|
||||||
|
private String tabHeader;
|
||||||
|
private String tabFooter;
|
||||||
|
|
||||||
Optional<BufferedImage> favicon;
|
Optional<BufferedImage> favicon;
|
||||||
|
|
||||||
public ServerProperties(File file) throws IOException {
|
public ServerProperties(File file) throws IOException {
|
||||||
|
|
@ -133,6 +136,9 @@ public class ServerProperties {
|
||||||
resourcePackRequired = Boolean.parseBoolean(prop.getProperty("required-resource-pack"));
|
resourcePackRequired = Boolean.parseBoolean(prop.getProperty("required-resource-pack"));
|
||||||
resourcePackPrompt = prop.getProperty("resource-pack-prompt");
|
resourcePackPrompt = prop.getProperty("resource-pack-prompt");
|
||||||
|
|
||||||
|
tabHeader = prop.getProperty("tab-header");
|
||||||
|
tabFooter = prop.getProperty("tab-footer");
|
||||||
|
|
||||||
File png = new File("server-icon.png");
|
File png = new File("server-icon.png");
|
||||||
if (png.exists()) {
|
if (png.exists()) {
|
||||||
try {
|
try {
|
||||||
|
|
@ -268,5 +274,13 @@ public class ServerProperties {
|
||||||
public String getResourcePackPrompt() {
|
public String getResourcePackPrompt() {
|
||||||
return resourcePackPrompt;
|
return resourcePackPrompt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getTabHeader() {
|
||||||
|
return tabHeader;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTabFooter() {
|
||||||
|
return tabFooter;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ import com.loohp.limbo.server.ClientConnection;
|
||||||
import com.loohp.limbo.server.packets.PacketPlayOutChat;
|
import com.loohp.limbo.server.packets.PacketPlayOutChat;
|
||||||
import com.loohp.limbo.server.packets.PacketPlayOutGameState;
|
import com.loohp.limbo.server.packets.PacketPlayOutGameState;
|
||||||
import com.loohp.limbo.server.packets.PacketPlayOutHeldItemChange;
|
import com.loohp.limbo.server.packets.PacketPlayOutHeldItemChange;
|
||||||
|
import com.loohp.limbo.server.packets.PacketPlayOutPlayerListHeaderFooter;
|
||||||
import com.loohp.limbo.server.packets.PacketPlayOutPositionAndLook;
|
import com.loohp.limbo.server.packets.PacketPlayOutPositionAndLook;
|
||||||
import com.loohp.limbo.server.packets.PacketPlayOutResourcePackSend;
|
import com.loohp.limbo.server.packets.PacketPlayOutResourcePackSend;
|
||||||
import com.loohp.limbo.server.packets.PacketPlayOutRespawn;
|
import com.loohp.limbo.server.packets.PacketPlayOutRespawn;
|
||||||
|
|
@ -272,5 +273,38 @@ public class Player extends LivingEntity implements CommandSender {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setPlayerListHeaderFooter(BaseComponent[] header, BaseComponent[] footer) {
|
||||||
|
try {
|
||||||
|
PacketPlayOutPlayerListHeaderFooter packsend = new PacketPlayOutPlayerListHeaderFooter(
|
||||||
|
ComponentSerializer.toString(header),
|
||||||
|
ComponentSerializer.toString(footer));
|
||||||
|
clientConnection.sendPacket(packsend);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlayerListHeader(BaseComponent[] header) {
|
||||||
|
try {
|
||||||
|
PacketPlayOutPlayerListHeaderFooter packsend = new PacketPlayOutPlayerListHeaderFooter(
|
||||||
|
ComponentSerializer.toString(header),
|
||||||
|
null);
|
||||||
|
clientConnection.sendPacket(packsend);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlayerListFooter(BaseComponent[] footer) {
|
||||||
|
try {
|
||||||
|
PacketPlayOutPlayerListHeaderFooter packsend = new PacketPlayOutPlayerListHeaderFooter(
|
||||||
|
null,
|
||||||
|
ComponentSerializer.toString(footer));
|
||||||
|
clientConnection.sendPacket(packsend);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -419,6 +419,8 @@ public class ClientConnection extends Thread {
|
||||||
sendPacket(state);
|
sendPacket(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RESOURCEPACK CODE ADDED BY GAMERDUCK123
|
||||||
|
|
||||||
if (properties.getResourcePackLink() != null && !properties.getResourcePackLink().equalsIgnoreCase("")) {
|
if (properties.getResourcePackLink() != null && !properties.getResourcePackLink().equalsIgnoreCase("")) {
|
||||||
if (properties.getResourcePackSHA() != null && !properties.getResourcePackSHA().equalsIgnoreCase("")) {
|
if (properties.getResourcePackSHA() != null && !properties.getResourcePackSHA().equalsIgnoreCase("")) {
|
||||||
//SEND RESOURCEPACK
|
//SEND RESOURCEPACK
|
||||||
|
|
@ -432,6 +434,20 @@ public class ClientConnection extends Thread {
|
||||||
} else {
|
} else {
|
||||||
//RESOURCEPACK NOT ENABLED
|
//RESOURCEPACK NOT ENABLED
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PLAYER LIST HEADER AND FOOTER CODE ADDED BY GAMERDUCK123
|
||||||
|
// Sadly due to the limitations of minecraft (?) I cannot get the footer to work alone, it needs a header to have a footer, BUT
|
||||||
|
// You can have just a header with no footer (which is weird!)
|
||||||
|
String tabHeader = "";
|
||||||
|
String tabFooter = "";
|
||||||
|
if (properties.getTabHeader() != null && !properties.getTabHeader().equalsIgnoreCase("")) {
|
||||||
|
tabHeader = properties.getTabHeader();
|
||||||
|
}
|
||||||
|
if (properties.getTabFooter() != null && !properties.getTabFooter().equalsIgnoreCase("")) {
|
||||||
|
tabFooter = properties.getTabFooter();
|
||||||
|
}
|
||||||
|
player.setPlayerListHeaderFooter(ComponentSerializer.parse(tabHeader),
|
||||||
|
ComponentSerializer.parse(tabFooter));
|
||||||
|
|
||||||
ready = true;
|
ready = true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
package com.loohp.limbo.server.packets;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.DataOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
import com.loohp.limbo.utils.DataTypeIO;
|
||||||
|
|
||||||
|
public class PacketPlayOutPlayerListHeaderFooter extends PacketOut{
|
||||||
|
|
||||||
|
private String header;
|
||||||
|
private String footer;
|
||||||
|
|
||||||
|
public PacketPlayOutPlayerListHeaderFooter(String header, String footer) {
|
||||||
|
this.header = header;
|
||||||
|
this.footer = footer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHeader() {
|
||||||
|
return header;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFooter() {
|
||||||
|
return footer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public byte[] serializePacket() throws IOException {
|
||||||
|
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
|
||||||
|
|
||||||
|
DataOutputStream output = new DataOutputStream(buffer);
|
||||||
|
output.writeByte(Packet.getPlayOut().get(getClass()));
|
||||||
|
DataTypeIO.writeString(output, header, StandardCharsets.UTF_8);
|
||||||
|
DataTypeIO.writeString(output, footer, StandardCharsets.UTF_8);
|
||||||
|
return buffer.toByteArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -43,7 +43,8 @@
|
||||||
"PacketPlayOutEntityMetadata": "0x4D",
|
"PacketPlayOutEntityMetadata": "0x4D",
|
||||||
"PacketPlayOutSpawnEntity": "0x00",
|
"PacketPlayOutSpawnEntity": "0x00",
|
||||||
"PacketPlayOutSpawnEntityLiving": "0x02",
|
"PacketPlayOutSpawnEntityLiving": "0x02",
|
||||||
"PacketPlayOutHeldItemChange": "0x48"
|
"PacketPlayOutHeldItemChange": "0x48",
|
||||||
|
"PacketPlayOutPlayerListHeaderFooter": "0x5E"
|
||||||
},
|
},
|
||||||
"StatusIn": {
|
"StatusIn": {
|
||||||
"0x01": "PacketStatusInPing",
|
"0x01": "PacketStatusInPing",
|
||||||
|
|
|
||||||
|
|
@ -57,4 +57,10 @@ handshake-verbose=true
|
||||||
motd={"text":"","extra":[{"text":"Limbo Server!","color":"yellow"}]}
|
motd={"text":"","extra":[{"text":"Limbo Server!","color":"yellow"}]}
|
||||||
|
|
||||||
#Server list version as string
|
#Server list version as string
|
||||||
version=Limbo!
|
version=Limbo!
|
||||||
|
|
||||||
|
#Tab-List Header
|
||||||
|
tab-header={"text":"","extra":[{"text":"Welcome to Limbo!","color":"green"}]}
|
||||||
|
|
||||||
|
#Tab-List Footer
|
||||||
|
tab-footer={"text":"","extra":[{"text":"Limbo Server by LOOHP","color":"yellow"}]}
|
||||||
Loading…
Reference in New Issue