修改武器数据初始化方法
This commit is contained in:
parent
1c8f949c2d
commit
b0452ecce7
1 changed files with 8 additions and 5 deletions
|
@ -5,9 +5,11 @@ import net.mcreator.target.TargetMod;
|
||||||
import net.mcreator.target.network.GunsDataMessage;
|
import net.mcreator.target.network.GunsDataMessage;
|
||||||
import net.mcreator.target.network.TargetModVariables;
|
import net.mcreator.target.network.TargetModVariables;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
import net.minecraft.server.packs.resources.ResourceManager;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraftforge.event.entity.player.PlayerEvent;
|
import net.minecraftforge.event.entity.player.PlayerEvent;
|
||||||
|
import net.minecraftforge.event.server.ServerStartedEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import net.minecraftforge.network.PacketDistributor;
|
import net.minecraftforge.network.PacketDistributor;
|
||||||
|
@ -20,9 +22,7 @@ public class GunsTool {
|
||||||
|
|
||||||
public static HashMap<String, HashMap<String, Double>> gunsData = new HashMap<>();
|
public static HashMap<String, HashMap<String, Double>> gunsData = new HashMap<>();
|
||||||
|
|
||||||
public static void initJsonData(Level level) {
|
public static void initJsonData(ResourceManager manager) {
|
||||||
var manager = level.getServer().getResourceManager();
|
|
||||||
|
|
||||||
for (var entry : manager.listResources("guns", file -> file.getPath().endsWith(".json")).entrySet()) {
|
for (var entry : manager.listResources("guns", file -> file.getPath().endsWith(".json")).entrySet()) {
|
||||||
var id = entry.getKey();
|
var id = entry.getKey();
|
||||||
var attribute = entry.getValue();
|
var attribute = entry.getValue();
|
||||||
|
@ -44,7 +44,6 @@ public class GunsTool {
|
||||||
|
|
||||||
public static void initGun(Level level, ItemStack stack, String location) {
|
public static void initGun(Level level, ItemStack stack, String location) {
|
||||||
if (level.getServer() == null) return;
|
if (level.getServer() == null) return;
|
||||||
initJsonData(level);
|
|
||||||
gunsData.get(location).forEach((k, v) -> stack.getOrCreateTag().putDouble(k, v));
|
gunsData.get(location).forEach((k, v) -> stack.getOrCreateTag().putDouble(k, v));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,8 +69,12 @@ public class GunsTool {
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) {
|
public static void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) {
|
||||||
if (event.getEntity() instanceof ServerPlayer player) {
|
if (event.getEntity() instanceof ServerPlayer player) {
|
||||||
GunsTool.initJsonData(player.serverLevel());
|
|
||||||
TargetMod.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new GunsDataMessage(GunsTool.gunsData));
|
TargetMod.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> player), new GunsDataMessage(GunsTool.gunsData));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void serverStarted(ServerStartedEvent event) {
|
||||||
|
initJsonData(event.getServer().getResourceManager());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue