Jump to content

[1.7.10] [Solved] NPE when item is removed


tiffit

Recommended Posts

I have made a tile entity that removes an item like the furnace as fuel.

But, my problem is that whenever the item gets removed the client crashes with a NPE for rendering the item.

 

Tile Entity:

public class TileEntityTemperatureControlledChamber extends GenericDuelTankTileEntity {

public boolean isUsingFire = false;
public int room_temp = 21;
public int itemMax = 60;
public boolean itemType;
public int currentItem = 0;
public int temperature = room_temp;

public static HashMap<Item, Boolean> getAllowedFuels(){
	HashMap<Item, Boolean> hmap = new HashMap<Item, Boolean>();
	hmap.put(Items.blaze_powder, true);
	hmap.put(Items.blaze_rod, true);
	hmap.put(Items.fire_charge, true);
	hmap.put(Item.getItemFromBlock(Blocks.ice), false);
	hmap.put(Item.getItemFromBlock(Blocks.packed_ice), false);
	hmap.put(Items.snowball, false);
	return hmap;
}

public TileEntityTemperatureControlledChamber() {
	super(Main.temperatureControlledChamber, 10000, Arrays.asList(Main.filteredWater));

}

@Override
public int getSizeInventory() {
	return 1;
}

@Override
public void updateEntity(){
	super.updateEntity();
	Main.network.sendToDimension(new TCCServerPacket(xCoord, yCoord, zCoord, false, false, temperature), worldObj.provider.dimensionId);
	calculateIsUsingFire();
	if(currentItem > 0){
		if(itemType && temperature < 100){
			temperature+=3;
			currentItem--;
		}
		if(!itemType && temperature > 0){
			temperature--;
			currentItem--;
		}
		if(temperature < 0) temperature = 0;
		if(temperature > 100) temperature = 100;
	}
	if(currentItem == 0){
		if(temperature < 21) temperature++;
		if(temperature > 21) temperature--;
		if(items[0] != null){
			currentItem = itemMax;
			itemType = getAllowedFuels().get(items[0].getItem());
			setInventorySlotContents(0, ISUtil.removeFromStack(1, items[0]));
		}
	}
}

private void calculateIsUsingFire(){
	if(items[0] == null || !getAllowedFuels().containsKey(items[0].getItem())) return;
	Item item = items[0].getItem();
	isUsingFire = getAllowedFuels().get(item);
}

}

 

Crashlog:

 

---- Minecraft Crash Report ----

// I'm sorry, Dave.

 

Time: 3/19/16 4:14 PM

Description: Rendering item

 

java.lang.NullPointerException: Rendering item

at net.minecraft.item.ItemStack.getItemDamage(ItemStack.java:265)

at net.minecraft.client.renderer.entity.RenderItem.renderItemIntoGUI(RenderItem.java:419)

at net.minecraft.client.renderer.entity.RenderItem.renderItemAndEffectIntoGUI(RenderItem.java:585)

at net.minecraft.client.gui.inventory.GuiContainer.func_146977_a(GuiContainer.java:289)

at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:114)

at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1137)

at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1067)

at net.minecraft.client.Minecraft.run(Minecraft.java:962)

at net.minecraft.client.main.Main.main(Main.java:164)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)

at GradleStart.main(Unknown Source)

 

 

A detailed walkthrough of the error, its code path and all known details is as follows:

---------------------------------------------------------------------------------------

 

-- Head --

Stacktrace:

at net.minecraft.item.ItemStack.getItemDamage(ItemStack.java:265)

at net.minecraft.client.renderer.entity.RenderItem.renderItemIntoGUI(RenderItem.java:419)

 

-- Item being rendered --

Details:

Item Type: null

Item Aux: ~~ERROR~~ NullPointerException: null

Item NBT: null

Item Foil: ~~ERROR~~ NullPointerException: null

Stacktrace:

at net.minecraft.client.renderer.entity.RenderItem.renderItemAndEffectIntoGUI(RenderItem.java:585)

at net.minecraft.client.gui.inventory.GuiContainer.func_146977_a(GuiContainer.java:289)

at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:114)

 

-- Screen render details --

Details:

Screen name: tiffit.GUI.GUITemperatureControlledChamber

Mouse location: Scaled: (217, 160). Absolute: (434, 159)

Screen size: Scaled: (427, 240). Absolute: (854, 480). Scale factor of 2

 

-- Affected level --

Details:

Level name: MpServer

