Jump to content

dan donn

Members
  • Posts

    36
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by dan donn

  1. Can Confirm Servers Are Down With Bad Gateway Error.
  2. I have Looked and it still prints as a json object. I just need the method to convert or get the text out from the json.
  3. I'm currently working with the written books nbt tag. The text on the pages are stored inside of a json format and I am looking to retrieve the data from within. the format is as follows {"text":"example text here"} and it's the example text here that I need to retrieve.
  4. I may just stick to basic nbt saving, this seems like a headache to me. Thank you for the help anyways but I don't fully understand it Mainly outside of my range of abilities.
  5. https://github.com/DDX5/TSPaintball it is under src/main/java/uk/nf/teamserpentalise/tspaintball/capability/ the main class has the register and eventinit has the attach capability
  6. Now the error is to do with INBT and CompoundNBT. not sure why
  7. package uk.nf.teamserpentalise.tspaintball.capability; import net.minecraft.nbt.CompoundNBT; public class PlayerTeamImpl implements PlayerTeam { private final String Team; public PlayerTeamImpl(){ this("None"); } public PlayerTeamImpl(String team) { Team = team; } @Override public String GetTeam() { return null; } @Override public void SetTeam(String Team) { } @Override public CompoundNBT serializeNBT() { final CompoundNBT nbt = new CompoundNBT(); nbt.putString("player.team", this.GetTeam()); return nbt; } @Override public void deserializeNBT(CompoundNBT nbt) { this.SetTeam(nbt.getString("player.team")); } } Does that seem right
  8. That hasn't fixed it. still same error
  9. Required type Provided type: Class<T> Class<PlayerTeam> storage: IStorage<T> CapabilityTeamStorage factory: Callable<? extends T> <method reference> reason: no instance(s) of type variable(s) exist so that CapabilityTeamStorage conforms to PlayerTeam inference variable T has incompatible bounds: equality constraints: PlayerTeam lower bounds: CapabilityTeamStorage It's the top one giving me isssues
  10. @urbanxx001Yes just managed to get that however now the first parameter does not meet type class<T> instead it is class<PlayerTeam> not sure what is going on there
  11. no instance(s) of type variable(s) exist so that CapabilityTeamStorage conforms to PlayerTeam inference variable T has incompatible bounds: equality constraints: PlayerTeam lower bounds: CapabilityTeamStorage Managed to find a basic example and went from there but the error above is now what is happening
  12. Still don't quite get how to do this with the capability, I do understand the idea but having trouble implementing it. Sorry if this is too much to ask but could you possibly show me how and what I've done wrong. package uk.nf.teamserpentalise.tspaintball.capability; public class CapabilityFactory { public PlayerTeamCapability get(){ return new PlayerTeamCapability(); } } @diesieben07 Again my apologies if this is too much to ask
  13. @diesieben07 not familiar with the factory could you possibly provide a basic example that way I can try to comprehend what it is.
  14. @diesieben07How would I go about adding this last parameter as I'm new to this capability stuff but know enough java.
  15. package uk.nf.teamserpentalise.tspaintball.init; import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.util.ResourceLocation; import net.minecraftforge.event.AttachCapabilitiesEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import uk.nf.teamserpentalise.tspaintball.TSPaintball; import uk.nf.teamserpentalise.tspaintball.capability.PlayerTeamCapability; @Mod.EventBusSubscriber(modid = TSPaintball.MOD_ID) public class eventinit { @SubscribeEvent public static void Hurt(LivingHurtEvent event) { TSPaintball.LOG.info("Hurt Event Fired"); Entity Target = event.getEntity(); Entity Hit = event.getSource().getDirectEntity(); TSPaintball.LOG.info("Traget: " + Target.toString() + "\nHit: " + Hit.toString()); } @SubscribeEvent public static void AttachCap(AttachCapabilitiesEvent<Entity> event) { if(event.getObject() instanceof PlayerEntity) { event.addCapability(new ResourceLocation(TSPaintball.MOD_ID,"player_team"),new PlayerTeamCapability()); } } } This is where the attach event is located that the main class registers to the eventbus
  16. I am getting the following error. The code is the follwoing package uk.nf.teamserpentalise.tspaintball; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.capabilities.CapabilityManager; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import uk.nf.teamserpentalise.tspaintball.capability.CapabilityTeamStorage; import uk.nf.teamserpentalise.tspaintball.capability.PlayerTeam; import uk.nf.teamserpentalise.tspaintball.capability.PlayerTeamCapability; import uk.nf.teamserpentalise.tspaintball.init.*; @Mod(TSPaintball.MOD_ID) public class TSPaintball { public static final String MOD_ID = "tspaintball"; public static final Logger LOG = LogManager.getLogger(); public TSPaintball() { IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus(); MinecraftForge.EVENT_BUS.register(eventinit.class); bus.addListener(this::CommonSetup); bus.register(this); } public void CommonSetup(FMLCommonSetupEvent event){ CapabilityManager.INSTANCE.register(PlayerTeam.class, new CapabilityTeamStorage(), PlayerTeamCapability::new); } } That is the main class where the capability manager is throwing the error. (I have shortened the class down to ease with size. package uk.nf.teamserpentalise.tspaintball.capability; import net.minecraft.nbt.INBT; import net.minecraft.util.Direction; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.CapabilityInject; import net.minecraftforge.common.capabilities.ICapabilitySerializable; import net.minecraftforge.common.util.LazyOptional; import javax.annotation.Nonnull; import javax.annotation.Nullable; public class PlayerTeamCapability implements ICapabilitySerializable<INBT> { @CapabilityInject(PlayerTeam.class) public static final Capability<PlayerTeam> TEAM_CAPABILITY = null; private LazyOptional<PlayerTeam> instance = LazyOptional.of(TEAM_CAPABILITY::getDefaultInstance); @Nonnull @Override public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) { return cap == TEAM_CAPABILITY ? instance.cast() : LazyOptional.empty(); } @Override public INBT serializeNBT() { return TEAM_CAPABILITY.getStorage().writeNBT(TEAM_CAPABILITY,this.instance.orElseThrow(() -> new IllegalArgumentException("LazyOptional must not be empty!")), null); } @Override public void deserializeNBT(INBT nbt) { TEAM_CAPABILITY.getStorage().readNBT(TEAM_CAPABILITY, this.instance.orElseThrow(() -> new IllegalArgumentException("LazyOptional must not be empty!")), null, nbt); } } package uk.nf.teamserpentalise.tspaintball.capability; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.INBT; import net.minecraft.util.Direction; import net.minecraftforge.common.capabilities.Capability; import javax.annotation.Nullable; public class CapabilityTeamStorage implements Capability.IStorage<PlayerTeam> { @Nullable @Override public INBT writeNBT(Capability<PlayerTeam> capability, PlayerTeam instance, Direction side) { CompoundNBT Tag = new CompoundNBT(); Tag.putString("player.team",instance.GetTeam()); return Tag; } @Override public void readNBT(Capability<PlayerTeam> capability, PlayerTeam instance, Direction side, INBT nbt) { instance.SetTeam(nbt.getAsString()); } } package uk.nf.teamserpentalise.tspaintball.capability; import net.minecraft.nbt.CompoundNBT; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.INBTSerializable; public interface PlayerTeam extends INBTSerializable<CompoundNBT> { String GetTeam(); void SetTeam(String Team); } Any help is greatly appreciated.
  17. For crying out loud I didn't realize until I looked again I was missing the static out of them. Got it to work now. Thank you @Luis_ST
  18. The Event still does not fire the log message at all, anything I'm possibly missing
  19. I am not sure if I have made a mistake anywhere and not sure if this is how to register the event. Code provided below. package uk.nf.teamserpentalise.tspaintball.init; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import uk.nf.teamserpentalise.tspaintball.TSPaintball; @Mod.EventBusSubscriber(modid = TSPaintball.MOD_ID) public class eventinit { @SubscribeEvent public void Hurt(LivingHurtEvent event) { TSPaintball.LOG.info("Hurt Event Fired"); } }
×
×
  • Create New...

Important Information

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