Fixed Some Stuff

This commit is contained in:
Mysticpasta1 2022-06-21 07:04:17 -05:00
parent 87102aee13
commit f3f67e76e5
19 changed files with 205 additions and 247 deletions

View File

@ -18,12 +18,18 @@ repositories {
// for more information about repositories.
maven { url "https://maven.shedaniel.me/" }
maven { url 'https://jitpack.io' }
maven {
url = "https://maven.parchmentmc.org"
}
}
dependencies {
// To change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
mappings loom.layered() {
officialMojangMappings()
parchment("org.parchmentmc.data:parchment-1.18.2:2022.05.02@zip")
}
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
// Fabric API. This is technically optional, but you probably want it anyway.

View File

@ -5,12 +5,10 @@
package net.montoyo.wd;
import com.mojang.authlib.GameProfile;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.fml.server.FMLServerHandler;
import net.minecraft.world.level.Level;
import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.core.HasAdvancement;
import net.montoyo.wd.core.JSServerRequest;
@ -33,7 +31,7 @@ public class SharedProxy {
public void postInit() {
}
public World getWorld(int dim) {
public Level getWorld(int dim) {
if(dim == CURRENT_DIMENSION)
throw new RuntimeException("Current dimension not available server side...");

View File

@ -5,40 +5,10 @@
package net.montoyo.wd;
import com.google.gson.Gson;
import net.minecraft.advancements.Advancement;
import net.minecraft.advancements.CriteriaTriggers;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.init.SoundEvents;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.fabricmc.api.ModInitializer;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.SoundEvent;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.client.event.ClientChatEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.capabilities.CapabilityManager;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property;
import net.minecraftforge.event.AttachCapabilitiesEvent;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.event.ServerChatEvent;
import net.minecraftforge.event.entity.item.ItemTossEvent;
import net.minecraftforge.event.world.WorldEvent;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.*;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.PlayerEvent;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraft.sounds.SoundEvent;
import net.montoyo.wd.block.BlockKeyboardRight;
import net.montoyo.wd.block.BlockPeripheral;
import net.montoyo.wd.block.BlockScreen;
@ -46,8 +16,8 @@ import net.montoyo.wd.core.*;
import net.montoyo.wd.entity.TileEntityScreen;
import net.montoyo.wd.item.*;
import net.montoyo.wd.miniserv.server.Server;
import net.montoyo.wd.net.client.CMessageServerInfo;
import net.montoyo.wd.net.Messages;
import net.montoyo.wd.net.client.CMessageServerInfo;
import net.montoyo.wd.utilities.Log;
import net.montoyo.wd.utilities.Util;
@ -57,18 +27,14 @@ import java.net.URL;
import java.util.Arrays;
import java.util.UUID;
@Mod(modid = "webdisplays", version = WebDisplays.MOD_VERSION, dependencies = "required-after:mcef@[1.0,2.0);after:opencomputers;after:computercraft;")
public class WebDisplays {
public class WebDisplays implements ModInitializer {
public static final String MOD_VERSION = "1.1";
public static final String MOD_VERSION = "1.0.0";
@Mod.Instance(owner = "webdisplays")
public static WebDisplays INSTANCE;
@SidedProxy(serverSide = "net.montoyo.wd.SharedProxy", clientSide = "net.montoyo.wd.client.ClientProxy")
public static SharedProxy PROXY;
public static SimpleNetworkWrapper NET_HANDLER;
public static WDCreativeTab CREATIVE_TAB;
public static final ResourceLocation ADV_PAD_BREAK = new ResourceLocation("webdisplays", "webdisplays/pad_break");
public static final String BLACKLIST_URL = "mod://webdisplays/blacklisted.html";
@ -104,109 +70,8 @@ public class WebDisplays {
public Criterion criterionLinkPeripheral;
public Criterion criterionKeyboardCat;
//Config
public static final double PAD_RATIO = 59.0 / 30.0;
public String homePage;
public double padResX;
public double padResY;
private int lastPadId = 0;
public boolean doHardRecipe;
private boolean hasOC;
private boolean hasCC;
private String[] blacklist;
public boolean disableOwnershipThief;
public double unloadDistance2;
public double loadDistance2;
public int maxResX;
public int maxResY;
public int maxScreenX;
public int maxScreenY;
public int miniservPort;
public long miniservQuota;
public boolean enableSoundDistance;
public float ytVolume;
public float avDist100;
public float avDist0;
@Mod.EventHandler
public void onPreInit(FMLPreInitializationEvent ev) {
//Load config
Configuration cfg = new Configuration(ev.getSuggestedConfigurationFile());
cfg.load();
//CAT: Main
Property blacklist = cfg.get("main", "blacklist", new String[0]);
Property padHeight = cfg.get("main", "padHeight", 480);
Property hardRecipe = cfg.get("main", "hardRecipes", true);
Property homePage = cfg.get("main", "homepage", "mod://webdisplays/main.html");
Property disableOT = cfg.get("main", "disableOwnershipThief", false);
Property maxResX = cfg.get("main", "maxResolutionX", 1920);
Property maxResY = cfg.get("main", "maxResolutionY", 1080);
Property miniservPort = cfg.get("main", "miniservPort", 25566);
Property miniservQuota = cfg.get("main", "miniservQuota", 1024); //It's stored as a string anyway
Property maxScreenX = cfg.get("main", "maxScreenSizeX", 16);
Property maxScreenY = cfg.get("main", "maxScreenSizeY", 16);
//CAT: Client options
Property loadDistance = cfg.get("client", "loadDistance", 30.0);
Property unloadDistance = cfg.get("client", "unloadDistance", 32.0);
//CAT: Auto volume config (client-side)
Property enableAutoVol = cfg.get("clientAutoVolume", "enableAutoVolume", true);
Property ytVolume = cfg.get("clientAutoVolume", "ytVolume", 100.0);
Property dist100 = cfg.get("clientAutoVolume", "dist100", 10.0);
Property dist0 = cfg.get("clientAutoVolume", "dist0", 30.0);
//Comments & shit
blacklist.setComment("An array of domain names you don't want to load.");
padHeight.setComment("The minePad Y resolution in pixels. padWidth = padHeight * " + PAD_RATIO);
hardRecipe.setComment("If true, breaking the minePad is required to craft upgrades.");
homePage.setComment("The URL that will be loaded each time you create a screen");
disableOT.setComment("If true, the ownership thief item will be disabled");
loadDistance.setComment("All screens outside this range will be unloaded");
unloadDistance.setComment("All unloaded screens inside this range will be loaded");
maxResX.setComment("Maximum horizontal screen resolution, in pixels");
maxResY.setComment("Maximum vertical screen resolution, in pixels");
miniservPort.setComment("The port used by miniserv. 0 to disable.");
miniservPort.setMaxValue(Short.MAX_VALUE);
miniservQuota.setComment("The amount of data that can be uploaded to miniserv, in KiB (so 1024 = 1 MiO)");
maxScreenX.setComment("Maximum screen width, in blocks. Resolution will be clamped by maxResolutionX.");
maxScreenY.setComment("Maximum screen height, in blocks. Resolution will be clamped by maxResolutionY.");
enableAutoVol.setComment("If true, the volume of YouTube videos will change depending on how far you are");
ytVolume.setComment("Volume for YouTube videos. This will have no effect if enableSoundDistance is set to false");
ytVolume.setMinValue(0.0);
ytVolume.setMaxValue(100.0);
dist100.setComment("Distance after which the sound starts dropping (in blocks)");
dist100.setMinValue(0.0);
dist0.setComment("Distance after which you can't hear anything (in blocks)");
dist0.setMinValue(0.0);
if(unloadDistance.getDouble() < loadDistance.getDouble() + 2.0)
unloadDistance.set(loadDistance.getDouble() + 2.0);
if(dist0.getDouble() < dist100.getDouble() + 0.1)
dist0.set(dist100.getDouble() + 0.1);
cfg.save();
this.blacklist = blacklist.getStringList();
doHardRecipe = hardRecipe.getBoolean();
this.homePage = homePage.getString();
disableOwnershipThief = disableOT.getBoolean();
unloadDistance2 = unloadDistance.getDouble() * unloadDistance.getDouble();
loadDistance2 = loadDistance.getDouble() * loadDistance.getDouble();
this.maxResX = maxResX.getInt();
this.maxResY = maxResY.getInt();
this.miniservPort = miniservPort.getInt();
this.miniservQuota = miniservQuota.getLong() * 1024L;
this.maxScreenX = maxScreenX.getInt();
this.maxScreenY = maxScreenY.getInt();
enableSoundDistance = enableAutoVol.getBoolean();
this.ytVolume = (float) ytVolume.getDouble();
avDist100 = (float) dist100.getDouble();
avDist0 = (float) dist0.getDouble();
@Override
public void onInitialize() {
CREATIVE_TAB = new WDCreativeTab();
//Criterions
@ -242,29 +107,16 @@ public class WebDisplays {
itemAdvIcon.setUnlocalizedName("webdisplays.advicon");
itemAdvIcon.setRegistryName("advicon");
PROXY.preInit();
MinecraftForge.EVENT_BUS.register(this);
}
@Mod.EventHandler
public void onInit(FMLInitializationEvent ev) {
//Register tile entities
GameRegistry.registerTileEntity(TileEntityScreen.class, new ResourceLocation("webdisplays", "screen"));
for(DefaultPeripheral dp: DefaultPeripheral.values()) {
if(dp.getTEClass() != null)
GameRegistry.registerTileEntity(dp.getTEClass(), new ResourceLocation("webdisplays", dp.getName()));
}
//Other things
CapabilityManager.INSTANCE.register(IWDDCapability.class, new WDDCapability.Storage(), new WDDCapability.Factory());
PROXY.init();
NET_HANDLER = NetworkRegistry.INSTANCE.newSimpleChannel("webdisplays");
Messages.registerAll(NET_HANDLER);
}
@Mod.EventHandler
public void onPostInit(FMLPostInitializationEvent ev) {
PROXY.postInit();
hasOC = Loader.isModLoaded("opencomputers");
hasCC = Loader.isModLoaded("computercraft");

View File

@ -4,12 +4,12 @@
package net.montoyo.wd.client;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.Minecraft;
import net.minecraft.item.ItemStack;
import net.minecraft.core.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraft.world.item.ItemStack;
import net.montoyo.mcef.api.IBrowser;
import net.montoyo.mcef.api.IJSQueryCallback;
import net.montoyo.wd.WebDisplays;
@ -24,7 +24,7 @@ import net.montoyo.wd.utilities.*;
import java.util.*;
@SideOnly(Side.CLIENT)
@Environment(EnvType.CLIENT)
public final class JSQueryDispatcher {
private static final class QueryData {
@ -86,7 +86,7 @@ public final class JSQueryDispatcher {
private final ClientProxy.ScreenSidePair lookupResult = new ClientProxy.ScreenSidePair();
private final HashMap<String, IScreenQueryHandler> handlers = new HashMap<>();
private final ArrayList<ServerQuery> serverQueries = new ArrayList<>();
private final Minecraft mc = Minecraft.getMinecraft();
private final Minecraft mc = Minecraft.getInstance();
public JSQueryDispatcher(ClientProxy proxy) {
this.proxy = proxy;

View File

@ -5,6 +5,7 @@
package net.montoyo.wd.client;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.montoyo.wd.client.renderers.IModelBaker;
public class ResourceModelPair {

View File

@ -7,6 +7,7 @@ package net.montoyo.wd.client;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.block.statemap.StateMapperBase;
import net.minecraft.client.resources.model.ModelResourceLocation;
import javax.annotation.Nonnull;

View File

@ -0,0 +1,103 @@
package net.montoyo.wd.config;
public class WDConfig {
//Config
public static final double PAD_RATIO = 59.0 / 30.0;
public String homePage;
public double padResX;
public double padResY;
private int lastPadId = 0;
public boolean doHardRecipe;
private boolean hasOC;
private boolean hasCC;
private String[] blacklist;
public boolean disableOwnershipThief;
public double unloadDistance2;
public double loadDistance2;
public int maxResX;
public int maxResY;
public int maxScreenX;
public int maxScreenY;
public int miniservPort;
public long miniservQuota;
public boolean enableSoundDistance;
public float ytVolume;
public float avDist100;
public float avDist0;
//Load config
Configuration cfg = new Configuration(ev.getSuggestedConfigurationFile());
cfg.load();
//CAT: Main
Property blacklist = cfg.get("main", "blacklist", new String[0]);
Property padHeight = cfg.get("main", "padHeight", 480);
Property hardRecipe = cfg.get("main", "hardRecipes", true);
Property homePage = cfg.get("main", "homepage", "mod://webdisplays/main.html");
Property disableOT = cfg.get("main", "disableOwnershipThief", false);
Property maxResX = cfg.get("main", "maxResolutionX", 1920);
Property maxResY = cfg.get("main", "maxResolutionY", 1080);
Property miniservPort = cfg.get("main", "miniservPort", 25566);
Property miniservQuota = cfg.get("main", "miniservQuota", 1024); //It's stored as a string anyway
Property maxScreenX = cfg.get("main", "maxScreenSizeX", 16);
Property maxScreenY = cfg.get("main", "maxScreenSizeY", 16);
//CAT: Client options
Property loadDistance = cfg.get("client", "loadDistance", 30.0);
Property unloadDistance = cfg.get("client", "unloadDistance", 32.0);
//CAT: Auto volume config (client-side)
Property enableAutoVol = cfg.get("clientAutoVolume", "enableAutoVolume", true);
Property ytVolume = cfg.get("clientAutoVolume", "ytVolume", 100.0);
Property dist100 = cfg.get("clientAutoVolume", "dist100", 10.0);
Property dist0 = cfg.get("clientAutoVolume", "dist0", 30.0);
//Comments & shit
blacklist.setComment("An array of domain names you don't want to load.");
padHeight.setComment("The minePad Y resolution in pixels. padWidth = padHeight * " + PAD_RATIO);
hardRecipe.setComment("If true, breaking the minePad is required to craft upgrades.");
homePage.setComment("The URL that will be loaded each time you create a screen");
disableOT.setComment("If true, the ownership thief item will be disabled");
loadDistance.setComment("All screens outside this range will be unloaded");
unloadDistance.setComment("All unloaded screens inside this range will be loaded");
maxResX.setComment("Maximum horizontal screen resolution, in pixels");
maxResY.setComment("Maximum vertical screen resolution, in pixels");
miniservPort.setComment("The port used by miniserv. 0 to disable.");
miniservPort.setMaxValue(Short.MAX_VALUE);
miniservQuota.setComment("The amount of data that can be uploaded to miniserv, in KiB (so 1024 = 1 MiO)");
maxScreenX.setComment("Maximum screen width, in blocks. Resolution will be clamped by maxResolutionX.");
maxScreenY.setComment("Maximum screen height, in blocks. Resolution will be clamped by maxResolutionY.");
enableAutoVol.setComment("If true, the volume of YouTube videos will change depending on how far you are");
ytVolume.setComment("Volume for YouTube videos. This will have no effect if enableSoundDistance is set to false");
ytVolume.setMinValue(0.0);
ytVolume.setMaxValue(100.0);
dist100.setComment("Distance after which the sound starts dropping (in blocks)");
dist100.setMinValue(0.0);
dist0.setComment("Distance after which you can't hear anything (in blocks)");
dist0.setMinValue(0.0);
if(unloadDistance.getDouble() < loadDistance.getDouble() + 2.0)
unloadDistance.set(loadDistance.getDouble() + 2.0);
if(dist0.getDouble() < dist100.getDouble() + 0.1)
dist0.set(dist100.getDouble() + 0.1);
cfg.save();
this.blacklist = blacklist.getStringList();
doHardRecipe = hardRecipe.getBoolean();
this.homePage = homePage.getString();
disableOwnershipThief = disableOT.getBoolean();
unloadDistance2 = unloadDistance.getDouble() * unloadDistance.getDouble();
loadDistance2 = loadDistance.getDouble() * loadDistance.getDouble();
this.maxResX = maxResX.getInt();
this.maxResY = maxResY.getInt();
this.miniservPort = miniservPort.getInt();
this.miniservQuota = miniservQuota.getLong() * 1024L;
this.maxScreenX = maxScreenX.getInt();
this.maxScreenY = maxScreenY.getInt();
enableSoundDistance = enableAutoVol.getBoolean();
this.ytVolume = (float) ytVolume.getDouble();
avDist100 = (float) dist100.getDouble();
avDist0 = (float) dist0.getDouble();
}

View File

@ -4,9 +4,11 @@
package net.montoyo.wd.core;
import net.minecraft.item.ItemStack;
import net.minecraft.world.item.ItemStack;
import net.montoyo.wd.WebDisplays;
import java.util.Arrays;
public enum DefaultUpgrade {
LASER_MOUSE("lasermouse", "Laser_Sensor"),
@ -28,12 +30,11 @@ public enum DefaultUpgrade {
}
public boolean matches(ItemStack is) {
return is.getItem() == WebDisplays.INSTANCE.itemUpgrade && is.getMetadata() == ordinal();
return is.getItem() == WebDisplays.INSTANCE.itemUpgrade;
}
public static String getWikiName(int meta) {
/*public static String getWikiName(ItemStack itemStack) {
DefaultUpgrade[] values = values();
return (meta >= 0 && meta < values.length) ? values[meta].wikiName : null;
}
return !itemStack.isEmpty() ? values.wikiName : null;
}*/
}

View File

@ -4,8 +4,8 @@
package net.montoyo.wd.core;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.montoyo.wd.entity.TileEntityScreen;
import net.montoyo.wd.utilities.BlockSide;
@ -14,8 +14,8 @@ import javax.annotation.Nullable;
public interface IUpgrade {
void onInstall(@Nonnull TileEntityScreen tes, @Nonnull BlockSide screenSide, @Nullable EntityPlayer player, @Nonnull ItemStack is);
boolean onRemove(@Nonnull TileEntityScreen tes, @Nonnull BlockSide screenSide, @Nullable EntityPlayer player, @Nonnull ItemStack is); //Return true to prevent dropping
void onInstall(@Nonnull TileEntityScreen tes, @Nonnull BlockSide screenSide, @Nullable Player player, @Nonnull ItemStack is);
boolean onRemove(@Nonnull TileEntityScreen tes, @Nonnull BlockSide screenSide, @Nullable Player player, @Nonnull ItemStack is); //Return true to prevent dropping
boolean isSameUpgrade(@Nonnull ItemStack myStack, @Nonnull ItemStack otherStack); //myStack.getItem() is an instance of this class
String getJSName(@Nonnull ItemStack is); //modname:upgradename

View File

@ -8,6 +8,7 @@ import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.world.item.Item;
import javax.annotation.Nonnull;
import java.util.BitSet;

View File

@ -4,12 +4,14 @@
package net.montoyo.wd.item;
import com.mojang.realmsclient.gui.ChatFormatting;
import net.minecraft.client.resources.I18n;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraft.ChatFormatting;
import net.minecraft.client.resources.language.I18n;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.AirItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import net.montoyo.wd.WebDisplays;
import net.montoyo.wd.core.DefaultUpgrade;
import net.montoyo.wd.core.IUpgrade;
@ -20,7 +22,7 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.List;
public class ItemUpgrade extends ItemMulti implements IUpgrade, WDItem {
public class ItemUpgrade extends ItemMulti implements IUpgrade {
public ItemUpgrade() {
super(DefaultUpgrade.class);
@ -30,12 +32,12 @@ public class ItemUpgrade extends ItemMulti implements IUpgrade, WDItem {
}
@Override
public void onInstall(@Nonnull TileEntityScreen tes, @Nonnull BlockSide screenSide, @Nullable EntityPlayer player, @Nonnull ItemStack is) {
public void onInstall(@Nonnull TileEntityScreen tes, @Nonnull BlockSide screenSide, @Nullable Player player, @Nonnull ItemStack is) {
}
@Override
public boolean onRemove(@Nonnull TileEntityScreen tes, @Nonnull BlockSide screenSide, @Nullable EntityPlayer player, @Nonnull ItemStack is) {
if(is.getMetadata() == DefaultUpgrade.LASER_MOUSE.ordinal())
public boolean onRemove(@Nonnull TileEntityScreen tes, @Nonnull BlockSide screenSide, @Nullable Player player, @Nonnull ItemStack is) {
if(DefaultUpgrade.LASER_MOUSE.matches(is))
tes.clearLaserUser(screenSide);
return false;
@ -43,30 +45,21 @@ public class ItemUpgrade extends ItemMulti implements IUpgrade, WDItem {
@Override
public boolean isSameUpgrade(@Nonnull ItemStack myStack, @Nonnull ItemStack otherStack) {
return otherStack.getItem() == this && otherStack.getMetadata() == myStack.getMetadata();
}
@Override
public void addInformation(ItemStack is, @Nullable World world, List<String> tt, ITooltipFlag ttFlags) {
tt.add("" + ChatFormatting.ITALIC + I18n.format("item.webdisplays.upgrade.name"));
WDItem.addInformation(tt);
return otherStack.getItem() == this && otherStack.getTag() == myStack.getTag();
}
@Override
public String getJSName(@Nonnull ItemStack is) {
int meta = is.getMetadata();
DefaultUpgrade[] upgrades = DefaultUpgrade.values();
if(meta < 0 || meta >= upgrades.length)
if(is.isEmpty())
return "webdisplays:wtf";
else
return "webdisplays:" + upgrades[meta];
return "webdisplays:" + is;
}
@Nullable
/*@Nullable
@Override
public String getWikiName(@Nonnull ItemStack is) {
return DefaultUpgrade.getWikiName(is.getMetadata());
}
return DefaultUpgrade.getWikiName(is.getItem().getName(is).toString());
}*/
}

View File

@ -4,9 +4,9 @@
package net.montoyo.wd.item;
import com.mojang.realmsclient.gui.ChatFormatting;
import net.minecraft.client.resources.I18n;
import net.minecraft.item.ItemStack;
import net.minecraft.ChatFormatting;
import net.minecraft.client.resources.language.I18n;
import net.minecraft.world.item.ItemStack;
import net.montoyo.wd.WebDisplays;
import javax.annotation.Nonnull;
@ -20,7 +20,7 @@ public interface WDItem {
static void addInformation(@Nullable List<String> tt) {
if(tt != null && WebDisplays.PROXY.isShiftDown())
tt.add("" + ChatFormatting.GRAY + I18n.format("item.webdisplays.wiki"));
tt.add("" + ChatFormatting.GRAY + I18n.get("item.webdisplays.wiki"));
}
}

View File

@ -43,7 +43,7 @@ public class Client extends AbstractClient implements Runnable {
private volatile boolean connected;
private final ByteBuffer readBuffer = ByteBuffer.allocateDirect(8192);
private volatile Thread thread;
private final UUID clientUUID = Minecraft.getMinecraft().player.getGameProfile().getId();
private final UUID clientUUID = Minecraft.getInstance().player.getGameProfile().getId();
private final ArrayDeque<ClientTask> tasks = new ArrayDeque<>();
private ClientTask currentTask;
private volatile boolean authenticated;

View File

@ -4,8 +4,6 @@
package net.montoyo.wd.utilities;
import net.minecraft.util.math.AxisAlignedBB;
public final class AABB {
public final Vector3i start;
@ -33,7 +31,7 @@ public final class AABB {
end.z = Math.max(a.z, b.z);
}
public AABB(AxisAlignedBB bb) {
public AABB(net.minecraft.world.phys.AABB bb) {
start = new Vector3i();
end = new Vector3i();
@ -70,8 +68,8 @@ public final class AABB {
return this;
}
public AxisAlignedBB toMc() {
return new AxisAlignedBB((double) start.x, (double) start.y, (double) start.z, (double) end.x, (double) end.y, (double) end.z);
public net.minecraft.world.phys.AABB toMc() {
return new net.minecraft.world.phys.AABB(start.x, start.y, start.z, end.x, end.y, end.z);
}
}

View File

@ -4,8 +4,9 @@
package net.montoyo.wd.utilities;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.ticks.WorldGenTickAccess;
import net.montoyo.wd.WebDisplays;
public abstract class Multiblock {
@ -39,7 +40,7 @@ public abstract class Multiblock {
public static final BlockOverride NULL_OVERRIDE = new BlockOverride(null, OverrideAction.NONE);
//Modifies pos
public static void findOrigin(IBlockAccess world, Vector3i pos, BlockSide side, BlockOverride override)
public static void findOrigin(LevelAccessor world, Vector3i pos, BlockSide side, BlockOverride override)
{
if(override == null)
override = NULL_OVERRIDE;
@ -64,7 +65,7 @@ public abstract class Multiblock {
}
//Origin stays constant
public static Vector2i measure(IBlockAccess world, Vector3i origin, BlockSide side)
public static Vector2i measure(LevelAccessor world, Vector3i origin, BlockSide side)
{
Vector2i ret = new Vector2i();
Vector3i pos = origin.clone();
@ -93,7 +94,7 @@ public abstract class Multiblock {
//Origin and size stays constant.
//Returns null if structure is okay, otherwise the erroring block pos.
public static Vector3i check(IBlockAccess world, Vector3i origin, Vector2i size, BlockSide side)
public static Vector3i check(LevelAccessor world, Vector3i origin, Vector2i size, BlockSide side)
{
Vector3i pos = origin.clone();
BlockPos.MutableBlockPos bp = new BlockPos.MutableBlockPos();

View File

@ -6,7 +6,7 @@ package net.montoyo.wd.utilities;
import com.mojang.authlib.GameProfile;
import io.netty.buffer.ByteBuf;
import net.minecraftforge.fml.common.network.ByteBufUtils;
import net.minecraft.network.FriendlyByteBuf;
import java.util.UUID;
@ -30,8 +30,8 @@ public final class NameUUIDPair {
uuid = profile.getId();
}
public NameUUIDPair(ByteBuf bb) {
name = ByteBufUtils.readUTF8String(bb);
public NameUUIDPair(FriendlyByteBuf bb) {
name = bb.readUtf();
long msb = bb.readLong();
long lsb = bb.readLong();
@ -63,8 +63,8 @@ public final class NameUUIDPair {
return name.isEmpty() && uuid.getMostSignificantBits() == 0L && uuid.getLeastSignificantBits() == 0L;
}
public void writeTo(ByteBuf bb) {
ByteBufUtils.writeUTF8String(bb, name);
public void writeTo(FriendlyByteBuf bb) {
bb.writeUtf(name);
bb.writeLong(uuid.getMostSignificantBits());
bb.writeLong(uuid.getLeastSignificantBits());
}

View File

@ -4,7 +4,7 @@
package net.montoyo.wd.utilities;
import net.minecraft.util.math.BlockPos;
import net.minecraft.core.BlockPos;
import java.util.Iterator;

View File

@ -5,11 +5,15 @@
package net.montoyo.wd.utilities;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.text.*;
import net.minecraftforge.fml.common.network.ByteBufUtils;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.chat.FormattedText;
import net.minecraft.network.chat.NbtComponent;
import net.minecraft.network.chat.Style;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.world.entity.player.Player;
import java.awt.*;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.Arrays;
@ -18,7 +22,7 @@ import java.util.UUID;
public abstract class Util {
public static void serialize(ByteBuf bb, Object f) {
public static void serialize(FriendlyByteBuf bb, Object f) {
Class<?> cls = f.getClass();
if(cls == Integer.class || cls == Integer.TYPE)
@ -30,7 +34,7 @@ public abstract class Util {
else if(cls == Boolean.class || cls == Boolean.TYPE)
bb.writeBoolean((Boolean) f);
else if(cls == String.class)
ByteBufUtils.writeUTF8String(bb, (String) f);
bb.writeUtf((String) f);
else if(cls == NameUUIDPair.class)
((NameUUIDPair) f).writeTo(bb);
else if(cls.isEnum())
@ -57,7 +61,7 @@ public abstract class Util {
throw new RuntimeException(String.format("Cannot transmit class %s over network!", cls.getName()));
}
public static Object unserialize(ByteBuf bb, Class cls) {
public static Object unserialize(FriendlyByteBuf bb, Class cls) {
if(cls == Integer.class || cls == Integer.TYPE)
return bb.readInt();
else if(cls == Float.class || cls == Float.TYPE)
@ -67,7 +71,7 @@ public abstract class Util {
else if(cls == Boolean.class || cls == Boolean.TYPE)
return bb.readBoolean();
else if(cls == String.class)
return ByteBufUtils.readUTF8String(bb);
return bb.readUtf();
else if(cls == NameUUIDPair.class)
return new NameUUIDPair(bb);
else if(cls.isEnum())
@ -128,16 +132,15 @@ public abstract class Util {
return idx ^ (idx >> 16);
}
public static void toast(EntityPlayer player, String key, Object... data) {
toast(player, TextFormatting.RED, key, data);
public static void toast(Player player, String key, Object... data) {
toast(player, Style.EMPTY.withColor(0xff0000), key, data);
}
public static void toast(EntityPlayer player, TextFormatting color, String key, Object... data) {
ITextComponent root = new TextComponentString("[WebDisplays] ");
root.setStyle((new Style()).setColor(color));
root.appendSibling(new TextComponentTranslation("webdisplays.message." + key, data));
public static void toast(Player player, Style color, String key, Object... data) {
NbtComponent root = (NbtComponent) FormattedText.of("[WebDisplays] ", color);
root.append(new TranslatableComponent("webdisplays.message." + key, data));
player.sendMessage(root);
player.sendMessage(root, player.getUUID());
}
public static void silentClose(Object obj) {
@ -175,17 +178,17 @@ public abstract class Util {
return j.toString();
}
public static NBTTagCompound writeOwnerToNBT(NBTTagCompound tag, NameUUIDPair owner) {
public static CompoundTag writeOwnerToNBT(CompoundTag tag, NameUUIDPair owner) {
if(owner != null) {
tag.setLong("OwnerMSB", owner.uuid.getMostSignificantBits());
tag.setLong("OwnerLSB", owner.uuid.getLeastSignificantBits());
tag.setString("OwnerName", owner.name);
tag.putLong("OwnerMSB", owner.uuid.getMostSignificantBits());
tag.putLong("OwnerLSB", owner.uuid.getLeastSignificantBits());
tag.putString("OwnerName", owner.name);
}
return tag;
}
public static NameUUIDPair readOwnerFromNBT(NBTTagCompound tag) {
public static NameUUIDPair readOwnerFromNBT(CompoundTag tag) {
long msb = tag.getLong("OwnerMSB");
long lsb = tag.getLong("OwnerLSB");
String str = tag.getString("OwnerName");

View File

@ -5,7 +5,7 @@
package net.montoyo.wd.utilities;
import io.netty.buffer.ByteBuf;
import net.minecraft.util.math.BlockPos;
import net.minecraft.core.BlockPos;
public final class Vector3i {
@ -215,7 +215,7 @@ public final class Vector3i {
}
public void toBlock(BlockPos.MutableBlockPos bp) {
bp.setPos(x, y, z);
bp.set(x, y, z);
}
public int getChunkLocalPos()