All players: 1 total; [EntityClientPlayerMP['Player940'/375, l='MpServer', x=-224.91, y=107.62, z=337.73]]

Chunk stats: MultiplayerChunkCache: 600, 600

Level seed: 0

Level generator: ID 00 - default, ver 1. Features enabled: false

Level generator options:

Level spawn location: World: (-156,64,256), Chunk: (at 4,4,0 in -10,16; contains blocks -160,0,256 to -145,255,271), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)

Level time: 111531 game time, 12085 day time

Level dimension: 0

Level storage version: 0x00000 - Unknown?

Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)

Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false

Forced entities: 121 total; [EntitySkeleton['Skeleton'/22, l='MpServer', x=-293.84, y=49.00, z=362.50], EntitySkeleton['Skeleton'/23, l='MpServer', x=-299.72, y=49.00, z=364.25], EntityCow['Cow'/24, l='MpServer', x=-295.50, y=77.00, z=362.50], EntityCow['Cow'/25, l='MpServer', x=-290.50, y=81.00, z=362.50], EntityZombie['Zombie'/26, l='MpServer', x=-294.25, y=49.00, z=370.47], EntitySpider['Spider'/36, l='MpServer', x=-275.06, y=21.00, z=317.59], EntitySkeleton['Skeleton'/37, l='MpServer', x=-272.25, y=21.00, z=315.50], EntityCow['Cow'/38, l='MpServer', x=-275.03, y=84.00, z=349.13], EntityZombie['Zombie'/39, l='MpServer', x=-278.31, y=24.00, z=360.31], EntityBat['Bat'/40, l='MpServer', x=-285.30, y=30.52, z=362.30], EntityBat['Bat'/41, l='MpServer', x=-272.26, y=25.27, z=361.45], EntitySkeleton['Skeleton'/42, l='MpServer', x=-283.94, y=49.00, z=361.44], EntityZombie['Zombie'/43, l='MpServer', x=-281.56, y=21.00, z=375.00], EntityZombie['Zombie'/44, l='MpServer', x=-281.50, y=21.00, z=379.03], EntityEnderman['Enderman'/45, l='MpServer', x=-283.59, y=21.00, z=377.94], EntityEnderman['Enderman'/46, l='MpServer', x=-285.26, y=22.00, z=383.42], EntityEnderman['Enderman'/47, l='MpServer', x=-286.91, y=23.00, z=382.31], EntityEnderman['Enderman'/48, l='MpServer', x=-282.34, y=22.00, z=386.59], EntityZombie['Zombie'/49, l='MpServer', x=-284.00, y=49.00, z=367.56], EntityZombie['Zombie'/50, l='MpServer', x=-285.44, y=49.00, z=368.50], EntityChicken['Chicken'/51, l='MpServer', x=-279.44, y=79.00, z=368.53], EntityChicken['Chicken'/52, l='MpServer', x=-276.23, y=76.00, z=371.16], EntitySkeleton['Skeleton'/53, l='MpServer', x=-286.09, y=23.95, z=382.31], EntityCreeper['Creeper'/54, l='MpServer', x=-281.59, y=23.00, z=388.09], EntityEnderman['Enderman'/55, l='MpServer', x=-288.72, y=23.00, z=386.53], EntityEnderman['Enderman'/56, l='MpServer', x=-281.47, y=23.00, z=387.22], EntityEnderman['Enderman'/57, l='MpServer', x=-284.41, y=22.00, z=384.38], EntityChicken['Chicken'/58, l='MpServer', x=-283.53, y=64.00, z=402.47], EntityChicken['Chicken'/59, l='MpServer', x=-286.53, y=62.38, z=408.47], EntityBat['Bat'/77, l='MpServer', x=-265.45, y=48.71, z=268.40], EntityBat['Bat'/78, l='MpServer', x=-260.75, y=50.10, z=269.75], EntityBat['Bat'/79, l='MpServer', x=-260.44, y=49.06, z=267.81], EntityCreeper['Creeper'/80, l='MpServer', x=-264.56, y=48.00, z=272.44], EntityCreeper['Creeper'/81, l='MpServer', x=-265.50, y=48.00, z=273.50], EntityBat['Bat'/82, l='MpServer', x=-262.25, y=49.10, z=273.63], EntityBat['Bat'/83, l='MpServer', x=-262.38, y=49.10, z=274.41], EntityBat['Bat'/84, l='MpServer', x=-255.23, y=51.78, z=276.63], EntityCreeper['Creeper'/85, l='MpServer', x=-257.38, y=43.00, z=312.91], EntitySkeleton['Skeleton'/86, l='MpServer', x=-264.91, y=72.00, z=335.50], EntityCreeper['Creeper'/87, l='MpServer', x=-265.22, y=71.00, z=333.22], EntityCreeper['Creeper'/88, l='MpServer', x=-267.69, y=71.00, z=332.69], EntitySkeleton['Skeleton'/89, l='MpServer', x=-266.16, y=71.00, z=329.31], EntitySkeleton['Skeleton'/90, l='MpServer', x=-257.10, y=73.00, z=330.50], EntityCreeper['Creeper'/91, l='MpServer', x=-263.94, y=32.00, z=338.63], EntityBat['Bat'/92, l='MpServer', x=-263.22, y=31.57, z=360.35], EntityBat['Bat'/93, l='MpServer', x=-271.84, y=30.79, z=362.80], EntityCreeper['Creeper'/94, l='MpServer', x=-261.50, y=41.00, z=359.50], EntityBat['Bat'/95, l='MpServer', x=-261.75, y=38.81, z=362.55], EntitySheep['Sheep'/96, l='MpServer', x=-261.81, y=87.00, z=346.22], EntityZombie['Zombie'/105, l='MpServer', x=-255.59, y=49.00, z=269.91], EntityBat['Bat'/106, l='MpServer', x=-258.44, y=50.00, z=271.88], EntityBat['Bat'/107, l='MpServer', x=-255.93, y=50.05, z=272.60], EntityWitch['Witch'/108, l='MpServer', x=-254.50, y=22.00, z=307.50], EntityWitch['Witch'/109, l='MpServer', x=-253.06, y=22.00, z=310.53], EntityZombie['Zombie'/110, l='MpServer', x=-243.03, y=23.00, z=308.47], EntitySpider['Spider'/111, l='MpServer', x=-250.38, y=21.00, z=319.13], EntitySheep['Sheep'/112, l='MpServer', x=-254.34, y=79.00, z=301.22], EntitySheep['Sheep'/113, l='MpServer', x=-249.84, y=85.00, z=314.28], EntityZombie['Zombie'/114, l='MpServer', x=-243.75, y=20.00, z=326.91], EntitySkeleton['Skeleton'/115, l='MpServer', x=-249.22, y=21.00, z=323.28], EntitySkeleton['Skeleton'/116, l='MpServer', x=-250.50, y=21.00, z=324.50], EntitySpider['Spider'/117, l='MpServer', x=-243.97, y=20.00, z=325.59], EntityZombie['Zombie'/118, l='MpServer', x=-246.41, y=43.00, z=318.94], EntityCreeper['Creeper'/119, l='MpServer', x=-254.41, y=74.00, z=345.00], EntityClientPlayerMP['Player940'/375, l='MpServer', x=-224.91, y=107.62, z=337.73], EntityCreeper['Creeper'/120, l='MpServer', x=-245.25, y=72.00, z=344.13], EntitySkeleton['Skeleton'/121, l='MpServer', x=-248.31, y=72.00, z=348.53], EntityCreeper['Creeper'/122, l='MpServer', x=-242.66, y=71.00, z=354.31], EntityZombie['Zombie'/123, l='MpServer', x=-240.06, y=73.00, z=359.38], EntitySkeleton['Skeleton'/124, l='MpServer', x=-244.66, y=5.00, z=376.16], EntitySheep['Sheep'/125, l='MpServer', x=-240.63, y=71.00, z=390.47], EntityCreeper['Creeper'/126, l='MpServer', x=-245.97, y=27.00, z=414.66], EntityWitch['Witch'/142, l='MpServer', x=-229.53, y=21.00, z=286.88], EntitySheep['Sheep'/143, l='MpServer', x=-224.31, y=73.00, z=283.34], EntitySheep['Sheep'/144, l='MpServer', x=-224.53, y=73.00, z=281.38], EntitySheep['Sheep'/145, l='MpServer', x=-239.50, y=76.00, z=284.66], EntitySheep['Sheep'/146, l='MpServer', x=-228.50, y=74.00, z=284.34], EntityCreeper['Creeper'/147, l='MpServer', x=-234.50, y=25.00, z=296.28], EntityCreeper['Creeper'/148, l='MpServer', x=-233.50, y=27.00, z=307.50], EntityCreeper['Creeper'/149, l='MpServer', x=-236.00, y=28.00, z=305.50], EntitySkeleton['Skeleton'/150, l='MpServer', x=-239.13, y=27.00, z=305.47], EntityCreeper['Creeper'/151, l='MpServer', x=-239.38, y=21.00, z=328.03], EntityZombie['Zombie'/152, l='MpServer', x=-233.84, y=29.00, z=330.50], EntityBat['Bat'/153, l='MpServer', x=-234.45, y=24.82, z=333.15], EntityCreeper['Creeper'/154, l='MpServer', x=-234.00, y=22.00, z=336.53], EntityCreeper['Creeper'/155, l='MpServer', x=-226.97, y=24.00, z=341.50], EntityZombie['Zombie'/156, l='MpServer', x=-235.91, y=29.00, z=336.38], EntitySkeleton['Skeleton'/157, l='MpServer', x=-232.50, y=24.00, z=339.50], EntityBat['Bat'/158, l='MpServer', x=-233.18, y=23.82, z=336.79], EntitySheep['Sheep'/159, l='MpServer', x=-226.75, y=72.00, z=382.81], EntityChicken['Chicken'/160, l='MpServer', x=-234.59, y=72.00, z=382.44], EntitySheep['Sheep'/181, l='MpServer', x=-212.78, y=72.00, z=271.38], EntityBat['Bat'/182, l='MpServer', x=-218.31, y=20.10, z=290.75], EntitySheep['Sheep'/183, l='MpServer', x=-210.44, y=74.00, z=299.34], EntityCreeper['Creeper'/184, l='MpServer', x=-212.69, y=15.00, z=333.31], EntitySkeleton['Skeleton'/185, l='MpServer', x=-208.28, y=15.00, z=334.25], EntityCreeper['Creeper'/186, l='MpServer', x=-210.63, y=16.00, z=324.91], EntitySkeleton['Skeleton'/187, l='MpServer', x=-210.16, y=16.00, z=326.31], EntityZombie['Zombie'/188, l='MpServer', x=-209.47, y=14.00, z=338.31], EntitySkeleton['Skeleton'/189, l='MpServer', x=-212.41, y=15.00, z=334.38], EntityCreeper['Creeper'/190, l='MpServer', x=-211.50, y=15.00, z=343.50], EntityCreeper['Creeper'/191, l='MpServer', x=-210.50, y=16.00, z=346.06], EntityCreeper['Creeper'/192, l='MpServer', x=-220.03, y=30.00, z=349.34], EntitySkeleton['Skeleton'/193, l='MpServer', x=-213.50, y=16.00, z=347.06], EntitySkeleton['Skeleton'/194, l='MpServer', x=-210.38, y=15.00, z=355.78], EntitySkeleton['Skeleton'/195, l='MpServer', x=-208.50, y=17.00, z=354.50], EntitySheep['Sheep'/196, l='MpServer', x=-211.22, y=73.00, z=373.69], EntitySheep['Sheep'/197, l='MpServer', x=-224.69, y=71.00, z=393.63], EntitySheep['Sheep'/209, l='MpServer', x=-196.47, y=73.00, z=265.28], EntitySheep['Sheep'/210, l='MpServer', x=-193.84, y=72.00, z=276.84], EntityZombie['Zombie'/211, l='MpServer', x=-207.63, y=15.00, z=336.97], EntitySheep['Sheep'/212, l='MpServer', x=-192.38, y=69.00, z=384.22], EntitySkeleton['Skeleton'/217, l='MpServer', x=-182.22, y=59.00, z=364.31], EntitySheep['Sheep'/218, l='MpServer', x=-191.34, y=69.00, z=375.50], EntityBat['Bat'/219, l='MpServer', x=-183.38, y=39.10, z=417.75], EntitySheep['Sheep'/223, l='MpServer', x=-165.22, y=68.00, z=278.41], EntityCreeper['Creeper'/224, l='MpServer', x=-169.00, y=18.00, z=336.56], EntitySheep['Sheep'/225, l='MpServer', x=-178.53, y=70.00, z=403.42], EntitySheep['Sheep'/226, l='MpServer', x=-166.94, y=69.00, z=410.97], EntitySheep['Sheep'/229, l='MpServer', x=-157.06, y=64.00, z=264.97], EntitySkeleton['Skeleton'/230, l='MpServer', x=-149.78, y=42.00, z=356.31]]

