Skip to content

Commit

Permalink
Add new API to avoid default skin fetching
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed Apr 18, 2020
1 parent c63b6ef commit aaa6397
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 0 deletions.
Expand Up @@ -41,6 +41,7 @@
import net.citizensnpcs.trait.ScriptTrait;
import net.citizensnpcs.trait.SheepTrait;
import net.citizensnpcs.trait.SkinLayers;
import net.citizensnpcs.trait.SkinTrait;
import net.citizensnpcs.trait.SlimeSize;
import net.citizensnpcs.trait.VillagerProfession;
import net.citizensnpcs.trait.WitherTrait;
Expand Down Expand Up @@ -77,6 +78,7 @@ public CitizensTraitFactory() {
registerTrait(TraitInfo.create(ScriptTrait.class));
registerTrait(TraitInfo.create(SheepTrait.class));
registerTrait(TraitInfo.create(SkinLayers.class));
registerTrait(TraitInfo.create(SkinTrait.class));
registerTrait(TraitInfo.create(MountTrait.class));
registerTrait(TraitInfo.create(SlimeSize.class));
registerTrait(TraitInfo.create(Spawned.class));
Expand Down
5 changes: 5 additions & 0 deletions main/src/main/java/net/citizensnpcs/npc/skin/Skin.java
Expand Up @@ -26,6 +26,7 @@
import net.citizensnpcs.npc.profile.ProfileFetchHandler;
import net.citizensnpcs.npc.profile.ProfileFetcher;
import net.citizensnpcs.npc.profile.ProfileRequest;
import net.citizensnpcs.trait.SkinTrait;

/**
* Stores data for a single skin.
Expand Down Expand Up @@ -100,6 +101,10 @@ public boolean apply(SkinnableEntity entity) {
}

if (!hasSkinData()) {
if (npc.hasTrait(SkinTrait.class) && !this.skinName.equals(cachedName)
&& !npc.getTrait(SkinTrait.class).fetchDefaultSkin()) {
return false;
}
if (hasFetched) {
return true;
} else {
Expand Down
23 changes: 23 additions & 0 deletions main/src/main/java/net/citizensnpcs/trait/SkinTrait.java
@@ -0,0 +1,23 @@
package net.citizensnpcs.trait;

import net.citizensnpcs.api.persistence.Persist;
import net.citizensnpcs.api.trait.Trait;
import net.citizensnpcs.api.trait.TraitName;

@TraitName("skintrait")
public class SkinTrait extends Trait {
@Persist
private boolean fetchDefaultSkin = true;

public SkinTrait() {
super("skintrait");
}

public boolean fetchDefaultSkin() {
return fetchDefaultSkin;
}

public void setFetchDefaultSkin(boolean fetch) {
this.fetchDefaultSkin = fetch;
}
}

0 comments on commit aaa6397

Please sign in to comment.