ReputationPlugin class
Пакет: com.hypixel.hytale.builtin.adventure.reputation
Файл: com/hypixel/hytale/builtin/adventure/reputation/ReputationPlugin.java
extends: JavaPlugin
Поля (36)
| Модификаторы | Тип | Имя |
|---|---|---|
static |
ReputationPlugin |
instance |
|
|
instance |
|
int |
var1 |
|
|
var1 |
|
int |
var10 |
|
ReputationRank |
var3 |
|
ReputationGroupComponent |
var3 |
|
World |
var3 |
|
World |
var3 |
|
ReputationRank |
var3 |
|
ReputationGameplayConfig |
var4 |
|
ReputationGroupComponent |
var4 |
|
World |
var4 |
|
ReputationGameplayConfig |
var4 |
|
ReputationGroupComponent |
var4 |
|
int |
var4 |
|
ReputationGameplayConfig |
var4 |
|
ReputationRank |
var4 |
|
ReputationGroupComponent |
var5 |
|
World |
var5 |
|
ReputationGroup |
var5 |
|
int |
var5 |
|
Player |
var5 |
|
ReputationGroup |
var5 |
|
String |
var5 |
|
int |
var5 |
|
ReputationGameplayConfig |
var6 |
|
ReputationDataResource |
var6 |
|
ReputationGameplayConfig |
var6 |
|
ReputationDataResource |
var6 |
|
ReputationGroup |
var7 |
|
ReputationGroup |
var7 |
|
Object2IntMap |
var7 |
|
PlayerConfigData |
var8 |
|
Object2IntMap |
var8 |
|
Object2IntOpenHashMap |
var9 |
Методы (22)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
UnsupportedOperationExceptionthrow new UnsupportedOperationException("Not implemented!") |
public |
int |
changeReputationint changeReputation(@Nonnull Player var1, @Nonnull Ref<EntityStore> var2, int var3, @Nonnull ComponentAccessor<EntityStore> var4) |
public |
int |
changeReputationint changeReputation(@Nonnull Player var1, @Nonnull String var2, int var3, @Nonnull ComponentAccessor<EntityStore> var4) |
public |
int |
changeReputationint changeReputation(@Nonnull World var1, @Nonnull String var2, int var3) |
private |
int |
computeReputationint computeReputation(@Nonnull Object2IntMap<String> var1, @Nonnull ReputationGroup var2, int var3) |
abstract |
|
for for(int var2 = 1; var2 < this.reputationRanks.size() |
abstract |
|
for for(int var2 = 0; var2 < this.reputationRanks.size() |
static |
ReputationPlugin |
getReputationPlugin get() |
public |
ComponentType<EntityStore, ReputationGroupComponent> |
getReputationGroupComponentTypeComponentType<EntityStore, ReputationGroupComponent> getReputationGroupComponentType() |
public |
int |
getReputationValueint getReputationValue(@Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull Ref<EntityStore> var3) |
public |
int |
getReputationValueint getReputationValue(@Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull String var3) |
public |
int |
getReputationValueint getReputationValue(@Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2) |
public |
int |
getReputationValueint getReputationValue(@Nonnull Store<EntityStore> var1, @Nonnull String var2) |
private |
int |
getReputationValueForGroupint getReputationValueForGroup(@Nonnull Object2IntMap<String> var1, @Nonnull ReputationGroup var2) |
|
|
if if(var7 == null) |
|
|
if if(var5 == null) |
|
|
if if(var5 == null) |
|
|
if if(var7 != null) |
|
|
if if(var5 == null) |
|
|
if if(var4 == null) |
|
|
if if(var1 == Integer.MIN_VALUE) |
abstract |
|
super super(var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.reputation;
class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
class="kw">import com.hypixel.hytale.builtin.adventure.reputation.assets.ReputationGroup;
class="kw">import com.hypixel.hytale.builtin.adventure.reputation.assets.ReputationRank;
class="kw">import com.hypixel.hytale.builtin.adventure.reputation.choices.ReputationRequirement;
class="kw">import com.hypixel.hytale.builtin.adventure.reputation.command.ReputationCommand;
class="kw">import com.hypixel.hytale.builtin.adventure.reputation.store.ReputationDataResource;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.server.core.asset.HytaleAssetStore;
class="kw">import com.hypixel.hytale.server.core.asset.type.attitude.Attitude;
class="kw">import com.hypixel.hytale.server.core.asset.type.gameplay.GameplayConfig;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.data.PlayerConfigData;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.pages.choices.ChoiceRequirement;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPlugin;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import it.unimi.dsi.fastutil.objects.Object2IntMap;
class="kw">import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.Comparator;
class="kw">import java.util.List;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class ReputationPlugin class="kw">extends JavaPlugin {
class="kw">private class="kw">static ReputationPlugin instance;
class="kw">private ComponentType<EntityStore, ReputationGroupComponent> reputationGroupComponentType;
class="kw">private ResourceType<EntityStore, ReputationDataResource> reputationDataResourceType;
class="kw">private List<ReputationRank> reputationRanks;
class="kw">private int maxReputationValue = Integer.MIN_VALUE;
class="kw">private int minReputationValue = Integer.MAX_VALUE;
class="kw">public class="kw">static class="kw">final int NO_REPUTATION_GROUP = Integer.MIN_VALUE;
class="kw">public class="kw">static ReputationPlugin get() {
class="kw">return instance;
}
class="kw">public ReputationPlugin(@Nonnull JavaPluginInit var1) {
super(var1);
}
class="kw">public ComponentType<EntityStore, ReputationGroupComponent> getReputationGroupComponentType() {
class="kw">return this.reputationGroupComponentType;
}
@Override
class="kw">protected void setup() {
instance = this;
AssetRegistry.register(
((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(ReputationRank.class, new DefaultAssetMap())
.setPath("NPC/Reputation/Ranks"))
.setCodec(ReputationRank.CODEC))
.setKeyFunction(ReputationRank::getId))
.build()
);
AssetRegistry.register(
((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(ReputationGroup.class, new DefaultAssetMap())
.setPath("NPC/Reputation/Groups"))
.setCodec(ReputationGroup.CODEC))
.setKeyFunction(ReputationGroup::getId))
.build()
);
this.getCommandRegistry().registerCommand(new ReputationCommand());
ChoiceRequirement.CODEC.register("Reputation", ReputationRequirement.class, ReputationRequirement.CODEC);
this.reputationDataResourceType = this.getEntityStoreRegistry()
.registerResource(ReputationDataResource.class, "ReputationData", ReputationDataResource.CODEC);
this.reputationGroupComponentType = this.getEntityStoreRegistry().registerComponent(ReputationGroupComponent.class, () -> {
throw new UnsupportedOperationException("Not implemented!");
});
GameplayConfig.PLUGIN_CODEC.register(ReputationGameplayConfig.class, "Reputation", ReputationGameplayConfig.CODEC);
}
@Override
class="kw">protected void start() {
this.reputationRanks = new ObjectArrayList(ReputationRank.getAssetMap().getAssetMap().values());
if (this.reputationRanks.size() > 1) {
this.reputationRanks.sort(Comparator.comparingInt(ReputationRank::getMinValue));
int var1 = this.reputationRanks.getFirst().getMaxValue();
for (int var2 = 1; var2 < this.reputationRanks.size(); var2++) {
ReputationRank var3 = this.reputationRanks.get(var2);
if (var1 < var3.getMinValue()) {
this.getLogger()
.at(Level.WARNING)
.log(
"There is a gap between the values of the ReputationRank %s and %s, please review the assets.",
var3.getId(),
this.reputationRanks.get(var2 - 1).getId()
);
}
if (var1 > var3.getMinValue()) {
this.getLogger()
.at(Level.WARNING)
.log(
"Min value of rank %s is already contained in rank %s, please review the asset.", var3.getId(), this.reputationRanks.get(var2 - 1).getId()
);
}
var1 = var3.getMaxValue();
}
this.minReputationValue = this.reputationRanks.getFirst().getMinValue();
this.maxReputationValue = this.reputationRanks.getLast().getMaxValue();
}
}
class="kw">public int changeReputation(@Nonnull Player var1, @Nonnull Ref<EntityStore> var2, int var3, @Nonnull ComponentAccessor<EntityStore> var4) {
ReputationGroupComponent var5 = var4.getComponent(var2, this.reputationGroupComponentType);
class="kw">return var5 == null ? Integer.MIN_VALUE : this.changeReputation(var1, var5.getReputationGroupId(), var3, var4);
}
class="kw">public int changeReputation(@Nonnull Player var1, @Nonnull String var2, int var3, @Nonnull ComponentAccessor<EntityStore> var4) {
World var5 = var4.getExternalData().getWorld();
ReputationGameplayConfig var6 = ReputationGameplayConfig.getOrDefault(var5.getGameplayConfig());
if (var6.getReputationStorageType() == ReputationGameplayConfig.ReputationStorageType.PerPlayer) {
ReputationGroup var7 = ReputationGroup.getAssetMap().getAsset(var2);
if (var7 == null) {
class="kw">return Integer.MIN_VALUE;
}
PlayerConfigData var8 = var1.getPlayerConfigData();
Object2IntOpenHashMap var9 = new Object2IntOpenHashMap(var8.getReputationData());
int var10 = this.computeReputation(var9, var7, var3);
var8.setReputationData(var9);
class="kw">return var10;
} else {
class="kw">return this.changeReputation(var5, var2, var3);
}
}
class="kw">public int changeReputation(@Nonnull World var1, @Nonnull String var2, int var3) {
ReputationGameplayConfig var4 = ReputationGameplayConfig.getOrDefault(var1.getGameplayConfig());
if (var4.getReputationStorageType() != ReputationGameplayConfig.ReputationStorageType.PerWorld) {
class="kw">return -1;
}
ReputationGroup var5 = ReputationGroup.getAssetMap().getAsset(var2);
if (var5 == null) {
class="kw">return Integer.MIN_VALUE;
}
ReputationDataResource var6 = var1.getEntityStore().getStore().getResource(this.reputationDataResourceType);
class="kw">return this.computeReputation(var6.getReputationStats(), var5, var3);
}
class="kw">private int computeReputation(@Nonnull Object2IntMap<String> var1, @Nonnull ReputationGroup var2, int var3) {
class="kw">return (Integer)var1.compute(var2.getId(), (var3x, var4) -> {
int var5 = var4 == null ? var2.getInitialReputationValue() + var3 : var4 + var3;
class="kw">return MathUtil.clamp(var5, this.minReputationValue, this.maxReputationValue - 1);
});
}
class="kw">public int getReputationValue(@Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull Ref<EntityStore> var3) {
ReputationGroupComponent var4 = var1.getComponent(var3, this.reputationGroupComponentType);
class="kw">return var4 == null ? Integer.MIN_VALUE : this.getReputationValue(var1, var2, var4.getReputationGroupId());
}
class="kw">public int getReputationValue(@Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull String var3) {
World var4 = var1.getExternalData().getWorld();
Player var5 = var1.getComponent(var2, Player.getComponentType());
if (var5 == null) {
class="kw">return Integer.MIN_VALUE;
}
ReputationGameplayConfig var6 = ReputationGameplayConfig.getOrDefault(var4.getGameplayConfig());
if (var6.getReputationStorageType() == ReputationGameplayConfig.ReputationStorageType.PerPlayer) {
ReputationGroup var7 = ReputationGroup.getAssetMap().getAsset(var3);
if (var7 != null) {
Object2IntMap var8 = var5.getPlayerConfigData().getReputationData();
class="kw">return this.getReputationValueForGroup(var8, var7);
} else {
class="kw">return Integer.MIN_VALUE;
}
} else {
class="kw">return this.getReputationValue(var1, var3);
}
}
class="kw">public int getReputationValue(@Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2) {
ReputationGroupComponent var3 = var1.getComponent(var2, this.reputationGroupComponentType);
class="kw">return var3 == null ? Integer.MIN_VALUE : this.getReputationValue(var1, var3.getReputationGroupId());
}
class="kw">public int getReputationValue(@Nonnull Store<EntityStore> var1, @Nonnull String var2) {
World var3 = var1.getExternalData().getWorld();
ReputationGameplayConfig var4 = ReputationGameplayConfig.getOrDefault(var3.getGameplayConfig());
if (var4.getReputationStorageType() != ReputationGameplayConfig.ReputationStorageType.PerWorld) {
class="kw">return Integer.MIN_VALUE;
}
ReputationGroup var5 = ReputationGroup.getAssetMap().getAsset(var2);
if (var5 == null) {
class="kw">return Integer.MIN_VALUE;
}
ReputationDataResource var6 = var3.getEntityStore().getStore().getResource(this.reputationDataResourceType);
Object2IntMap var7 = var6.getReputationStats();
class="kw">return this.getReputationValueForGroup(var7, var5);
}
class="kw">private int getReputationValueForGroup(@Nonnull Object2IntMap<String> var1, @Nonnull ReputationGroup var2) {
class="kw">return var1.getOrDefault(var2.getId(), var2.getInitialReputationValue());
}
@Nullable
class="kw">public ReputationRank getReputationRank(@Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull Ref<EntityStore> var3) {
ReputationGroupComponent var4 = var1.getComponent(var3, this.reputationGroupComponentType);
if (var4 == null) {
class="kw">return null;
}
String var5 = var4.getReputationGroupId();
class="kw">return this.getReputationRank(var1, var2, var5);
}
@Nullable
class="kw">public ReputationRank getReputationRank(@Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull String var3) {
int var4 = this.getReputationValue(var1, var2, var3);
class="kw">return this.getReputationRankFromValue(var4);
}
@Nullable
class="kw">public ReputationRank getReputationRankFromValue(int var1) {
if (var1 == Integer.MIN_VALUE) {
class="kw">return null;
}
for (int var2 = 0; var2 < this.reputationRanks.size(); var2++) {
if (this.reputationRanks.get(var2).containsValue(var1)) {
class="kw">return this.reputationRanks.get(var2);
}
}
class="kw">return null;
}
@Nullable
class="kw">public ReputationRank getReputationRank(@Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2) {
World var3 = var1.getExternalData().getWorld();
ReputationGameplayConfig var4 = ReputationGameplayConfig.getOrDefault(var3.getGameplayConfig());
if (var4.getReputationStorageType() != ReputationGameplayConfig.ReputationStorageType.PerWorld) {
class="kw">return null;
}
int var5 = this.getReputationValue(var1, var2);
class="kw">return this.getReputationRankFromValue(var5);
}
@Nullable
class="kw">public Attitude getAttitude(@Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2, @Nonnull Ref<EntityStore> var3) {
ReputationRank var4 = this.getReputationRank(var1, var2, var3);
class="kw">return var4 != null ? var4.getAttitude() : null;
}
@Nullable
class="kw">public Attitude getAttitude(@Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2) {
ReputationRank var3 = this.getReputationRank(var1, var2);
class="kw">return var3 != null ? var3.getAttitude() : null;
}
}