Retry entities: 0 total; []

Server brand: fml,forge

Server type: Integrated singleplayer server

Stacktrace:

at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:415)

at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2566)

at net.minecraft.client.Minecraft.run(Minecraft.java:984)

at net.minecraft.client.main.Main.main(Main.java:164)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)

at GradleStart.main(Unknown Source)

 

-- System Details --

Details:

Minecraft Version: 1.7.10

Operating System: Windows 10 (amd64) version 10.0

Java Version: 1.8.0_65, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 654726888 bytes (624 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)

JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M

AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used

IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95

FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1558 12 mods loaded, 12 mods active

States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

UCHIJAAAA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)

UCHIJAAAA FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar)

UCHIJAAAA Forge{10.13.4.1558} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar)

UCHIJAAAA OpenModsCore{0.8} [OpenModsCore] (minecraft.jar)

UCHIJAAAA <CoFH ASM>{000} [CoFH ASM] (minecraft.jar)

UCHIJAAAA CoFHCore{1.7.10R3.1.0B1} [CoFH Core] (CoFHCore-[1.7.10]3.1.0B1-321-dev.jar)

UCHIJAAAA hydrotech{1.0.0} [HydroTech] (bin)

UCHIJAAAA OpenMods{0.8} [OpenMods] (OpenModsLib-1.7.10-0.8-snapshot-419-deobf.jar)

