Skip to content

Commit 3caa6bb

Browse files
authored
Merge pull request #31 from aurevelle/feat/rewrite
Added Verified and Unverified tags
2 parents b2d246d + 763a72b commit 3caa6bb

2 files changed

Lines changed: 128 additions & 119 deletions

File tree

src/main/java/com/roxiun/mellow/api/seraph/SeraphApi.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,9 +168,8 @@ private List<SeraphTag> parseTags(String response) {
168168
? tagObj.get("textColor").getAsInt()
169169
: 0;
170170

171-
// Skip seraph.verified and seraph.advertisement tags
171+
// Skip seraph.advertisement tags
172172
if (
173-
"seraph.verified".equals(tagName) ||
174173
"seraph.advertisement".equals(tagName)
175174
) {
176175
continue;

src/main/java/com/roxiun/mellow/util/formatting/FormattingUtils.java

Lines changed: 127 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -141,129 +141,139 @@ public static String formatUrchinTagIcon(UrchinTag tag) {
141141
}
142142

143143
public static String formatSeraphTags(List<SeraphTag> tags) {
144-
return String.join(
145-
"\n§c",
146-
tags
147-
.stream()
148-
.map(tag -> {
149-
// Don't skip unmapped tags - show them using tag name and tooltip
150-
if (
151-
tag.getTagName() != null &&
152-
!tag.getTagName().isEmpty() &&
153-
!"seraph.verified".equals(tag.getTagName()) &&
154-
!"seraph.advertisement".equals(tag.getTagName())
155-
) {
156-
// Format mapped tags nicely, or show unmapped ones with nice formatting
157-
String formattedTag = formatSeraphTag(tag.getTagName());
158-
if (formattedTag != null && !formattedTag.isEmpty()) {
159-
return (
160-
formattedTag + " §7(" + tag.getTooltip() + ")"
161-
);
162-
} else {
163-
// For unmapped tags, create a nicely formatted display name
164-
String baseName = tag
165-
.getTagName()
166-
.replace("seraph.", "");
167-
String displayName = capitalizeWords(baseName);
168-
return (
169-
"§7" +
170-
displayName +
171-
" §7(" +
172-
tag.getTooltip() +
173-
")"
174-
);
175-
}
176-
} else if (
177-
tag.getTagName() == null || tag.getTagName().isEmpty()
178-
) {
179-
// If tag has no tag_name but has tooltip, show it with generic label
180-
if (
181-
tag.getTooltip() != null &&
182-
!tag.getTooltip().isEmpty()
183-
) {
184-
return "§7Other §7(" + tag.getTooltip() + ")";
185-
} else {
186-
return null;
187-
}
188-
} else {
189-
// This is seraph.verified - skip it
190-
return null;
191-
}
192-
})
193-
.filter(tag -> tag != null && !tag.trim().isEmpty())
194-
.toArray(String[]::new)
195-
);
144+
boolean hasVerifiedTag = tags.stream()
145+
.anyMatch(tag -> "seraph.verified".equalsIgnoreCase(tag.getTagName()));
146+
147+
String verificationStatus = hasVerifiedTag ? "§a(Verified)" : "§c(Not Verified)";
148+
149+
String formattedTags = tags.stream()
150+
.map(tag -> {
151+
// Don't skip unmapped tags - show them using tag name and tooltip
152+
if (
153+
tag.getTagName() != null &&
154+
!tag.getTagName().isEmpty() &&
155+
!"seraph.verified".equals(tag.getTagName()) &&
156+
!"seraph.advertisement".equals(tag.getTagName())
157+
) {
158+
// Format mapped tags nicely, or show unmapped ones with nice formatting
159+
String formattedTag = formatSeraphTag(tag.getTagName());
160+
if (formattedTag != null && !formattedTag.isEmpty()) {
161+
return (
162+
formattedTag + " §7(" + tag.getTooltip() + ")"
163+
);
164+
} else {
165+
// For unmapped tags, create a nicely formatted display name
166+
String baseName = tag
167+
.getTagName()
168+
.replace("seraph.", "");
169+
String displayName = capitalizeWords(baseName);
170+
return (
171+
"§7" +
172+
displayName +
173+
" §7(" +
174+
tag.getTooltip() +
175+
")"
176+
);
177+
}
178+
} else if (
179+
tag.getTagName() == null || tag.getTagName().isEmpty()
180+
) {
181+
// If tag has no tag_name but has tooltip, show it with generic label
182+
if (
183+
tag.getTooltip() != null &&
184+
!tag.getTooltip().isEmpty()
185+
) {
186+
return "§7Other §7(" + tag.getTooltip() + ")";
187+
} else {
188+
return null;
189+
}
190+
} else {
191+
// This is seraph.verified or seraph.advertisement - skip it in the list
192+
return null;
193+
}
194+
})
195+
.filter(tag -> tag != null && !tag.trim().isEmpty())
196+
.collect(Collectors.joining(" §7| "));
197+
198+
if (formattedTags.isEmpty()) {
199+
return verificationStatus;
196200
}
201+
return formattedTags + " " + verificationStatus;
202+
}
197203

198-
public static String formatSeraphTag(String tagName) {
199-
if (tagName == null) return "";
204+
public static String formatSeraphTag(String tagName) {
205+
if (tagName == null) return "";
200206

201-
switch (tagName.toLowerCase()) {
202-
case "seraph.sniping":
203-
case "seraph.blatant_cheating":
204-
return "§4§lSniping/Cheating"; // darkred as specified
205-
case "seraph.legit_sniping":
206-
return "§c§lLegit Sniper"; // lightred as specified
207-
case "seraph.potential_sniper":
208-
return "§e§lPotential Sniper"; // yellow as specified
209-
case "seraph.bot":
210-
return "§8§lBot"; // grey as specified
211-
case "seraph.alt":
212-
return "§d§lAlt"; // pink as specified
213-
case "seraph.safelist.personal":
214-
case "seraph.safelist.group":
215-
case "seraph.safelist.global":
216-
return "§a§lSafelist"; // green as specified
217-
case "seraph.annoylist":
218-
return "§e§lAnnoying"; // yellow as specified
219-
case "seraph.encounters":
220-
return "§c§lEncounters"; // lightred as specified
221-
case "seraph.cookie":
222-
return "§c§lEncounters"; // lightred as specified
223-
case "seraph.caution":
224-
return "§6§lCaution"; // 0xffc107 = §6 as specified
225-
case "seraph.closet_cheating":
226-
return "§e§lCloset Cheater"; // yellow/lightred-like
227-
default:
228-
// Skip unmapped tags
229-
return "";
230-
}
207+
switch (tagName.toLowerCase()) {
208+
case "seraph.sniping":
209+
case "seraph.blatant_cheating":
210+
return "§4§lSniping/Cheating"; // darkred as specified
211+
case "seraph.legit_sniping":
212+
return "§c§lLegit Sniper"; // lightred as specified
213+
case "seraph.potential_sniper":
214+
return "§e§lPotential Sniper"; // yellow as specified
215+
case "seraph.bot":
216+
return "§8§lBot"; // grey as specified
217+
case "seraph.alt":
218+
return "§d§lAlt"; // pink as specified
219+
case "seraph.safelist.personal":
220+
case "seraph.safelist.group":
221+
case "seraph.safelist.global":
222+
return "§a§lSafelist"; // green as specified
223+
case "seraph.annoylist":
224+
return "§e§lAnnoying"; // yellow as specified
225+
case "seraph.encounters":
226+
return "§c§lEncounters"; // lightred as specified
227+
case "seraph.cookie":
228+
return "§c§lEncounters"; // lightred as specified
229+
case "seraph.caution":
230+
return "§6§lCaution"; // 0xffc107 = §6 as specified
231+
case "seraph.closet_cheating":
232+
return "§e§lCloset Cheater"; // yellow/lightred-like
233+
case "seraph.verified":
234+
return "§a§lVerified";
235+
default:
236+
// Skip unmapped tags
237+
return "";
231238
}
239+
}
232240

233-
public static String formatSeraphTagIcon(SeraphTag tag) {
234-
String tagName = tag.getTagName().toLowerCase();
235-
switch (tagName) {
236-
case "seraph.sniping":
237-
return "§8[§4S§8]";
238-
case "seraph.blatant_cheating":
239-
return "§8[§4BC§8]";
240-
case "seraph.legit_sniping":
241-
return "§8[§cLS§8]";
242-
case "seraph.potential_sniper":
243-
return "§8[§ePS§8]";
244-
case "seraph.bot":
245-
return "§8[§8BOT§8]";
246-
case "seraph.alt":
247-
return "§8[§dALT§8]";
248-
case "seraph.safelist.personal":
249-
case "seraph.safelist.group":
250-
case "seraph.safelist.global":
251-
return "§8[§2§l✓§8]";
252-
case "seraph.annoylist":
253-
return "§8[§eAN§8]";
254-
case "seraph.encounters":
255-
return "§8[§eSEEN§8]";
256-
case "seraph.cookie":
257-
return "§8[§cCOOKIE§8]";
258-
case "seraph.caution":
259-
return "§8[§6C§8]";
260-
case "seraph.closet_cheating":
261-
return "§8[§eCC§8]";
262-
default:
263-
// Skip unmapped tags
264-
return "";
265-
}
241+
public static String formatSeraphTagIcon(SeraphTag tag) {
242+
String tagName = tag.getTagName().toLowerCase();
243+
switch (tagName) {
244+
case "seraph.sniping":
245+
return "§8[§4S§8]";
246+
case "seraph.blatant_cheating":
247+
return "§8[§4BC§8]";
248+
case "seraph.legit_sniping":
249+
return "§8[§cLS§8]";
250+
case "seraph.potential_sniper":
251+
return "§8[§ePS§8]";
252+
case "seraph.bot":
253+
return "§8[§8BOT§8]";
254+
case "seraph.alt":
255+
return "§8[§dALT§8]";
256+
case "seraph.safelist.personal":
257+
case "seraph.safelist.group":
258+
case "seraph.safelist.global":
259+
return "§8[§2§l✓§8]";
260+
case "seraph.annoylist":
261+
return "§8[§eAN§8]";
262+
case "seraph.encounters":
263+
return "§8[§eSEEN§8]";
264+
case "seraph.cookie":
265+
return "§8[§cCOOKIE§8]";
266+
case "seraph.caution":
267+
return "§8[§6C§8]";
268+
case "seraph.closet_cheating":
269+
return "§8[§eCC§8]";
270+
case "seraph.verified":
271+
return "§8[§2§l✓§8]";
272+
default:
273+
// Skip unmapped tags
274+
return "";
266275
}
276+
}
267277

268278
public static String formatStars(String text) {
269279
try {

0 commit comments

Comments
 (0)