Experimental Automatic Tooltip Mson
This commit is contained in:
parent
19f38125e4
commit
5323829018
@ -40,7 +40,7 @@ public class CmdMassiveCoreTest extends MassiveCommand
|
|||||||
public void perform() throws MassiveException
|
public void perform() throws MassiveException
|
||||||
{
|
{
|
||||||
|
|
||||||
message(mson("This is your ", mson("item").tooltip(me.getItemInHand())));
|
message(mson("This is your ", mson("item").item(me.getItemInHand())));
|
||||||
// OLD STUFF
|
// OLD STUFF
|
||||||
/*// Args
|
/*// Args
|
||||||
ParticleEffect particleEffect = this.readArg();
|
ParticleEffect particleEffect = this.readArg();
|
||||||
|
@ -125,15 +125,11 @@ public class Mson implements Serializable
|
|||||||
protected boolean isInheritedObfuscated() { return hasParent() && getParent().isEffectiveObfuscated(); }
|
protected boolean isInheritedObfuscated() { return hasParent() && getParent().isEffectiveObfuscated(); }
|
||||||
|
|
||||||
// FIELD: The Events which happen when you click, hover over or shift-click the message
|
// FIELD: The Events which happen when you click, hover over or shift-click the message
|
||||||
private final MsonEvent clickEvent;
|
protected final MsonEvent clickEvent;
|
||||||
public MsonEvent getClickEvent() { return this.clickEvent; }
|
protected final MsonEvent hoverEvent;
|
||||||
public MsonEvent getEffectiveClickEvent() { return clickEvent != null ? clickEvent : getInheritedClickEvent(); }
|
public MsonEvent getEvent(MsonEventType type) { return type.get(this); }
|
||||||
protected MsonEvent getInheritedClickEvent() { return this.hasParent() ? this.getParent().getEffectiveClickEvent() : null; }
|
public MsonEvent getEffectiveEvent(MsonEventType type) { return type.get(this) != null ? type.get(this) : getInheritedEvent(type); }
|
||||||
|
protected MsonEvent getInheritedEvent(MsonEventType type) { return this.hasParent() ? this.getParent().getEffectiveEvent(type) : null; }
|
||||||
private final MsonEvent hoverEvent;
|
|
||||||
public MsonEvent getHoverEvent() { return this.hoverEvent; }
|
|
||||||
public MsonEvent getEffectiveHoverEvent() { return hoverEvent != null ? hoverEvent : getInheritedHoverEvent(); }
|
|
||||||
protected MsonEvent getInheritedHoverEvent() { return this.hasParent() ? this.getParent().getEffectiveHoverEvent() : null; }
|
|
||||||
|
|
||||||
private final String insertionString;
|
private final String insertionString;
|
||||||
public String getInsertionString() { return this.insertionString; }
|
public String getInsertionString() { return this.insertionString; }
|
||||||
@ -196,8 +192,8 @@ public class Mson implements Serializable
|
|||||||
if (this.isUnderlined() != null) return false;
|
if (this.isUnderlined() != null) return false;
|
||||||
if (this.isStrikethrough() != null) return false;
|
if (this.isStrikethrough() != null) return false;
|
||||||
if (this.isObfuscated() != null) return false;
|
if (this.isObfuscated() != null) return false;
|
||||||
if (this.getClickEvent() != null) return false;
|
if (this.getEvent(MsonEventType.CLICK) != null) return false;
|
||||||
if (this.getHoverEvent() != null) return false;
|
if (this.getEvent(MsonEventType.HOVER) != null) return false;
|
||||||
if (this.getInsertionString() != null) return false;
|
if (this.getInsertionString() != null) return false;
|
||||||
if (this.hasExtra()) return false;
|
if (this.hasExtra()) return false;
|
||||||
return true;
|
return true;
|
||||||
@ -205,8 +201,8 @@ public class Mson implements Serializable
|
|||||||
|
|
||||||
public boolean hasSpecialBehaviour()
|
public boolean hasSpecialBehaviour()
|
||||||
{
|
{
|
||||||
if (this.getClickEvent() != null) return true;
|
if (this.getEvent(MsonEventType.CLICK) != null) return true;
|
||||||
if (this.getHoverEvent() != null) return true;
|
if (this.getEvent(MsonEventType.HOVER) != null) return true;
|
||||||
if (this.getInsertionString() != null) return true;
|
if (this.getInsertionString() != null) return true;
|
||||||
|
|
||||||
if (this.hasExtra())
|
if (this.hasExtra())
|
||||||
@ -231,8 +227,19 @@ public class Mson implements Serializable
|
|||||||
public Mson underlined(Boolean underlined) { return Mson.valueOf(text, color, bold, italic, underlined, strikethrough, obfuscated, clickEvent, hoverEvent, insertionString, extra, parent); }
|
public Mson underlined(Boolean underlined) { return Mson.valueOf(text, color, bold, italic, underlined, strikethrough, obfuscated, clickEvent, hoverEvent, insertionString, extra, parent); }
|
||||||
public Mson strikethrough(Boolean strikethrough) { return Mson.valueOf(text, color, bold, italic, underlined, strikethrough, obfuscated, clickEvent, hoverEvent, insertionString, extra, parent); }
|
public Mson strikethrough(Boolean strikethrough) { return Mson.valueOf(text, color, bold, italic, underlined, strikethrough, obfuscated, clickEvent, hoverEvent, insertionString, extra, parent); }
|
||||||
public Mson obfuscated(Boolean obfuscated) { return Mson.valueOf(text, color, bold, italic, underlined, strikethrough, obfuscated, clickEvent, hoverEvent, insertionString, extra, parent); }
|
public Mson obfuscated(Boolean obfuscated) { return Mson.valueOf(text, color, bold, italic, underlined, strikethrough, obfuscated, clickEvent, hoverEvent, insertionString, extra, parent); }
|
||||||
public Mson clickEvent(MsonEvent clickEvent) { return Mson.valueOf(text, color, bold, italic, underlined, strikethrough, obfuscated, clickEvent, hoverEvent, insertionString, extra, parent); }
|
|
||||||
public Mson hoverEvent(MsonEvent hoverEvent) { return Mson.valueOf(text, color, bold, italic, underlined, strikethrough, obfuscated, clickEvent, hoverEvent, insertionString, extra, parent); }
|
public Mson event(Boolean tooltip, MsonEvent event)
|
||||||
|
{
|
||||||
|
MsonEventType type = event.getType();
|
||||||
|
Mson ret = type.set(this, event);
|
||||||
|
String created = event.createTooltip();
|
||||||
|
if (created == null) tooltip = false;
|
||||||
|
if (tooltip == null) tooltip = (this.getTooltip() == null && this.getItem() == null);
|
||||||
|
if (tooltip) ret = ret.tooltip(created);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
public Mson event(MsonEvent event) { return this.event(null, event); }
|
||||||
|
|
||||||
public Mson insertionString(String insertionString) { return Mson.valueOf(text, color, bold, italic, underlined, strikethrough, obfuscated, clickEvent, hoverEvent, insertionString, extra, parent); }
|
public Mson insertionString(String insertionString) { return Mson.valueOf(text, color, bold, italic, underlined, strikethrough, obfuscated, clickEvent, hoverEvent, insertionString, extra, parent); }
|
||||||
public Mson extra(List<Mson> extra) { return Mson.valueOf(text, color, bold, italic, underlined, strikethrough, obfuscated, clickEvent, hoverEvent, insertionString, extra, parent); }
|
public Mson extra(List<Mson> extra) { return Mson.valueOf(text, color, bold, italic, underlined, strikethrough, obfuscated, clickEvent, hoverEvent, insertionString, extra, parent); }
|
||||||
public Mson extra(Mson[] extra) { return Mson.valueOf(text, color, bold, italic, underlined, strikethrough, obfuscated, clickEvent, hoverEvent, insertionString, ImmutableList.copyOf(extra), parent); }
|
public Mson extra(Mson[] extra) { return Mson.valueOf(text, color, bold, italic, underlined, strikethrough, obfuscated, clickEvent, hoverEvent, insertionString, ImmutableList.copyOf(extra), parent); }
|
||||||
@ -264,25 +271,45 @@ public class Mson implements Serializable
|
|||||||
// CONVENIENCE MSON EVENT
|
// CONVENIENCE MSON EVENT
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
public Mson link(String link) { return this.clickEvent(MsonEvent.openUrl(link)); }
|
public Mson link(String link) { return this.event(MsonEvent.link(link)); }
|
||||||
|
|
||||||
public Mson suggest(String replace) { return this.clickEvent(MsonEvent.replace(replace)); }
|
public Mson suggest(String suggest) { return this.event(MsonEvent.suggest(suggest)); }
|
||||||
public Mson suggest(MassiveCommand command, String... args) { return this.clickEvent(MsonEvent.replace(command, args)); }
|
public Mson suggest(MassiveCommand command, String... args) { return this.event(MsonEvent.suggest(command, args)); }
|
||||||
public Mson suggest(MassiveCommand command, Iterable<String> args) { return this.clickEvent(MsonEvent.replace(command, args)); }
|
public Mson suggest(MassiveCommand command, Iterable<String> args) { return this.event(MsonEvent.suggest(command, args)); }
|
||||||
|
|
||||||
public Mson command(String command) { return this.clickEvent(MsonEvent.performCmd(command)); }
|
public Mson command(String command) { return this.event(MsonEvent.command(command)); }
|
||||||
public Mson command(MassiveCommand command, String... args) { return this.clickEvent(MsonEvent.performCmd(command, args)); }
|
public Mson command(MassiveCommand command, String... args) { return this.event(MsonEvent.command(command, args)); }
|
||||||
public Mson command(MassiveCommand command, Iterable<String> args) { return this.clickEvent(MsonEvent.performCmd(command, args)); }
|
public Mson command(MassiveCommand command, Iterable<String> args) { return this.event(MsonEvent.command(command, args)); }
|
||||||
|
|
||||||
public Mson tooltip(String tooltip) { return this.hoverEvent(MsonEvent.hoverText(tooltip)); }
|
public Mson tooltip(String tooltip) { return this.event(MsonEvent.tooltip(tooltip)); }
|
||||||
public Mson tooltip(String... tooltip) { return this.hoverEvent(MsonEvent.hoverText(tooltip)); }
|
public Mson tooltip(String... tooltip) { return this.event(MsonEvent.tooltip(tooltip)); }
|
||||||
public Mson tooltip(Collection<String> tooltip) { return this.hoverEvent(MsonEvent.hoverText(tooltip)); }
|
public Mson tooltip(Collection<String> tooltip) { return this.event(MsonEvent.tooltip(tooltip)); }
|
||||||
|
public Mson tooltipParse(String tooltip) { return this.event(MsonEvent.tooltipParse(tooltip)); }
|
||||||
|
public Mson tooltipParse(String... tooltip) { return this.event(MsonEvent.tooltipParse(tooltip)); }
|
||||||
|
public Mson tooltipParse(Collection<String> tooltip) { return this.event(MsonEvent.tooltipParse(tooltip)); }
|
||||||
|
|
||||||
public Mson tooltipParse(String tooltip) { return this.hoverEvent(MsonEvent.hoverTextParse(tooltip)); }
|
public Mson item(ItemStack item) { return this.event(MsonEvent.item(item)); }
|
||||||
public Mson tooltipParse(String... tooltip) { return this.hoverEvent(MsonEvent.hoverTextParse(tooltip)); }
|
|
||||||
public Mson tooltipParse(Collection<String> tooltip) { return this.hoverEvent(MsonEvent.hoverTextParse(tooltip)); }
|
|
||||||
|
|
||||||
public Mson tooltip(ItemStack item) { return this.hoverEvent(MsonEvent.item(item)); }
|
public String getLink() { return this.getEventValue(MsonEventAction.OPEN_URL); }
|
||||||
|
public String getSuggest() { return this.getEventValue(MsonEventAction.SUGGEST_COMMAND); }
|
||||||
|
public String getCommand() { return this.getEventValue(MsonEventAction.RUN_COMMAND); }
|
||||||
|
public String getTooltip() { return this.getEventValue(MsonEventAction.SHOW_TEXT); }
|
||||||
|
public String getItem() { return this.getEventValue(MsonEventAction.SHOW_ITEM); }
|
||||||
|
|
||||||
|
protected String getEventValue(MsonEventAction targetAction)
|
||||||
|
{
|
||||||
|
MsonEventType type = targetAction.getType();
|
||||||
|
|
||||||
|
MsonEvent event = this.getEvent(type);
|
||||||
|
if (event == null) return null;
|
||||||
|
|
||||||
|
MsonEventAction action = event.getAction();
|
||||||
|
if (action == null) return null;
|
||||||
|
|
||||||
|
if (action != targetAction) return null;
|
||||||
|
|
||||||
|
return event.getValue();
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// CONVENIENCE STYLE
|
// CONVENIENCE STYLE
|
||||||
@ -377,14 +404,23 @@ public class Mson implements Serializable
|
|||||||
this.strikethrough = strikethrough;
|
this.strikethrough = strikethrough;
|
||||||
this.obfuscated = obfuscated;
|
this.obfuscated = obfuscated;
|
||||||
|
|
||||||
// Click event
|
// Set Events
|
||||||
if ( clickEvent != null && ! clickEvent.isClickEvent()) throw new IllegalArgumentException(clickEvent.getEventActionType().name() + " is not a clickEventType");
|
|
||||||
this.clickEvent = clickEvent;
|
this.clickEvent = clickEvent;
|
||||||
|
|
||||||
// Hover event
|
|
||||||
if ( hoverEvent != null && ! hoverEvent.isHoverEvent()) throw new IllegalArgumentException(hoverEvent.getEventActionType().name() + " is not a hoverEventType");
|
|
||||||
this.hoverEvent = hoverEvent;
|
this.hoverEvent = hoverEvent;
|
||||||
|
|
||||||
|
// Validate Events
|
||||||
|
MsonEventType type;
|
||||||
|
MsonEvent event;
|
||||||
|
|
||||||
|
type = MsonEventType.CLICK;
|
||||||
|
event = this.getEvent(type);
|
||||||
|
if (event != null && event.getType() != type) throw new IllegalArgumentException(event.getAction().name() + " is not of type " + type);
|
||||||
|
|
||||||
|
type = MsonEventType.HOVER;
|
||||||
|
event = this.getEvent(type);
|
||||||
|
if (event != null && event.getType() != type) throw new IllegalArgumentException(event.getAction().name() + " is not of type " + type);
|
||||||
|
|
||||||
|
|
||||||
// Insertionstring
|
// Insertionstring
|
||||||
this.insertionString = insertionString;
|
this.insertionString = insertionString;
|
||||||
|
|
||||||
|
@ -24,10 +24,10 @@ public final class MsonEvent implements Serializable
|
|||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
private final MsonEventAction action;
|
private final MsonEventAction action;
|
||||||
public MsonEventAction getEventActionType() { return this.action; }
|
public MsonEventAction getAction() { return this.action; }
|
||||||
|
|
||||||
private final String value;
|
private final String value;
|
||||||
public String getActionText() { return this.value; }
|
public String getValue() { return this.value; }
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// CONSTRUCT
|
// CONSTRUCT
|
||||||
@ -39,75 +39,86 @@ public final class MsonEvent implements Serializable
|
|||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// TOOLTIP
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public String createTooltip()
|
||||||
|
{
|
||||||
|
String prefix = this.getAction().getTooltipPrefix();
|
||||||
|
if (prefix == null) return null;
|
||||||
|
return prefix + this.getValue();
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// FACTORY
|
// FACTORY
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
public static MsonEvent valueOf(MsonEventAction type, String action)
|
public static MsonEvent valueOf(MsonEventAction action, String value)
|
||||||
{
|
{
|
||||||
return new MsonEvent(type, action);
|
return new MsonEvent(action, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
// clickEvents
|
// clickEvents
|
||||||
public static MsonEvent openUrl(String url)
|
public static MsonEvent link(String url)
|
||||||
{
|
{
|
||||||
return MsonEvent.valueOf(MsonEventAction.OPEN_URL, url);
|
return MsonEvent.valueOf(MsonEventAction.OPEN_URL, url);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MsonEvent replace(String replace)
|
public static MsonEvent suggest(String replace)
|
||||||
{
|
{
|
||||||
return MsonEvent.valueOf(MsonEventAction.SUGGEST_COMMAND, replace);
|
return MsonEvent.valueOf(MsonEventAction.SUGGEST_COMMAND, replace);
|
||||||
}
|
}
|
||||||
public static MsonEvent replace(MassiveCommand cmd, String... args)
|
public static MsonEvent suggest(MassiveCommand cmd, String... args)
|
||||||
{
|
{
|
||||||
return MsonEvent.replace(cmd.getCommandLine(args));
|
return MsonEvent.suggest(cmd.getCommandLine(args));
|
||||||
}
|
}
|
||||||
public static MsonEvent replace(MassiveCommand cmd, Iterable<String> args)
|
public static MsonEvent suggest(MassiveCommand cmd, Iterable<String> args)
|
||||||
{
|
{
|
||||||
return MsonEvent.replace(cmd.getCommandLine(args));
|
return MsonEvent.suggest(cmd.getCommandLine(args));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MsonEvent performCmd(String cmd)
|
public static MsonEvent command(String cmd)
|
||||||
{
|
{
|
||||||
return MsonEvent.valueOf(MsonEventAction.RUN_COMMAND, cmd);
|
return MsonEvent.valueOf(MsonEventAction.RUN_COMMAND, cmd);
|
||||||
}
|
}
|
||||||
public static MsonEvent performCmd(MassiveCommand cmd, String... args)
|
public static MsonEvent command(MassiveCommand cmd, String... args)
|
||||||
{
|
{
|
||||||
return MsonEvent.performCmd(cmd.getCommandLine(args));
|
return MsonEvent.command(cmd.getCommandLine(args));
|
||||||
}
|
}
|
||||||
public static MsonEvent performCmd(MassiveCommand cmd, Iterable<String> args)
|
public static MsonEvent command(MassiveCommand cmd, Iterable<String> args)
|
||||||
{
|
{
|
||||||
return MsonEvent.performCmd(cmd.getCommandLine(args));
|
return MsonEvent.command(cmd.getCommandLine(args));
|
||||||
}
|
}
|
||||||
|
|
||||||
// showText
|
// showText
|
||||||
public static MsonEvent hoverText(String hoverText)
|
public static MsonEvent tooltip(String hoverText)
|
||||||
{
|
{
|
||||||
return MsonEvent.valueOf(MsonEventAction.SHOW_TEXT, hoverText);
|
return MsonEvent.valueOf(MsonEventAction.SHOW_TEXT, hoverText);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MsonEvent hoverText(String... hoverTexts)
|
public static MsonEvent tooltip(String... hoverTexts)
|
||||||
{
|
{
|
||||||
return MsonEvent.valueOf(MsonEventAction.SHOW_TEXT, Txt.implode(hoverTexts, "\n"));
|
return MsonEvent.valueOf(MsonEventAction.SHOW_TEXT, Txt.implode(hoverTexts, "\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MsonEvent hoverText(Collection<String> hoverTexts)
|
public static MsonEvent tooltip(Collection<String> hoverTexts)
|
||||||
{
|
{
|
||||||
return MsonEvent.valueOf(MsonEventAction.SHOW_TEXT, Txt.implode(hoverTexts, "\n"));
|
return MsonEvent.valueOf(MsonEventAction.SHOW_TEXT, Txt.implode(hoverTexts, "\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// showTextParsed
|
// showTextParsed
|
||||||
public static MsonEvent hoverTextParse(String hoverText)
|
public static MsonEvent tooltipParse(String hoverText)
|
||||||
{
|
{
|
||||||
return MsonEvent.valueOf(MsonEventAction.SHOW_TEXT, Txt.parse(hoverText));
|
return MsonEvent.valueOf(MsonEventAction.SHOW_TEXT, Txt.parse(hoverText));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MsonEvent hoverTextParse(String... hoverTexts)
|
public static MsonEvent tooltipParse(String... hoverTexts)
|
||||||
{
|
{
|
||||||
return MsonEvent.valueOf(MsonEventAction.SHOW_TEXT, Txt.parse(Txt.implode(hoverTexts, "\n")));
|
return MsonEvent.valueOf(MsonEventAction.SHOW_TEXT, Txt.parse(Txt.implode(hoverTexts, "\n")));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MsonEvent hoverTextParse(Collection<String> hoverTexts)
|
public static MsonEvent tooltipParse(Collection<String> hoverTexts)
|
||||||
{
|
{
|
||||||
return MsonEvent.valueOf(MsonEventAction.SHOW_TEXT, Txt.parse(Txt.implode(hoverTexts, "\n")));
|
return MsonEvent.valueOf(MsonEventAction.SHOW_TEXT, Txt.parse(Txt.implode(hoverTexts, "\n")));
|
||||||
}
|
}
|
||||||
@ -123,8 +134,7 @@ public final class MsonEvent implements Serializable
|
|||||||
// CONVENIENCE
|
// CONVENIENCE
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
public boolean isHoverEvent() { return this.getEventActionType().isHoverAction(); }
|
public MsonEventType getType() { return this.getAction().getType(); }
|
||||||
public boolean isClickEvent() { return this.getEventActionType().isClickAction(); }
|
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// EQUALS AND HASHCODE
|
// EQUALS AND HASHCODE
|
||||||
|
@ -1,45 +1,39 @@
|
|||||||
package com.massivecraft.massivecore.mson;
|
package com.massivecraft.massivecore.mson;
|
||||||
|
|
||||||
|
import com.massivecraft.massivecore.util.Txt;
|
||||||
|
|
||||||
public enum MsonEventAction
|
public enum MsonEventAction
|
||||||
{
|
{
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// ENUM
|
// ENUM
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
SUGGEST_COMMAND(),
|
SUGGEST_COMMAND,
|
||||||
RUN_COMMAND(),
|
RUN_COMMAND,
|
||||||
OPEN_URL(),
|
OPEN_URL,
|
||||||
SHOW_TEXT(true),
|
SHOW_TEXT,
|
||||||
SHOW_ITEM(true),
|
SHOW_ITEM
|
||||||
|
|
||||||
// End of list
|
// End of list
|
||||||
;
|
;
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// FIELD
|
// PROPERTIES
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
private boolean isHoverAction;
|
public MsonEventType getType()
|
||||||
public boolean isHoverAction() { return this.isHoverAction; }
|
|
||||||
|
|
||||||
// NOTE: This behaviour might change.
|
|
||||||
// So to check if something is a click action this method should be called.
|
|
||||||
// Doing !action.isHoverAction();
|
|
||||||
// Shouldn't be done outside of this class.
|
|
||||||
public boolean isClickAction() { return ! this.isHoverAction(); }
|
|
||||||
|
|
||||||
// -------------------------------------------- //
|
|
||||||
// CONSTRUCT
|
|
||||||
// -------------------------------------------- //
|
|
||||||
|
|
||||||
private MsonEventAction(boolean isHoveraction)
|
|
||||||
{
|
{
|
||||||
this.isHoverAction = isHoveraction;
|
if (this == SHOW_TEXT) return MsonEventType.HOVER;
|
||||||
|
if (this == SHOW_ITEM) return MsonEventType.HOVER;
|
||||||
|
return MsonEventType.CLICK;
|
||||||
}
|
}
|
||||||
|
|
||||||
private MsonEventAction()
|
public String getTooltipPrefix()
|
||||||
{
|
{
|
||||||
this(false);
|
if (this == SUGGEST_COMMAND) return Txt.parse("<h>Suggest: <c>");
|
||||||
|
if (this == RUN_COMMAND) return Txt.parse("<h>Command: <c>");
|
||||||
|
if (this == OPEN_URL) return Txt.parse("<h>Link: <c>");
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
72
src/com/massivecraft/massivecore/mson/MsonEventType.java
Normal file
72
src/com/massivecraft/massivecore/mson/MsonEventType.java
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
package com.massivecraft.massivecore.mson;
|
||||||
|
|
||||||
|
public abstract class MsonEventType
|
||||||
|
{
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// INSTANCE & CONSTRUCT
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public static MsonEventType CLICK = new MsonEventType()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public MsonEvent get(Mson mson)
|
||||||
|
{
|
||||||
|
return mson.clickEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Mson set(Mson mson, MsonEvent event)
|
||||||
|
{
|
||||||
|
return Mson.valueOf(
|
||||||
|
mson.getText(),
|
||||||
|
mson.getColor(),
|
||||||
|
mson.isBold(),
|
||||||
|
mson.isItalic(),
|
||||||
|
mson.isUnderlined(),
|
||||||
|
mson.isStrikethrough(),
|
||||||
|
mson.isObfuscated(),
|
||||||
|
event,
|
||||||
|
mson.getEvent(HOVER),
|
||||||
|
mson.getInsertionString(),
|
||||||
|
mson.getExtra(),
|
||||||
|
mson.getParent()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public static MsonEventType HOVER = new MsonEventType()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public MsonEvent get(Mson mson)
|
||||||
|
{
|
||||||
|
return mson.hoverEvent;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Mson set(Mson mson, MsonEvent event)
|
||||||
|
{
|
||||||
|
return Mson.valueOf(
|
||||||
|
mson.getText(),
|
||||||
|
mson.getColor(),
|
||||||
|
mson.isBold(),
|
||||||
|
mson.isItalic(),
|
||||||
|
mson.isUnderlined(),
|
||||||
|
mson.isStrikethrough(),
|
||||||
|
mson.isObfuscated(),
|
||||||
|
mson.getEvent(CLICK),
|
||||||
|
event,
|
||||||
|
mson.getInsertionString(),
|
||||||
|
mson.getExtra(),
|
||||||
|
mson.getParent()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// ABSTRACT
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public abstract MsonEvent get(Mson mson);
|
||||||
|
public abstract Mson set(Mson mson, MsonEvent event);
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user