RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
ChatMessage.java
1package com.osroyale.game.world.entity.mob.player.relations;
2
3import com.osroyale.util.ChatCodec;
4
39
40public final class ChatMessage {
41
45 public static final int CHARACTER_LIMIT = 100;
46
47 private final ChatColor color;
48 private final ChatEffect effect;
49 private final byte[] encoded;
50
51 private ChatMessage(byte[] encoded) {
52 this(encoded, ChatColor.YELLOW, ChatEffect.NONE);
53 }
54
55 private ChatMessage(byte[] encoded, ChatColor color, ChatEffect effect) {
56 this.encoded = encoded;
57 this.color = color;
58 this.effect = effect;
59 }
60
61 public static ChatMessage create(String message) {
62 return create(message, ChatColor.YELLOW, ChatEffect.NONE);
63 }
64
65 public static ChatMessage create(String message, ChatColor color) {
66 return create(message, color, ChatEffect.NONE);
67 }
68
69 public static ChatMessage create(String message, ChatColor color, ChatEffect effect) {
70 return new ChatMessage(ChatCodec.encode(message.isEmpty() || message.length() > CHARACTER_LIMIT ? "Cabbage" : message), color, effect);
71 }
72
73 public boolean isValid() {
74 if (color.getCode() < 0 || color.getCode() >= ChatColor.values().length) {
75 return false;
76 }
77 if (effect.getCode() < 0 || effect.getCode() >= ChatColor.values().length) {
78 return false;
79 }
80 return encoded.length != 0 && encoded.length <= CHARACTER_LIMIT;
81 }
82
83 public ChatColor getColor() {
84 return color;
85 }
86
87 public ChatEffect getEffect() {
88 return effect;
89 }
90
91 public byte[] getEncoded() {
92 return encoded;
93 }
94
95}