Skip to content

Commit 79f01d1

Browse files
committed
feat: release 0.1.0
1 parent f7d8ec0 commit 79f01d1

14 files changed

Lines changed: 70 additions & 52 deletions

README.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,17 @@ Show image in your Allay server!
44

55
![img.png](img.png)
66

7-
## Command
7+
## Usage
88

9-
- `/imager`
9+
Main command: `/imager`
10+
11+
Right-click on an image to remove it
12+
13+
14+
## Permission
15+
16+
- `imager.command`: permission to use `/imager` command
17+
- `imager.query_image_info`: permission to query image info by right-clicking it
1018

1119
## License
1220

src/main/java/me/daoge/imager/Imager.java

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package me.daoge.imager;
22

33
import lombok.Getter;
4-
import me.daoge.imager.imagemap.ImageMap;
5-
import me.daoge.imager.imagemap.SplitMode;
6-
import me.daoge.imager.imagemapstorage.LocalImageMapStorage;
7-
import me.daoge.imager.imageprovider.LocalImageProvider;
4+
import me.daoge.imager.data.ImageMap;
5+
import me.daoge.imager.data.SplitMode;
86
import me.daoge.imager.manager.ImageMapManager;
97
import me.daoge.imager.manager.SimpleImageMapManager;
8+
import me.daoge.imager.provider.LocalImageProvider;
9+
import me.daoge.imager.storage.LocalImageMapStorage;
1010
import org.allaymc.api.block.data.BlockFace;
1111
import org.allaymc.api.block.dto.Block;
1212
import org.allaymc.api.block.dto.PlayerInteractInfo;
@@ -46,16 +46,17 @@ public class Imager extends Plugin {
4646

4747
@Getter
4848
protected static Imager instance;
49+
50+
{
51+
instance = this;
52+
}
53+
4954
protected Map<EntityPlayer, Long> interactCoolDown = new HashMap<>();
5055
protected Map<EntityPlayer, Position3ic> pos1 = new HashMap<>();
5156
protected Map<EntityPlayer, BlockFace> pos1BlockFace = new HashMap<>();
5257
@Getter
5358
protected ImageMapManager imageMapManager;
5459

55-
{
56-
instance = this;
57-
}
58-
5960
@Override
6061
public void onEnable() {
6162
var dataPath = this.pluginContainer.dataFolder();
@@ -81,20 +82,20 @@ protected void onPlayerInteractBlock(PlayerInteractBlockEvent event) {
8182
}
8283

8384
interactCoolDown.put(player, currentTick);
84-
if (!player.isActualPlayer() || !player.hasPermission("imager.query_image_info").asBoolean()) {
85+
if (!player.isActualPlayer() || !player.hasPermission(ImagerPermissions.QUERY_IMAGE_INFO).asBoolean()) {
8586
return;
8687
}
8788

8889
var imageMap = imageMapManager.getImageMapInPosition(clickedBlock.getPosition());
8990
var pos1 = imageMap.getPos1();
9091
var pos2 = imageMap.getPos2();
91-
String info = fImageName: §a" + imageMap.getImageName() + "\n" +
92-
fImageId: §a" + imageMap.getId() + "\n" +
93-
fSplitMode: §a" + imageMap.getMode() + "\n" +
94-
fWorldName: §a" + imageMap.getWorldName() + "\n" +
95-
fDimId: §a" + imageMap.getDimensionId() + "\n" +
96-
fPos1: §a" + pos1.x() + " " + pos1.y() + " " + pos1.z() + "\n" +
97-
fPos2: §a" + pos2.x() + " " + pos2.y() + " " + pos2.z();
92+
String info = rImageName: §a" + imageMap.getImageName() + "\n" +
93+
rImageId: §a" + imageMap.getId() + "\n" +
94+
rSplitMode: §a" + imageMap.getMode() + "\n" +
95+
rWorldName: §a" + imageMap.getWorldName() + "\n" +
96+
rDimId: §a" + imageMap.getDimensionId() + "\n" +
97+
rPos1: §a" + pos1.x() + " " + pos1.y() + " " + pos1.z() + "\n" +
98+
rPos2: §a" + pos2.x() + " " + pos2.y() + " " + pos2.z();
9899

99100
Forms.simple()
100101
.title("Imager")
@@ -126,7 +127,7 @@ protected void onPlayerInteractBlock(PlayerInteractBlockEvent event) {
126127
//第一个点
127128
pos1.put(player, interactPos);
128129
pos1BlockFace.put(player, interactInfo.blockFace());
129-
player.sendMessage("[Imager] §aPos1 set at: §f(" + interactPos.x + ", " + interactPos.y + ", " + interactPos.z + ")§a, please set pos2");
130+
player.sendMessage("[Imager] §aPos1 set at: §r(" + interactPos.x + ", " + interactPos.y + ", " + interactPos.z + ")§a, please set pos2");
130131
} else {
131132
//开始生成图片
132133
var clickedPos1 = pos1.remove(player);
@@ -142,13 +143,13 @@ protected void onPlayerInteractBlock(PlayerInteractBlockEvent event) {
142143
player.sendMessage("[Imager] §Illegal positions, the two positions must have the same block face");
143144
return;
144145
}
145-
player.sendMessage("[Imager] §aPos2 set at: §f(" + interactPos.x + ", " + interactPos.y + ", " + interactPos.z + ")§a, spawning...");
146+
player.sendMessage("[Imager] §aPos2 set at: §r(" + interactPos.x + ", " + interactPos.y + ", " + interactPos.z + ")§a, spawning...");
146147

147148
//模式细节介绍
148149
var info = new StringBuilder();
149150
for (var mode : SplitMode.values()) {
150151
var details = mode.details;
151-
info.append("§a").append(mode.name()).append(" - §f").append(details).append("\n");
152+
info.append("§a").append(mode.name()).append("§r - ").append(details).append("\n");
152153
}
153154

154155
Forms.custom()

src/main/java/me/daoge/imager/ImagerCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
public class ImagerCommand extends Command {
1919

2020
public ImagerCommand() {
21-
super("imager", "Imager plugin main command", "imager.command");
21+
super("imager", "Imager plugin main command", ImagerPermissions.COMMAND);
2222
}
2323

2424
@Override
@@ -116,7 +116,7 @@ public void prepareCommandTree(CommandTree tree) {
116116
player.sendMessage("[Imager] §cAsynchronous download failed");
117117
return;
118118
}
119-
player.sendMessage("[Imager] §aImage downloaded successfully! Has been saved as §f" + finalSaveName);
119+
player.sendMessage("[Imager] §aImage downloaded successfully! Has been saved as §r" + finalSaveName);
120120
if (!reload)
121121
player.sendMessage("[Imager] §aPlease reload image source to use it");
122122
else {
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package me.daoge.imager;
2+
3+
/**
4+
* @author daoge_cmd
5+
*/
6+
public interface ImagerPermissions {
7+
String COMMAND = "imager.command";
8+
String QUERY_IMAGE_INFO = "imager.query_image_info";
9+
}

src/main/java/me/daoge/imager/imagemap/ImageMap.java renamed to src/main/java/me/daoge/imager/data/ImageMap.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package me.daoge.imager.imagemap;
1+
package me.daoge.imager.data;
22

33
import com.google.gson.annotations.JsonAdapter;
44
import lombok.Builder;

src/main/java/me/daoge/imager/imagemap/ImageMapAdapter.java renamed to src/main/java/me/daoge/imager/data/ImageMapAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package me.daoge.imager.imagemap;
1+
package me.daoge.imager.data;
22

33
import com.google.gson.TypeAdapter;
44
import com.google.gson.stream.JsonReader;

src/main/java/me/daoge/imager/imagemap/SplitMode.java renamed to src/main/java/me/daoge/imager/data/SplitMode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package me.daoge.imager.imagemap;
1+
package me.daoge.imager.data;
22

33
/**
44
* @author daoge_cmd

src/main/java/me/daoge/imager/manager/ImageMapManager.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package me.daoge.imager.manager;
22

3-
import me.daoge.imager.imagemap.ImageMap;
4-
import me.daoge.imager.imagemapstorage.ImageMapStorage;
5-
import me.daoge.imager.imageprovider.ImageProvider;
3+
import me.daoge.imager.data.ImageMap;
4+
import me.daoge.imager.provider.ImageProvider;
5+
import me.daoge.imager.storage.ImageMapStorage;
66
import org.allaymc.api.block.data.BlockFace;
77
import org.allaymc.api.math.position.Position3ic;
88

src/main/java/me/daoge/imager/manager/SimpleImageMapManager.java

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
import lombok.Getter;
44
import me.daoge.imager.Imager;
5-
import me.daoge.imager.imagemap.ImageMap;
6-
import me.daoge.imager.imagemap.SplitMode;
7-
import me.daoge.imager.imagemapstorage.ImageMapStorage;
8-
import me.daoge.imager.imageprovider.ImageProvider;
5+
import me.daoge.imager.data.ImageMap;
6+
import me.daoge.imager.data.SplitMode;
7+
import me.daoge.imager.provider.ImageProvider;
8+
import me.daoge.imager.storage.ImageMapStorage;
99
import net.coobird.thumbnailator.Thumbnails;
1010
import org.allaymc.api.block.data.BlockFace;
1111
import org.allaymc.api.block.property.type.BlockPropertyTypes;
@@ -344,6 +344,7 @@ public boolean removeImageMap(String name) {
344344
for(int y = minY; y <= maxY; ++y) {
345345
for(int z = minZ; z <= maxZ; ++z) {
346346
if (dimension.getBlockEntity(x, y, z) instanceof BlockEntityItemFrame frame) {
347+
//避免展示框被破坏后掉落地图物品
347348
frame.setItemStack(ItemAirStack.AIR_STACK);
348349
}
349350
dimension.setBlockState(x, y, z, BlockTypes.AIR.getDefaultState());
@@ -482,14 +483,11 @@ protected BufferedImage[][] splitImage(BufferedImage image, int height, int widt
482483
}
483484

484485
protected static boolean containsPoint(Vector3ic pos1, Vector3ic pos2, Vector3ic pos) {
485-
var minX = Math.min(pos1.x(), pos2.x());
486-
var minY = Math.min(pos1.y(), pos2.y());
487-
var minZ = Math.min(pos1.z(), pos2.z());
488-
489-
var maxX = Math.max(pos1.x(), pos2.x());
490-
var maxY = Math.max(pos1.y(), pos2.y());
491-
var maxZ = Math.max(pos1.z(), pos2.z());
492-
493-
return pos.x() >= minX && pos.y() >= minY && pos.z() >= minZ && pos.x() <= maxX && pos.y() <= maxY && pos.z() <= maxZ;
486+
return pos.x() >= Math.min(pos1.x(), pos2.x()) &&
487+
pos.y() >= Math.min(pos1.y(), pos2.y()) &&
488+
pos.z() >= Math.min(pos1.z(), pos2.z()) &&
489+
pos.x() <= Math.max(pos1.x(), pos2.x()) &&
490+
pos.y() <= Math.max(pos1.y(), pos2.y()) &&
491+
pos.z() <= Math.max(pos1.z(), pos2.z());
494492
}
495493
}

src/main/java/me/daoge/imager/imageprovider/CachedImageProvider.java renamed to src/main/java/me/daoge/imager/provider/CachedImageProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package me.daoge.imager.imageprovider;
1+
package me.daoge.imager.provider;
22

33
import org.allaymc.api.message.MessageReceiver;
44

0 commit comments

Comments
 (0)