UCHIJAAAA OpenBlocks{1.4.4} [OpenBlocks] (OpenBlocks-1.7.10-1.4.4-snapshot-692-deobf.jar)

UCHIJAAAA ThermalFoundation{1.7.10R1.2.1} [Thermal Foundation] (ThermalFoundation-[1.7.10]1.2.1-109-dev.jar)

UCHIJAAAA ThermalDynamics{1.7.10R1.1.0} [Thermal Dynamics] (ThermalDynamics-[1.7.10]1.1.0-161-dev (1).jar)

UCHIJAAAA ThermalExpansion{1.7.10R4.1.0B1} [Thermal Expansion] (ThermalExpansion-[1.7.10]4.1.0B1-234-dev.jar)

GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.5.0 NVIDIA 353.62' Renderer: 'GeForce GTX 960M/PCIe/SSE2'

OpenModsLib class transformers: [stencil_patches:FINISHED],[movement_callback:FINISHED],[map_gen_fix:FINISHED],[gl_capabilities_hook:FINISHED],[player_render_hook:FINISHED]

Class transformer null safety: all safe

CoFHCore: -[1.7.10]3.1.0B1-321

ThermalFoundation: -[1.7.10]1.2.1-109

ThermalDynamics: -[1.7.10]1.1.0-161

