api: add timestamps to message nodes, expose message id
This commit is contained in:
@@ -29,6 +29,13 @@ package net.runelite.api;
|
|||||||
*/
|
*/
|
||||||
public interface MessageNode
|
public interface MessageNode
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Get the id for this message node
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int getId();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the type of message.
|
* Gets the type of message.
|
||||||
*
|
*
|
||||||
@@ -95,4 +102,18 @@ public interface MessageNode
|
|||||||
* @param runeLiteFormatMessage the new message format
|
* @param runeLiteFormatMessage the new message format
|
||||||
*/
|
*/
|
||||||
void setRuneLiteFormatMessage(String runeLiteFormatMessage);
|
void setRuneLiteFormatMessage(String runeLiteFormatMessage);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the timestamp for the message, in seconds from the unix epoch.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int getTimestamp();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the timestamp of the message
|
||||||
|
*
|
||||||
|
* @param timestamp
|
||||||
|
*/
|
||||||
|
void setTimestamp(int timestamp);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,4 +36,8 @@ public class SetMessage
|
|||||||
* The new message value.
|
* The new message value.
|
||||||
*/
|
*/
|
||||||
private String value;
|
private String value;
|
||||||
|
/**
|
||||||
|
* Timestamp of the message.
|
||||||
|
*/
|
||||||
|
private int timestamp;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,15 +42,21 @@ public abstract class RSMessageNodeMixin implements RSMessageNode
|
|||||||
@Inject
|
@Inject
|
||||||
private String runeLiteFormatMessage;
|
private String runeLiteFormatMessage;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private int rl$timestamp;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
RSMessageNodeMixin()
|
RSMessageNodeMixin()
|
||||||
{
|
{
|
||||||
|
rl$timestamp = (int) (System.currentTimeMillis() / 1000L);
|
||||||
|
|
||||||
final SetMessage setMessage = new SetMessage();
|
final SetMessage setMessage = new SetMessage();
|
||||||
setMessage.setMessageNode(this);
|
setMessage.setMessageNode(this);
|
||||||
setMessage.setType(getType());
|
setMessage.setType(getType());
|
||||||
setMessage.setName(getName());
|
setMessage.setName(getName());
|
||||||
setMessage.setSender(getSender());
|
setMessage.setSender(getSender());
|
||||||
setMessage.setValue(getValue());
|
setMessage.setValue(getValue());
|
||||||
|
setMessage.setTimestamp(rl$timestamp);
|
||||||
client.getCallbacks().post(setMessage);
|
client.getCallbacks().post(setMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,6 +81,20 @@ public abstract class RSMessageNodeMixin implements RSMessageNode
|
|||||||
this.runeLiteFormatMessage = runeLiteFormatMessage;
|
this.runeLiteFormatMessage = runeLiteFormatMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
@Override
|
||||||
|
public int getTimestamp()
|
||||||
|
{
|
||||||
|
return rl$timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
@Override
|
||||||
|
public void setTimestamp(int timestamp)
|
||||||
|
{
|
||||||
|
this.rl$timestamp = timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@MethodHook(value = "setMessage", end = true)
|
@MethodHook(value = "setMessage", end = true)
|
||||||
public void setMessage(int type, String name, String sender, String value)
|
public void setMessage(int type, String name, String sender, String value)
|
||||||
@@ -82,6 +102,7 @@ public abstract class RSMessageNodeMixin implements RSMessageNode
|
|||||||
// Message nodes get reused after a time by calling setMessage.
|
// Message nodes get reused after a time by calling setMessage.
|
||||||
// Clear the runelite formatted message then.
|
// Clear the runelite formatted message then.
|
||||||
runeLiteFormatMessage = null;
|
runeLiteFormatMessage = null;
|
||||||
|
rl$timestamp = (int) (System.currentTimeMillis() / 1000L);
|
||||||
|
|
||||||
final SetMessage setMessage = new SetMessage();
|
final SetMessage setMessage = new SetMessage();
|
||||||
setMessage.setMessageNode(this);
|
setMessage.setMessageNode(this);
|
||||||
@@ -89,6 +110,7 @@ public abstract class RSMessageNodeMixin implements RSMessageNode
|
|||||||
setMessage.setName(name);
|
setMessage.setName(name);
|
||||||
setMessage.setSender(sender);
|
setMessage.setSender(sender);
|
||||||
setMessage.setValue(value);
|
setMessage.setValue(value);
|
||||||
|
setMessage.setTimestamp(rl$timestamp);
|
||||||
client.getCallbacks().post(setMessage);
|
client.getCallbacks().post(setMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,10 @@ import net.runelite.mapping.Import;
|
|||||||
|
|
||||||
public interface RSMessageNode extends MessageNode
|
public interface RSMessageNode extends MessageNode
|
||||||
{
|
{
|
||||||
|
@Import("id")
|
||||||
|
@Override
|
||||||
|
int getId();
|
||||||
|
|
||||||
@Import("type")
|
@Import("type")
|
||||||
int getRSType();
|
int getRSType();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user