Merge pull request #37 from GamerDuck123/master

Added Title and Sub Title support
This commit is contained in:
LOOHP 2021-12-21 22:46:24 +00:00 committed by GitHub
commit fa11c0d3b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 195 additions and 2 deletions

7
.gitignore vendored
View File

@ -6,4 +6,9 @@
target/
# Mac OS
.DS_Store
.DS_Store
# Eclipse
.classpath
.project
.settings/

9
.gitignore.bak Normal file
View File

@ -0,0 +1,9 @@
# IntelliJ IDEA
*.iml
.idea/
# Maven
target/
# Mac OS
.DS_Store

View File

@ -21,6 +21,9 @@ import com.loohp.limbo.server.packets.PacketPlayOutPlayerListHeaderFooter;
import com.loohp.limbo.server.packets.PacketPlayOutPositionAndLook;
import com.loohp.limbo.server.packets.PacketPlayOutResourcePackSend;
import com.loohp.limbo.server.packets.PacketPlayOutRespawn;
import com.loohp.limbo.server.packets.PacketPlayOutSetTitleSubTitleText;
import com.loohp.limbo.server.packets.PacketPlayOutSetTitleText;
import com.loohp.limbo.server.packets.PacketPlayOutSetTitleTimes;
import com.loohp.limbo.utils.GameMode;
import net.md_5.bungee.api.ChatColor;
@ -308,4 +311,61 @@ public class Player extends LivingEntity implements CommandSender {
setPlayerListHeaderFooter(header == null ? EMPTY_CHAT_COMPONENT : new BaseComponent[] {new TextComponent(header)}, footer == null ? EMPTY_CHAT_COMPONENT : new BaseComponent[] {new TextComponent(footer)});
}
public void setTitle(BaseComponent[] title) {
try {
PacketPlayOutSetTitleText setTitle = new PacketPlayOutSetTitleText(title == null ? EMPTY_CHAT_COMPONENT : title);
clientConnection.sendPacket(setTitle);
} catch (IOException e) {
e.printStackTrace();
}
}
public void setTitle(BaseComponent title) {
setTitle(title == null ? EMPTY_CHAT_COMPONENT : new BaseComponent[] {title});
}
public void setTitle(String title) {
setTitle(title == null ? EMPTY_CHAT_COMPONENT : new BaseComponent[] {new TextComponent(title)});
}
public void setSubTitle(BaseComponent[] subTitle) {
try {
PacketPlayOutSetTitleSubTitleText setSubTitle = new PacketPlayOutSetTitleSubTitleText(subTitle == null ? EMPTY_CHAT_COMPONENT : subTitle);
clientConnection.sendPacket(setSubTitle);
} catch (IOException e) {
e.printStackTrace();
}
}
public void setSubTitle(BaseComponent subTitle) {
setSubTitle(subTitle == null ? EMPTY_CHAT_COMPONENT : new BaseComponent[] {subTitle});
}
public void setSubTitle(String subTitle) {
setSubTitle(subTitle == null ? EMPTY_CHAT_COMPONENT : new BaseComponent[] {new TextComponent(subTitle)});
}
public void setTitleTimer(Integer fadeIn, Integer stay, Integer fadeOut) {
try {
PacketPlayOutSetTitleTimes setTitleTimes = new PacketPlayOutSetTitleTimes(fadeIn, stay, fadeOut);
clientConnection.sendPacket(setTitleTimes);
} catch (IOException e) {
e.printStackTrace();
}
}
public void setTitleSubTitle(BaseComponent[] title, BaseComponent[] subTitle, Integer fadeIn, Integer stay, Integer fadeOut) {
setTitleTimer(fadeIn, stay, fadeOut);
setTitle(title);
setSubTitle(subTitle);
}
public void setTitleSubTitle(BaseComponent title, BaseComponent subTitle, Integer fadeIn, Integer stay, Integer fadeOut) {
setTitleSubTitle(new BaseComponent[] {title}, new BaseComponent[] {subTitle}, fadeIn, stay, fadeOut);
}
public void setTitleSubTitle(String title, String subTitle, Integer fadeIn, Integer stay, Integer fadeOut) {
setTitleSubTitle(new BaseComponent[] {new TextComponent(title)}, new BaseComponent[] {new TextComponent(subTitle)}, fadeIn, stay, fadeOut);
}
}

View File

@ -0,0 +1,35 @@
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;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.chat.ComponentSerializer;
public class PacketPlayOutSetTitleSubTitleText extends PacketOut {
private BaseComponent[] subTitle;
public PacketPlayOutSetTitleSubTitleText(BaseComponent[] subTitle) {
this.subTitle = subTitle;
}
public BaseComponent[] getSubTitle() {
return subTitle;
}
@Override
public byte[] serializePacket() throws IOException {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
DataOutputStream output = new DataOutputStream(buffer);
output.writeByte(Packet.getPlayOut().get(getClass()));
DataTypeIO.writeString(output, ComponentSerializer.toString(subTitle), StandardCharsets.UTF_8);
return buffer.toByteArray();
}
}

View File

@ -0,0 +1,36 @@
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;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.chat.ComponentSerializer;
public class PacketPlayOutSetTitleText extends PacketOut {
private BaseComponent[] titleText;
public PacketPlayOutSetTitleText(BaseComponent[] titleText) {
this.titleText = titleText;
}
public BaseComponent[] getTitle() {
return titleText;
}
@Override
public byte[] serializePacket() throws IOException {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
DataOutputStream output = new DataOutputStream(buffer);
output.writeByte(Packet.getPlayOut().get(getClass()));
DataTypeIO.writeString(output, ComponentSerializer.toString(titleText), StandardCharsets.UTF_8);
return buffer.toByteArray();
}
}

View File

@ -0,0 +1,45 @@
package com.loohp.limbo.server.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
public class PacketPlayOutSetTitleTimes extends PacketOut {
private Integer fadeIn;
private Integer stay;
private Integer fadeOut;
public PacketPlayOutSetTitleTimes(Integer fadeIn, Integer stay, Integer fadeOut) {
this.fadeIn = fadeIn;
this.stay = stay;
this.fadeOut = fadeOut;
}
public Integer getFadeIn() {
return fadeIn;
}
public Integer getStay() {
return stay;
}
public Integer getFadeOut() {
return fadeOut;
}
@Override
public byte[] serializePacket() throws IOException {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
DataOutputStream output = new DataOutputStream(buffer);
output.writeByte(Packet.getPlayOut().get(getClass()));
output.writeInt(fadeIn);
output.writeInt(stay);
output.writeInt(fadeOut);
return buffer.toByteArray();
}
}

View File

@ -45,7 +45,10 @@
"PacketPlayOutSpawnEntityLiving": "0x02",
"PacketPlayOutHeldItemChange": "0x48",
"PacketPlayOutPlayerListHeaderFooter": "0x5F",
"PacketPlayOutResourcePackSend": "0x3C"
"PacketPlayOutResourcePackSend": "0x3C",
"PacketPlayOutSetTitleTimes": "0x5B",
"PacketPlayOutSetTitleText": "0x5A",
"PacketPlayOutSetTitleSubTitleText": "0x58"
},
"StatusIn": {
"0x01": "PacketStatusInPing",