Skip to content

Commit 820a30b

Browse files
committed
No longer requires client side installation
1 parent d37361f commit 820a30b

File tree

7 files changed

+57
-62
lines changed

7 files changed

+57
-62
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
This is minecraft mod for easy and fast logging block place and break.
44

5+
## How to use
6+
1. Confirm you have op access to the server.
7+
2. Have a Wooden-Hoe.
8+
3. Left click the block you want to check a log.
9+
4. Right click checks a front of the block.
10+
511
## Event multithread handling
612
![](https://image.ibb.co/hyaPRw/Fast_Log_Block.png)
713

src/main/java/ru/lionzxy/fastlogblock/FastLogBlock.java

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,21 @@
11
package ru.lionzxy.fastlogblock;
22

3-
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
4-
import net.minecraft.item.Item;
5-
6-
import net.minecraftforge.client.event.ModelRegistryEvent;
7-
import net.minecraftforge.client.model.ModelLoader;
3+
import net.minecraft.util.text.translation.LanguageMap;
84
import net.minecraftforge.common.MinecraftForge;
9-
import net.minecraftforge.event.RegistryEvent;
105
import net.minecraftforge.fml.common.FMLLog;
116
import net.minecraftforge.fml.common.Mod;
127
import net.minecraftforge.fml.common.Mod.EventHandler;
138
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
149
import net.minecraftforge.fml.common.event.FMLServerStoppedEvent;
15-
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
16-
import net.minecraftforge.fml.relauncher.Side;
17-
import net.minecraftforge.fml.relauncher.SideOnly;
18-
1910
import ru.lionzxy.fastlogblock.handlers.EventHandlingManager;
2011
import ru.lionzxy.fastlogblock.ui.InfoItem;
2112

2213
import java.io.IOException;
2314

24-
@Mod(modid = FastLogBlock.MODID, version = FastLogBlock.VERSION, updateJSON = "https://raw.githubusercontent.com/LionZXY/FastLogBlock/master/update.json")
15+
@Mod(modid = FastLogBlock.MODID, version = FastLogBlock.VERSION,
16+
serverSideOnly = true,
17+
acceptableRemoteVersions = "*",
18+
updateJSON = "https://raw.githubusercontent.com/LionZXY/FastLogBlock/master/update.json")
2519
public class FastLogBlock {
2620
public static final String MODID = "fastlogblock";
2721
public static final String VERSION = "1.0.2";
@@ -32,22 +26,13 @@ public class FastLogBlock {
3226
public void preInit(FMLPreInitializationEvent event) throws IOException {
3327
FMLLog.log.info("Initializing eventHandlingManager...");
3428
eventHandlingManager = new EventHandlingManager();
35-
this.infoitem = new InfoItem(eventHandlingManager);
29+
infoitem = new InfoItem(eventHandlingManager);
3630
FMLLog.log.info("Done!");
31+
LanguageMap.inject(getClass().getClassLoader().getResourceAsStream("assets/fastlogblock/lang/en_us.lang"));
3732
MinecraftForge.EVENT_BUS.register(eventHandlingManager);
33+
MinecraftForge.EVENT_BUS.register(infoitem);
3834
MinecraftForge.EVENT_BUS.register(this);
3935
}
40-
41-
@SubscribeEvent
42-
@SideOnly(Side.CLIENT)
43-
public void registerModels(ModelRegistryEvent event){
44-
ModelLoader.setCustomModelResourceLocation(infoitem, 0, new ModelResourceLocation(infoitem.getRegistryName(), "inventory"));
45-
}
46-
47-
@SubscribeEvent
48-
public void registerItems(RegistryEvent.Register<Item> event) {
49-
event.getRegistry().registerAll(infoitem);
50-
}
5136

5237
@EventHandler
5338
public void serverStopped(final FMLServerStoppedEvent event) {

src/main/java/ru/lionzxy/fastlogblock/handlers/EventHandlingManager.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import net.minecraft.entity.player.EntityPlayer;
44
import net.minecraft.util.math.BlockPos;
5-
import net.minecraft.util.text.TextComponentTranslation;
5+
import net.minecraft.util.text.TextComponentString;
66
import net.minecraft.util.text.translation.I18n;
77
import net.minecraft.world.World;
88
import net.minecraftforge.event.world.BlockEvent;
@@ -60,9 +60,9 @@ public void flushUIWait(TickEvent.ServerTickEvent event) {
6060
notifyAboutEvent(blockEvent, findTaskResult.getEntityPlayer());
6161
}
6262
if (findTaskResult.getBlockChangeEventModels().isEmpty()) {
63-
findTaskResult.getEntityPlayer().sendMessage(new TextComponentTranslation("message.fastlogblock:blockinfo.event.empty"));
63+
findTaskResult.getEntityPlayer().sendMessage(new TextComponentString(String.format(I18n.translateToLocal("message.fastlogblock:blockinfo.event.empty"))));
6464
} else {
65-
findTaskResult.getEntityPlayer().sendMessage(new TextComponentTranslation("message.fastlogblock:blockinfo.event.done"));
65+
findTaskResult.getEntityPlayer().sendMessage(new TextComponentString(String.format(I18n.translateToLocal("message.fastlogblock:blockinfo.event.done"))));
6666
}
6767
}
6868
}
@@ -95,14 +95,14 @@ private void notifyAboutEvent(BlockChangeEventModel blockEvent, EntityPlayer ent
9595
final String[] args = new String[]{new SimpleDateFormat(dateformat).format(new Date(blockEvent.getTimestamp().getTime())),
9696
nickname,
9797
blockEvent.getNameblock().toString()};
98-
TextComponentTranslation textComponent;
98+
TextComponentString textComponent;
9999
switch (blockEvent.getBlockChangeType()) {
100100
default:
101101
case INSERT:
102-
textComponent = new TextComponentTranslation("message.fastlogblock:blockinfo.event.insert", (Object[]) args);
102+
textComponent = new TextComponentString(String.format(I18n.translateToLocal("message.fastlogblock:blockinfo.event.insert"), (Object[]) args));
103103
break;
104104
case REMOVE:
105-
textComponent = new TextComponentTranslation("message.fastlogblock:blockinfo.event.remove", (Object[]) args);
105+
textComponent = new TextComponentString(String.format(I18n.translateToLocal("message.fastlogblock:blockinfo.event.remove"), (Object[]) args));
106106
}
107107
entityPlayer.sendMessage(textComponent);
108108
}

src/main/java/ru/lionzxy/fastlogblock/ui/InfoItem.java

Lines changed: 37 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,61 @@
11
package ru.lionzxy.fastlogblock.ui;
22

3-
import net.minecraft.creativetab.CreativeTabs;
43
import net.minecraft.entity.player.EntityPlayer;
5-
import net.minecraft.item.Item;
4+
import net.minecraft.init.Items;
5+
import net.minecraft.item.ItemStack;
66
import net.minecraft.util.EnumActionResult;
77
import net.minecraft.util.EnumFacing;
8-
import net.minecraft.util.EnumHand;
9-
import net.minecraft.util.ResourceLocation;
108
import net.minecraft.util.math.BlockPos;
11-
import net.minecraft.util.text.TextComponentTranslation;
9+
import net.minecraft.util.text.TextComponentString;
10+
import net.minecraft.util.text.translation.I18n;
1211
import net.minecraft.world.World;
13-
import ru.lionzxy.fastlogblock.FastLogBlock;
12+
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
13+
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
1414
import ru.lionzxy.fastlogblock.handlers.EventHandlingManager;
1515
import ru.lionzxy.fastlogblock.utils.MinecraftUtils;
1616

17-
import java.util.Objects;
18-
19-
public class InfoItem extends Item {
20-
private static final String ITEMNAME = "infoitem";
17+
public class InfoItem {
2118
private final EventHandlingManager eventHandlingManager;
2219

2320
public InfoItem(EventHandlingManager eventHandlingManager) {
2421
this.eventHandlingManager = eventHandlingManager;
25-
setRegistryName(FastLogBlock.MODID, ITEMNAME);
26-
final ResourceLocation registryName = Objects.requireNonNull(getRegistryName());
27-
setUnlocalizedName(registryName.toString());
28-
setCreativeTab(CreativeTabs.MISC);
2922
}
3023

24+
@SubscribeEvent
25+
public void onItemRightClick(PlayerInteractEvent.RightClickBlock event) {
26+
BlockPos pos = event.getPos();
27+
EnumFacing face = event.getFace();
28+
if (face != null) {
29+
pos = pos.offset(face);
30+
}
3131

32-
@Override
33-
public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
34-
if (worldIn.isRemote) {
32+
EnumActionResult result = onItemUse(event.getEntityPlayer(), event.getWorld(), pos, event.getItemStack());
33+
if (result == EnumActionResult.SUCCESS || result == EnumActionResult.PASS) {
34+
event.setCanceled(true);
35+
}
36+
}
37+
38+
@SubscribeEvent
39+
public void onItemLeftClick(PlayerInteractEvent.LeftClickBlock event) {
40+
BlockPos pos = event.getPos();
41+
EnumActionResult result = onItemUse(event.getEntityPlayer(), event.getWorld(), pos, event.getItemStack());
42+
if (result == EnumActionResult.SUCCESS || result == EnumActionResult.PASS) {
43+
event.setCanceled(true);
44+
}
45+
}
46+
47+
public EnumActionResult onItemUse(EntityPlayer player, World worldIn, BlockPos pos, ItemStack itemStack) {
48+
if (itemStack.getItem() != Items.WOODEN_HOE) {
3549
return EnumActionResult.FAIL;
3650
}
51+
if (worldIn.isRemote) {
52+
return EnumActionResult.PASS;
53+
}
3754
if (!MinecraftUtils.canShowLog(player)) {
38-
player.sendMessage(new TextComponentTranslation("message.fastlogblock:blockinfo.event.permissionerror"));
39-
return EnumActionResult.FAIL;
55+
player.sendMessage(new TextComponentString(String.format(I18n.translateToLocal("message.fastlogblock:blockinfo.event.permissionerror"))));
56+
return EnumActionResult.PASS;
4057
}
41-
player.sendMessage(new TextComponentTranslation("message.fastlogblock:blockinfo.start", pos.getX(), pos.getY(), pos.getZ()));
58+
player.sendMessage(new TextComponentString(String.format(I18n.translateToLocal("message.fastlogblock:blockinfo.start"), pos.getX(), pos.getY(), pos.getZ())));
4259
eventHandlingManager.handleLogByPos(player, pos, worldIn);
4360
return EnumActionResult.SUCCESS;
4461
}

src/main/resources/assets/fastlogblock/models/item/infoitem.json

Lines changed: 0 additions & 6 deletions
This file was deleted.
-708 Bytes
Binary file not shown.

src/main/resources/pack.mcmeta

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)