ThermalExpansion: -[1.7.10]4.1.0B1-234

Stencil buffer state: Function set: GL30, pool: forge, bits: 8

Launched Version: 1.7.10

LWJGL: 2.9.1

OpenGL: GeForce GTX 960M/PCIe/SSE2 GL version 4.5.0 NVIDIA 353.62, NVIDIA Corporation

GL Caps: Using GL 1.3 multitexturing.

Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.

Anisotropic filtering is supported and maximum anisotropy is 16.

Shaders are available because OpenGL 2.1 is supported.

 

Is Modded: Definitely; Client brand changed to 'fml,forge'

Type: Client (map_client.txt)

Resource Packs: []

Current Language: English (US)

Profiler Position: N/A (disabled)

Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used

Anisotropic Filtering: Off (1)

 

Link to comment
Share on other sites

It looks like somehow you have created an invalid ItemStack. Show the code that is removing the item.

 

Also, why are you sending a packet every update tick? The Container can sync variables for you via a few methods such as #detectAndSendChanges - that's how the furnace burn time is updated in the client-side GUI, for example. It's better because it only sends packets when needed, e.g. when displaying the information in the GUI. Of course, if you need temperature for rendering the block or something, then yeah, you'll want to send that packet.

Link to comment
Share on other sites

It looks like somehow you have created an invalid ItemStack. Show the code that is removing the item.

 

Also, why are you sending a packet every update tick? The Container can sync variables for you via a few methods such as #detectAndSendChanges - that's how the furnace burn time is updated in the client-side GUI, for example. It's better because it only sends packets when needed, e.g. when displaying the information in the GUI. Of course, if you need temperature for rendering the block or something, then yeah, you'll want to send that packet.

 

There is a detectAndSendChanges method? I wish I knew about this sooner. About the invalid itemstack, I found out what I was doing and fixed it. Thanks for the help!

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.