Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
5d5f9e8
New translations en_us.json (Japanese)
timplay33 Feb 20, 2026
976989d
New translations en_us.json (Polish)
timplay33 Feb 20, 2026
64c24a5
New translations en_us.json (Russian)
timplay33 Feb 20, 2026
45bdced
New translations en_us.json (Swedish)
timplay33 Feb 20, 2026
c16d15c
New translations en_us.json (Chinese Simplified)
timplay33 Feb 20, 2026
f9583d7
Merge branch 'mc1.21.1/dev' into l10n_mc1.21.1/dev
timplay33 Feb 20, 2026
ea5563c
New translations en_us.json (Swedish)
timplay33 Feb 20, 2026
3717b58
remove spamming debug log
timplay33 Feb 21, 2026
c656937
New translations en_us.json (French)
timplay33 Feb 21, 2026
28c5741
New translations en_us.json (German)
timplay33 Feb 21, 2026
6f9fdbe
New translations en_us.json (Japanese)
timplay33 Feb 21, 2026
87b622d
New translations en_us.json (Polish)
timplay33 Feb 21, 2026
284f02e
New translations en_us.json (Russian)
timplay33 Feb 21, 2026
786bd3a
New translations en_us.json (Swedish)
timplay33 Feb 21, 2026
bc609c0
New translations en_us.json (Chinese Simplified)
timplay33 Feb 21, 2026
3914420
New translations en_us.json (Portuguese, Brazilian)
timplay33 Feb 21, 2026
40689d9
Fix Translation
timplay33 Feb 21, 2026
659b946
New translations en_us.json (French)
timplay33 Feb 21, 2026
4d50a5e
New translations en_us.json (German)
timplay33 Feb 21, 2026
b5b9309
New translations en_us.json (Japanese)
timplay33 Feb 21, 2026
ce2ce11
New translations en_us.json (Polish)
timplay33 Feb 21, 2026
0f31229
New translations en_us.json (Russian)
timplay33 Feb 21, 2026
c673c28
New translations en_us.json (Swedish)
timplay33 Feb 21, 2026
08235ef
New translations en_us.json (Chinese Simplified)
timplay33 Feb 21, 2026
828077c
New translations en_us.json (Portuguese, Brazilian)
timplay33 Feb 21, 2026
a478da2
Add Trash Menu and associated functionality for Portable Stock Ticker
timplay33 Feb 21, 2026
ba669be
Implement TrashSlot feature
timplay33 Feb 22, 2026
d1f7e77
Add Trash Menu GUI elements and adjust layout for TrashScreen
timplay33 Feb 22, 2026
daff97e
Add synchronization for trash items between server and client
timplay33 Feb 22, 2026
cf7971b
Add active request check for trash slots to prevent multiple requests…
timplay33 Feb 22, 2026
034c049
Fix Item duplication by removing redundant save
timplay33 Feb 22, 2026
1ebee20
Fix dont allow PST in TrashSlot
timplay33 Feb 22, 2026
4543712
Change Toast based on Mission (Pickup / Delivery)
timplay33 Feb 22, 2026
8ea846f
Fix not saved on Mouse input
timplay33 Feb 23, 2026
b6408df
Fix RoboBee Showing "No Valid Target" of trash pickup
timplay33 Feb 23, 2026
a924a29
Fix RoboBee flying to closest port after pickup instead of target port
timplay33 Feb 23, 2026
a84479c
Improve based on Copilot
timplay33 Feb 23, 2026
f9db758
Refactor trash store to use Optional ItemStacks
timplay33 Feb 23, 2026
4aeaa31
Implement atomic trash item pickup and update TrashMenu interaction
timplay33 Feb 23, 2026
36cabf0
Update CHANGELOG.md
timplay33 Feb 23, 2026
a93b4fd
Add TrashSlots - Merge pull request #299 from timplay33/mc1.21.1/feat…
timplay33 Feb 23, 2026
0868d8d
New translations en_us.json (French)
timplay33 Feb 23, 2026
5215bc1
New translations en_us.json (German)
timplay33 Feb 23, 2026
1c3881f
New translations en_us.json (Japanese)
timplay33 Feb 23, 2026
6aede07
New translations en_us.json (Polish)
timplay33 Feb 23, 2026
4cfdacb
New translations en_us.json (Russian)
timplay33 Feb 23, 2026
4e53316
New translations en_us.json (Swedish)
timplay33 Feb 23, 2026
98a3b21
New translations en_us.json (Chinese Simplified)
timplay33 Feb 23, 2026
36c7730
New translations en_us.json (Portuguese, Brazilian)
timplay33 Feb 23, 2026
252e37d
Add keyinfo for opening player networks screen in en_us.json
timplay33 Feb 23, 2026
5cc229f
New translations en_us.json (French)
timplay33 Feb 23, 2026
c5987b2
New translations en_us.json (German)
timplay33 Feb 23, 2026
9301304
New translations en_us.json (Japanese)
timplay33 Feb 23, 2026
29d8dda
New translations en_us.json (Polish)
timplay33 Feb 23, 2026
1761aa0
New translations en_us.json (Russian)
timplay33 Feb 23, 2026
e35f085
New translations en_us.json (Swedish)
timplay33 Feb 23, 2026
e3ca7bf
New translations en_us.json (Chinese Simplified)
timplay33 Feb 23, 2026
7fa7b58
New translations en_us.json (Portuguese, Brazilian)
timplay33 Feb 23, 2026
6f5ec65
Merge branch 'mc1.21.1/dev' into l10n_mc1.21.1/dev
timplay33 Feb 23, 2026
f633541
Merge pull request #298 from timplay33/l10n_mc1.21.1/dev
timplay33 Feb 23, 2026
baf5255
Fix Port with full packages inventory can't accept bee without package
timplay33 Feb 26, 2026
9fc1f4e
Fix PST not updating if Netowrk has no Items
timplay33 Mar 17, 2026
859c502
feat: Add admin commands for network management (#305)
timplay33 Mar 17, 2026
1819929
Added Bee Port Return Mode toggle in the Bee Port GUI (#136)
timplay33 Mar 17, 2026
65b2b95
fix: Portable Stock Ticker loses address after restart (#287)
timplay33 Mar 17, 2026
b7058ec
Update README.md
timplay33 Mar 17, 2026
39c429f
Enhance README with setup instructions and images
timplay33 Mar 17, 2026
4cae09e
refactor: Remove debug logging from network player addition and data …
timplay33 Mar 17, 2026
55b08ac
New Crowdin updates (#306)
timplay33 Mar 17, 2026
34908e8
refactor: use Server logic for command instead of sending a Package
timplay33 Mar 17, 2026
ada9e03
refactor: add distance check and network interaction validation in To…
timplay33 Mar 17, 2026
0541424
fix: correct spelling errors in BeePortBlockEntityTarget and README
timplay33 Mar 17, 2026
0c31ea8
refactor: optimize request handling logic and change roboTrashStores …
timplay33 Mar 17, 2026
bd8142a
v0.7.0 bump version
timplay33 Mar 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
------------------------------------------------------
Create: Mobile Packages - v0.7.0 - 1.21.1 - 17.03.2026
------------------------------------------------------

### Additions

- Added Bee Port Return Mode toggle in the Bee Port GUI (#136)
- New button that toggles between normal delivery and return mode
- In return mode, Robo Bees spawned from that port fly back to their origin port after successful player delivery

- Added Admin/OP Commands for Network Management (#305)
- `/cmp network list` - Display all logistics networks with names, player counts, lock status, and owner information
- `/cmp network add <player> <networkId>` - Add a player to a network (auto-filters to named networks only)
- `/cmp network remove <player> <networkId>` - Remove a player from a network (auto-filters to networks the player is
part of)
- Full command auto-completion with intelligent filtering

- Added TrashSlots to the Portable Stock Ticker allowing players to send items (#299)
- Set an address
- Put items in the TrashSlots
- A Robo Bee will come and pick up the items and send them to the address

### Bug Fixes

- Fixed Port with full packages inventory can't accept RoboBee without package (#301)
- Fixed Portable Stock Ticker not updating to an empty item list if the last item is removed (#302)
- Fixed Portable Stock Ticker losing address after restart (#287)

------------------------------------------------------
Create: Mobile Packages - v0.6.1 - 1.21.1 - 20.02.2026
------------------------------------------------------
Expand Down
106 changes: 66 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,77 +10,103 @@ A Minecraft mod that adds support for delivering Create Mod Packages directly to

## Requirements

### 1.20.1 Forge
- Forge 47.3.33 or newer
- Create 6.0.8 or newer

### 1.21.1 NeoForge

- NeoForge 21.1.206 or newer
- Create 6.0.9 or newer

### 1.20.1 Forge (no longer supported)
- Forge 47.3.33 or newer
- Create 6.0.8 or newer

## Where to Download?
## Download?
- Modrinth: https://modrinth.com/mod/create-mobile-packages
- Curseforge: https://www.curseforge.com/minecraft/mc-mods/create-mobile-packages

## Translations
## Overview

### Logistics Network

[![Crowdin](https://badges.crowdin.net/create-mobile-packages/localized.svg)](https://crowdin.com/project/create-mobile-packages) This project is translated using Crowdin.[https://crowdin.com/project/create-mobile-packages](https://crowdin.com/project/create-mobile-packages)
The core of the mod is the **Logistics Network**.

You're welcome to contribute to the translations or add your language.
- **Linking**: Bee Ports must be linked to a network. Place a new one to create a network, or link to an existing one.
- **Security**: Robo Bees only fly to ports and players within the same network.
- **Membership**: Players can join a network via the Bee Port GUI. View your networks with the `H` hotkey.

## Items
### Bee Port

The **Bee Port** is a specialized block that automates the delivery of Create mod Packages to players or other Bee Ports.
The hub for your logistics network.

Key Features:
- **Package delivery system** that reads address labels and send a bee with the packages to players or other Bee Ports
- **Insert packages manually or automatically** using Funnels, Chutes, or Hoppers
- **Pull packages** from adjacent inventories
- **Push packages** to adjacent inventories if:
- The address matches the Bee Port's configured addresses
- The Bee Port receives a redstone signal
- **Send & Receive**: Automates package delivery to addresses (players or other ports).
- **Requirement**: Requires a **Robo Bee** item in its internal inventory to send packages.
- **Return Mode**: Toggle to have Robo Bees return to this port after delivering to a player.
- **Automation**: By default, it pulls packages from adjacent inventories. When powered by **Redstone**, it pushes items
to adjacent inventories.

![bee Port](https://github.com/user-attachments/assets/3b15287e-44fc-4ebc-9e59-a38fc2a5da49)
![Bee Port](https://github.com/user-attachments/assets/3b15287e-44fc-4ebc-9e59-a38fc2a5da49)

#### Robo Bee
The **Robo Bee** is an entity that delivers Create mod Packages to their destination.
It follows the address on the package, delivering directly to players or between Bee Ports as needed.
### Robo Bee

Key Features:
- **Spawned using the item**
- **Required by Bee Ports** to send packages
- **Carries packages** directly to players or between Bee Ports
The courier entity.

![robo_bee](https://github.com/user-attachments/assets/9b78670f-a2f8-4343-bd58-5936103a9596)
- **Delivery**: Carries packages to their destination address.
- **Spawning**: Right-click with a **Robo Bee** item to spawn.
- **Network**: The bee binds to the network the item is linked to. If the item is unlinked, the bee will target any
available port.

### Portable Stock Ticker
![Robo Bee](https://github.com/user-attachments/assets/9b78670f-a2f8-4343-bd58-5936103a9596)

The **Portable Stock Ticker** is a handheld device that integrates with a Create mod network, allowing players to request packages remotely.
### Portable Stock Ticker

Once linked to a **Stock Ticker** or a **Stock Link**, it provides a **Stockkeeper interface**, enabling players to request items on the go without needing direct access to a Stockkeeper.
A handheld device for remote item management.

Key Features:
- **Remote Item Requesting** via Stockkeeper interface
- **JEI-synchronized search**
- **Request Items**: Access your stock remotely by linking to Create Logistics Network.
- **Send Items**: Use the **Trash Slots** to send items from your inventory to a specific address via Robo Bee. (The Bee Port needs to be in the same network as the Portable Stock Ticker)
- **Crafting support** within the request interface
- **Category synchronization**: If linked to a Stock Ticker with categories, those categories will be copied to the Portable Stock Ticker
- **JEI Support**: Synchronized item search.

![Controller](https://github.com/user-attachments/assets/d8a85e58-3ffa-4c2a-8b74-48f6c2b76642)
![Stock Ticker](https://github.com/user-attachments/assets/d8a85e58-3ffa-4c2a-8b74-48f6c2b76642)

### Mobile Packager

The **Mobile Packager** is a handheld device allowing players to create or modify Create mod Packages on the go.
A utility for managing packages on the go.

Key Features:
- **Creating Packages** using the device opens a GUI where up to nine Stacks can be placed along with an address. On submission, a new Package is placed in the player's inventory containing the added items.
- **Edit Packages** using the device with the Shift key opens a GUI where an existing package can be placed. On submission, the contents of the package are shown and can be modified.
- **Create**: Pack up to 9 item stacks into an addressed package.
- **Edit**: View and modify existing package contents (Sneak + Use).

![Mobile Packager](https://github.com/user-attachments/assets/9d21daf4-f64e-4df8-9ad3-a689e6f83ab5)

## Commands

Admin commands for managing logistics networks.

- `/cmp network list` - Display all networks, player counts, and owners.
- `/cmp network add <player> <networkId>` - Force add a player to a network.
- `/cmp network remove <player> <networkId>` - Force remove a player from a network.
- `/cmp robos clear` - Remove all Robo Bees from the world.

## Translations

[![Crowdin](https://badges.crowdin.net/create-mobile-packages/localized.svg)](https://crowdin.com/project/create-mobile-packages)

Help translate the mod on [Crowdin](https://crowdin.com/project/create-mobile-packages).

## Gallery

![image](https://github.com/user-attachments/assets/80b6f028-61f9-415a-aa4d-bd911d1d1997)
![image](https://github.com/user-attachments/assets/9c9afb41-4671-4092-9a4f-0e23dbf155bb)
### Simple Setup
Link the Port and the Stock Link, by clicking with one item on the other block. You can link your Portable Stock Ticker by Shift-Clicking with it on the Stock Link, Port or other Linked Blocks
<img width="1920" height="1043" alt="2026-03-17_21 28 01" src="https://github.com/user-attachments/assets/9ceff20f-8445-4408-9e41-d7f28a7e6831" />

### Robo Bee on its way delivering to you
<img width="1920" height="1043" alt="2026-03-17_21 28 22" src="https://github.com/user-attachments/assets/f59466f4-b04c-48cd-9a37-b65bbeb907ee" />

### Robo Bee on its way picking up your Trash Slot items to deliver them to "Port1"
<img width="1920" height="1043" alt="2026-03-17_21 34 10" src="https://github.com/user-attachments/assets/1ef583d9-b4c8-4716-bf8e-9e120f2532e8" />

### Portable Stock Ticker selecting items to be send to you
<img width="1920" height="1043" alt="2026-03-17_21 29 00" src="https://github.com/user-attachments/assets/2abb559d-e87e-41b2-ab21-e0382ac81a77" />

### Admin Console Command to manage Networks (can also be done via UI)
<img width="1004" height="281" alt="2026-03-17_21 36 13" src="https://github.com/user-attachments/assets/b9db957e-8e66-4759-9d57-4f1c6ead4e5e" />


2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ mod_name=Create: Mobile Packages
mod_license=MIT License

# The mod version. See https://semver.org/
mod_version=0.6.1
mod_version=0.7.0
mod_logo=assets/create_mobile_packages/textures/create_mobile_packages.png
mod_display_url=https://github.com/timplay33/Create-Mobile-Packages
mod_group_id=de.theidler.create_mobile_packages
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@
import de.theidler.create_mobile_packages.index.config.CMPConfigs;
import de.theidler.create_mobile_packages.items.robo_bee.RoboBeeItem;
import de.theidler.create_mobile_packages.network_settings.NetworkHelper;
import de.theidler.create_mobile_packages.robo.BeePortBlockEntityTarget;
import de.theidler.create_mobile_packages.robo.RoboManager;
import de.theidler.create_mobile_packages.robo.VirtualRobo;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.HolderLookup;
import net.minecraft.core.GlobalPos;
import net.minecraft.core.HolderLookup;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerLevel;
Expand All @@ -36,12 +37,12 @@
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.neoforged.neoforge.capabilities.Capabilities;
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
import net.neoforged.neoforge.items.IItemHandler;
import net.neoforged.neoforge.items.ItemHandlerHelper;
import net.neoforged.neoforge.items.ItemStackHandler;
import org.jetbrains.annotations.NotNull;
import net.neoforged.neoforge.capabilities.Capabilities;
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
import org.jetbrains.annotations.Nullable;

import java.util.Comparator;
Expand All @@ -60,8 +61,9 @@ public class BeePortBlockEntity extends PackagePortBlockEntity {
private static final int ROBOBEE_INVENTORY_STACK_SIZE = 64;
private UUID placerUUID;

private final ContainerData data = new SimpleContainerData(2);
private final ContainerData data = new SimpleContainerData(3);
private final ItemStackHandler roboBeeInventory = new ItemStackHandler(1);
private boolean beeReturnModeEnabled = false;
private final IItemHandler handler = new IItemHandler() {
@Override
public int getSlots() {
Expand Down Expand Up @@ -200,14 +202,15 @@ public static boolean sendPackageToPlayer(Player player, ItemStack itemStack) {

private synchronized void requestRoboEntity() {
if (level instanceof ServerLevel serverLevel) {
RoboManager.get(serverLevel).requestRobo(this.getBlockPos(), this.getLogisticsNetworkId());
RoboManager.get(serverLevel).requestRobo(new BeePortBlockEntityTarget(this), this.getLogisticsNetworkId(), RoboRequest.Mission.RESTOCK);
}
}

@Override
protected void write(CompoundTag tag, HolderLookup.Provider registries, boolean clientPacket) {
super.write(tag, registries, clientPacket);
tag.put("RoboBeeInventory", roboBeeInventory.serializeNBT(registries));
tag.putBoolean("BeeReturnModeEnabled", beeReturnModeEnabled);
if (placerUUID != null) {
tag.putUUID("PlacerUUID", placerUUID);
}
Expand All @@ -219,6 +222,7 @@ protected void read(CompoundTag tag, HolderLookup.Provider registries, boolean c
if (tag.contains("RoboBeeInventory")) {
roboBeeInventory.deserializeNBT(registries, tag.getCompound("RoboBeeInventory"));
}
beeReturnModeEnabled = tag.getBoolean("BeeReturnModeEnabled");
if (tag.contains("PlacerUUID")) {
placerUUID = tag.getUUID("PlacerUUID");
}
Expand All @@ -241,6 +245,7 @@ public void tick() {
int minEta = eta.stream().min(Comparator.naturalOrder()).orElse(-1);
this.data.set(0, minEta);
this.data.set(1, eta.isEmpty() ? 0 : 1);
this.data.set(2, beeReturnModeEnabled ? 1 : 0);
}
}

Expand Down Expand Up @@ -362,7 +367,7 @@ private void sendItem(ItemStack itemStack, int slot) {
// Check if the item can be sent to another drone port.
if (CMPConfigs.server().portToPort.get() && !PackageItem.matchAddress(address, addressFilter)) {
BeePortBlockEntity beePortBlockEntity = CMPHelper.getClosestBeePort(level, address, this.getBlockPos(), null, getLogisticsNetworkId());
if (beePortBlockEntity != null && !beePortBlockEntity.isFull()) {
if (beePortBlockEntity != null && beePortBlockEntity.hasSpaceForPackageAndRobo()) {
sendDrone(itemStack, slot);
}
}
Expand Down Expand Up @@ -411,7 +416,7 @@ private void sendDrone(ItemStack itemStack, int slot) {
}
roboSendCooldown = 2;
if (level instanceof ServerLevel serverLevel) {
RoboManager.get(serverLevel).newRobo(serverLevel, itemStack, this.getBlockPos(), this.getLogisticsNetworkId(), 0, this.getBlockPos());
RoboManager.get(serverLevel).newRobo(serverLevel, itemStack, this.getBlockPos(), this.getLogisticsNetworkId(), 0, this.getBlockPos(), beeReturnModeEnabled);
}
inventory.setStackInSlot(slot, ItemStack.EMPTY);
}
Expand Down Expand Up @@ -523,36 +528,35 @@ public void destroy() {
}

/**
* Checks if the drone port is full, considering a specified number of slots to leave empty.
* Checks if the at least one of the PackageSlots is empty.
*
* @param slotsToLeaveEmpty The number of slots that should remain empty.
* @return True if the number of empty slots is less than or equal to the specified slots to leave empty, false otherwise.
* @return True if at least one slot is empty, false if all slots are full.
*/
public boolean hasFullInventory(int slotsToLeaveEmpty) {
int emptySlots = 0;
public boolean hasSpaceForPackage() {
for (int i = 0; i < inventory.getSlots(); i++) {
if (inventory.getStackInSlot(i).isEmpty()) {
emptySlots++;
return true;
}
}
return emptySlots <= slotsToLeaveEmpty;
}

public synchronized boolean hasFullRoboSlot(int leaveEmpty) {
return roboBeeInventory.getStackInSlot(0).getCount() >= ROBOBEE_INVENTORY_STACK_SIZE - leaveEmpty;
return false;
}

/**
* Checks if the drone port is full.
* Checks if there is space for at least one Robo-Bee in the RoboBeeInventory.
*
* @return True if the drone port is full, false otherwise.
* @return True if there is space for at least one Robo-Bee, false otherwise.
*/
public boolean isFull() {
return isFull(0);
public synchronized boolean hasSpaceForRobo() {
return roboBeeInventory.getStackInSlot(0).getCount() < ROBOBEE_INVENTORY_STACK_SIZE;
}

public boolean isFull(int slotsToLeaveEmpty) {
return hasFullInventory(slotsToLeaveEmpty) || hasFullRoboSlot(0);
/**
* Checks if there is space for at least one Package and one Robo-Bee in the respective inventories.
*
* @return True if there is space for at least one Package and one Robo-Bee, false otherwise.
*/
public boolean hasSpaceForPackageAndRobo() {
return hasSpaceForPackage() && hasSpaceForRobo();
}

/**
Expand All @@ -564,9 +568,9 @@ public boolean isFull(int slotsToLeaveEmpty) {
*/
public synchronized boolean canAcceptEntity(VirtualRobo entity, Boolean hasPackage) {
if (this.isRemoved()) return false;
if (entity == null) return hasPackage ? !isFull() : !hasFullRoboSlot(0);
if (entity == null) return hasPackage ? hasSpaceForPackageAndRobo() : hasSpaceForRobo();
if (hasRoboRequest()) return false;
return hasPackage ? !isFull() : !hasFullRoboSlot(0);
return hasPackage ? hasSpaceForPackageAndRobo() : hasSpaceForRobo();
}

public ItemStackHandler getRoboBeeInventory() {
Expand Down Expand Up @@ -616,4 +620,13 @@ public void handleRequest(RoboRequest request) {
RoboManager.get(serverLevel).newRequestRobo(serverLevel, this.getBlockPos(), request);
}
}

public void setBeeReturnModeEnabled(boolean beeReturnModeEnabled) {
if (this.beeReturnModeEnabled == beeReturnModeEnabled) return;
this.beeReturnModeEnabled = beeReturnModeEnabled;
if (level != null && !level.isClientSide) {
level.blockEntityChanged(worldPosition);
}
setChanged();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -127,4 +127,11 @@ public boolean isBeeOnTravel() {
}
return false;
}

public boolean isBeeReturnModeEnabled() {
if (data != null) {
return data.get(2) == 1;
}
return false;
}
}
Loading
Loading