mirror of
https://github.com/xfl03/MCCustomSkinLoader.git
synced 2026-11-11 06:47:37 +00:00
104 lines
2.6 KiB
Java
104 lines
2.6 KiB
Java
package customskinloader.profile;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import customskinloader.profile.ModelManager0.Model;
|
|
|
|
/**The instance to storage user's profile in memory temporarily.
|
|
* In this manner, it could be easier to pass profile in program.
|
|
* @since 13.1
|
|
*/
|
|
public class UserProfile {
|
|
|
|
/**
|
|
* Direct url for skin.
|
|
* @since 13.1
|
|
*/
|
|
public String skinUrl=null;
|
|
|
|
/**
|
|
* Model for skin.
|
|
* default/slim
|
|
* @since 13.1
|
|
*/
|
|
public String model=null;
|
|
|
|
/**
|
|
* Direct url for cape.
|
|
* @since 13.1
|
|
*/
|
|
public String capeUrl=null;
|
|
|
|
/**
|
|
* Direct url for elytra.
|
|
* @since 14.5
|
|
*/
|
|
public String elytraUrl=null;
|
|
|
|
public void put(Model model,String url){
|
|
if(model==null||StringUtils.isEmpty(url))
|
|
return;
|
|
switch(model){
|
|
case SKIN_DEFAULT:
|
|
this.skinUrl=url;
|
|
this.model="default";
|
|
return;
|
|
case SKIN_SLIM:
|
|
this.skinUrl=url;
|
|
this.model="slim";
|
|
return;
|
|
case CAPE:
|
|
this.capeUrl=url;
|
|
return;
|
|
case ELYTRA:
|
|
this.elytraUrl = url;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get parsed String to output the instance.
|
|
*/
|
|
@Override
|
|
public String toString(){
|
|
return toString(0);
|
|
}
|
|
public String toString(long expiry){
|
|
return "(SkinUrl: "+skinUrl+
|
|
" , Model: "+model+
|
|
" , CapeUrl: "+capeUrl+
|
|
(StringUtils.isBlank(elytraUrl)?" ":" , ElytraUrl: "+elytraUrl)+
|
|
(expiry==0?"":(" , Expiry: "+expiry))+")";
|
|
}
|
|
|
|
/**
|
|
* Check if the instance is empty.
|
|
* @return status (true - empty)
|
|
*/
|
|
public boolean isEmpty(){
|
|
return StringUtils.isEmpty(skinUrl) && StringUtils.isEmpty(capeUrl) && StringUtils.isEmpty(elytraUrl);
|
|
}
|
|
/**
|
|
* Check if the instance is full(Both skin and cape).
|
|
* @return status (true - full)
|
|
* @since 14.7
|
|
*/
|
|
public boolean isFull(){
|
|
return StringUtils.isNoneBlank(skinUrl,capeUrl);
|
|
}
|
|
public boolean hasSkinUrl(){
|
|
return StringUtils.isNotEmpty(skinUrl);
|
|
}
|
|
public void mix(UserProfile profile){
|
|
if(profile==null)
|
|
return;
|
|
if(StringUtils.isEmpty(this.skinUrl)) {
|
|
this.skinUrl = profile.skinUrl;
|
|
this.model = profile.model;
|
|
}
|
|
if(StringUtils.isEmpty(this.capeUrl))
|
|
this.capeUrl=profile.capeUrl;
|
|
if(StringUtils.isEmpty(this.elytraUrl))
|
|
this.elytraUrl=profile.elytraUrl;
|
|
}
|
|
}
|