mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-11-23 00:24:49 +00:00
Clean up data-gathering code
- Refer to this as "data" rather than "metadata". I'm still not sure where the meta came from - blame OpenPeripheral I guess. - Likewise, use getItemDetail within inventory methods, rather than getItemMeta. - Refactor common data-getting code into one class. This means that turtle.getItemDetail, turtle.inspect and commands.getBlockInfo all use the same code. - turtle.getItemDetail now accepts a second "detailed" parameter which will include the full metadata (#471, #452). - Tags are now only included in the detailed list. This is a breaking change, however should only affect one version (1.89.x) and I'm not convinced that the previous behaviour was safe.
This commit is contained in:
@@ -16,8 +16,8 @@ import java.util.Objects;
|
||||
/**
|
||||
* Fired when a turtle gathers data on an item in its inventory.
|
||||
*
|
||||
* You may prevent items being inspected, or add additional information to the result. Be aware that this is fired on
|
||||
* the computer thread, and so any operations on it must be thread safe.
|
||||
* You may prevent items being inspected, or add additional information to the result. Be aware that this may be fired
|
||||
* on the computer thread, and so any operations on it must be thread safe.
|
||||
*
|
||||
* @see TurtleAction#INSPECT_ITEM
|
||||
*/
|
||||
@@ -25,8 +25,15 @@ public class TurtleInspectItemEvent extends TurtleActionEvent
|
||||
{
|
||||
private final ItemStack stack;
|
||||
private final Map<String, Object> data;
|
||||
private final boolean mainThread;
|
||||
|
||||
@Deprecated
|
||||
public TurtleInspectItemEvent( @Nonnull ITurtleAccess turtle, @Nonnull ItemStack stack, @Nonnull Map<String, Object> data )
|
||||
{
|
||||
this( turtle, stack, data, false );
|
||||
}
|
||||
|
||||
public TurtleInspectItemEvent( @Nonnull ITurtleAccess turtle, @Nonnull ItemStack stack, @Nonnull Map<String, Object> data, boolean mainThread )
|
||||
{
|
||||
super( turtle, TurtleAction.INSPECT_ITEM );
|
||||
|
||||
@@ -34,6 +41,7 @@ public class TurtleInspectItemEvent extends TurtleActionEvent
|
||||
Objects.requireNonNull( data, "data cannot be null" );
|
||||
this.stack = stack;
|
||||
this.data = data;
|
||||
this.mainThread = mainThread;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -58,6 +66,17 @@ public class TurtleInspectItemEvent extends TurtleActionEvent
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
* If this event is being fired on the server thread. When true, information which relies on server state may be
|
||||
* exposed.
|
||||
*
|
||||
* @return If this is run on the main thread.
|
||||
*/
|
||||
public boolean onMainThread()
|
||||
{
|
||||
return mainThread;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add new information to the inspection result. Note this will override fields with the same name.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user