Jump to content

Cecil

Members
  • Posts

    4
  • Joined

  • Last visited

Cecil's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. Alright, I have a functioning measure command! Some of the previous forum posts were very helpful in understanding capabilities, but there's still a few things I'm not quite clear on. Particularly in my Provider: public class MeasurementProvider implements ICapabilityProvider { @CapabilityInject(IMeasurement.class) public static final Capability<IMeasurement> MEASUREMENT_CAPABILITY = null; private final LazyOptional<IMeasurement> instance = LazyOptional.of(Measurement::new); @Nonnull @Override public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) { return cap == MEASUREMENT_CAPABILITY ? instance.cast() : LazyOptional.empty(); } } This is mostly based on others code examples, and it does work. What I don't understand is how getCapability() is working. You pass it a Nonnull Capability "cap", and then compare that to MEASUREMENT_CAPABILITY, which is null. Further, this is how I'm calling getCapability (in part): getCapability(MeasurementProvider.MEASUREMENT_CAPABILITY, null) Isn't this passing a Null argument to what should be a Nonnull parameter? Maybe this just displays a lack of Java knowledge on my part, in which case I'll keep looking into it myself, but if there's something about the capability system I'm missing I would appreciate any help. Thanks!
  2. Hello! I'm just getting into modding, and am starting by adding commands. I have the Brigadier system figured out, and have a few basic test commands working. I'd like to create a 'measure' command next that would be called once to define a starting location, and again to calculate the measurement and return that to the player. In order to store the first location, I'm imagining somehow storing a 'measurement start position' with the player, but I'm not sure how best to go about it. Or would another approach be better?
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.