Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Renato

Members
  • Joined

  • Last visited

  1. I try to get some information about other players when joining a server. For example, I want to listen to the `AttackEntityEvent` to observe if one player hits another. However, this event works only if my own player hits other entities. Also, I want to read the information in the chat on a server with `ClientChatReceivedEvent` but that only works in Singleplayer. I know these problems are kind of separate ones but maybe they are linked because I register my Event listeners in a wrong way. I don't know. I have the same problem with many other events like `ArrowNockEvent`, `LivingHurtEvent`. The only event that works correctly is my `TickEvent.PlayerTickEvent`. Could you help me please. Are these events wrong? If so, are they other events that I can consider? If not, how can I gather information about other players on the server? Thanks for your help! @Mod(Main.MODID) public class Main { // Define mod id in a common place for everything to reference public static final String MODID = "tttdatacollector"; // Directly reference a slf4j logger private static final Logger LOGGER = LogUtils.getLogger(); public Main(FMLJavaModLoadingContext context) { IEventBus modEventBus = context.getModEventBus(); // Register the commonSetup method for modloading modEventBus.addListener(this::commonSetup); // Register ourselves for server and other game events we are interested in MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(new PlayerTickEventHandler()); MinecraftForge.EVENT_BUS.register(new PlayerHurtEventHandler()); MinecraftForge.EVENT_BUS.register(new PlayerAttackEntityEventHandler()); MinecraftForge.EVENT_BUS.register(new ChatMessageEventHandler()); MinecraftForge.EVENT_BUS.register(new KillEventHandler()); } } public class ChatMessageEventHandler { private static final Logger log = LogUtils.getLogger(); @SubscribeEvent public void onChatMessageServer(ClientChatReceivedEvent event) { log.info("ClientChatReceivedEvent"); log.info(event.getMessage().getString()); } } public class BowShotEventHandler { private static final Logger log = LogUtils.getLogger(); @SubscribeEvent public void onArrowNock(ArrowNockEvent event) { log.info("onArrowNock"); if (event.getEntity() instanceof ServerPlayer player) { log.info("Player nocked an arrow: {}", player.getName().getString()); } } } public class PlayerAttackEntityEventHandler { private static final Logger log = LogUtils.getLogger(); @SubscribeEvent public void onPlayerAttack(AttackEntityEvent event) { log.info("Player Attack by {} to {}", event.getEntity().getName().getString(), event.getTarget().getName().getString()); } } public class PlayerTickEventHandler { private static final Logger log = LogUtils.getLogger(); private final AggregatedPlayerDataCache aggregatedPlayerDataCache = AggregatedPlayerDataCache.getInstance(); private final PlayerPositionCache playerPositionCache = PlayerPositionCache.getInstance(); private final PlayerDistanceScoreCalculator playerDistanceScoreCalculator = PlayerDistanceScoreCalculator.getInstance(); @SubscribeEvent public void onPlayerTick(TickEvent.PlayerTickEvent event) { var player = event.player; String playerName = player.getName().getString(); var playerData = aggregatedPlayerDataCache.getPlayerData(playerName); playerData.setPlayerName(playerName); var oldPos = playerPositionCache.getPlayerPosition(playerName); this.calculateAndSetDistanceAndScore(oldPos, playerData, player); } }

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.