Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apply plugin: 'application'
apply plugin: 'maven-publish'

group 'org.innercore.zotecoreloader'
version 'beta-1.1.1'
version 'beta-1.2.0'

application {
mainClass = 'com.reider745.Main'
Expand Down
18 changes: 18 additions & 0 deletions codegen/src/main/java/org/innercore/codegen/BindingOverload.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,22 @@ public final class BindingOverload {
public boolean needJavaWrap = false;
public String callSrc = "";
public List<String> attrs = new ArrayList<String>();

@Override
public String toString() {
return "BindingOverload{" +
"name='" + name + '\'' +
", moduleName='" + moduleName + '\'' +
", mangledName='" + mangledName + '\'' +
", bindType='" + bindType + '\'' +
", moduleClsName='" + moduleClsName + '\'' +
", fnType='" + fnType + '\'' +
", ret=" + ret +
", args=" + args +
", argsCnt=" + argsCnt +
", needJavaWrap=" + needJavaWrap +
", callSrc='" + callSrc + '\'' +
", attrs=" + attrs +
'}';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -565,7 +565,8 @@ private void generateDefaultedOverloadMethod(BindingOverload overload) {
callArgs.add(overload.args.get(i).def);
}
}
generateWrapMethod(overload, overload.name, overload.name, callArgs);

generateWrapMethod(overload, overload.name, overload.callSrc, callArgs);
}

private void generateConstructor(String genClassName, BindingOverload overload) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,7 @@
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;

Expand Down Expand Up @@ -100,6 +97,15 @@ private Map<String, String> getJavaAnnotation(NodeWithAnnotations<?> node, Strin
return result;
}

private String getAnnotation(NodeWithAnnotations<?> node, String annName) {
for (AnnotationExpr ann : node.getAnnotations()) {
if (ann instanceof SingleMemberAnnotationExpr && simpleAnnotationName(ann).equals(annName) && ((SingleMemberAnnotationExpr) ann).getMemberValue() instanceof StringLiteralExpr) {
return ((StringLiteralExpr) ((SingleMemberAnnotationExpr) ann).getMemberValue()).asString();
}
}
return "";
}

private boolean hasAnnotation(NodeWithAnnotations<?> node, String annName) {
for (AnnotationExpr ann : node.getAnnotations()) {
if (simpleAnnotationName(ann).equals(annName)) {
Expand Down Expand Up @@ -218,6 +224,7 @@ private VarDecl resolveParameter(Parameter param, ClassOrInterfaceDeclaration cl
VarDecl d = new VarDecl(typ);
d.name = param.getNameAsString();
d.nullable = hasAnnotation(param, "Nullable");
d.def = getAnnotation(param, "ArgOverload");
return d;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,15 @@ public class PointerGenSlowest implements IBasePointerGen {
public final long next() {
while (true){
final long ptr = random.nextLong();
synchronized (usePointers) {
if (!usePointers.contains(ptr)) {
usePointers.add(ptr);
return ptr;
}
if (ptr != 0 && !usePointers.contains(ptr)) {
usePointers.add(ptr);
return ptr;
}
}
}

@Override
public final void remove(long ptr) {
synchronized (usePointers) {
usePointers.remove(ptr);
}
usePointers.remove(ptr);
}
}
1 change: 1 addition & 0 deletions src/main/java/com/reider745/block/BlockMethods.java
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ private static <T>T validateThen(int id, IApply<T> function, T fallback) {
}

public static int getMaterial(int id) {
InnerCoreServer.useNotCurrentSupport("BlockMethods.getMaterial");
return 0;
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/reider745/block/CustomBlock.java
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ public static CustomManager registerBlock(String textId, int id, String name, Cl
customBlocks.put(textId, id);

CustomManager.put(id, manager);
NativeItem.newNativeItem(id, manager, textId, name);
NativeItem.constructBlock(id, manager, textId, name);
return manager;
}

Expand Down
43 changes: 0 additions & 43 deletions src/main/java/com/reider745/commands/CallbackProfilingCommand.java

This file was deleted.

1 change: 0 additions & 1 deletion src/main/java/com/reider745/commands/CommandsHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ public static void init() {
map.register(tag, new StateCommand());
map.register(tag, new InnerCoreNetworkCommand());
map.register(tag, new GenChunksCommands());
map.register(tag, new CallbackProfilingCommand());
map.register(tag, new GetAllPlayersIdCommand());
map.register(tag, new DimensionsList());
map.register(tag, new TpsCommand());
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/reider745/commands/GenChunksCommands.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import cn.nukkit.command.data.CommandParamType;
import cn.nukkit.command.data.CommandParameter;
import cn.nukkit.level.Level;
import com.reider745.world.BlockSourceMethods;
import com.reider745.world.FakeDimensions;

public class GenChunksCommands extends Command {
public GenChunksCommands() {
Expand Down Expand Up @@ -40,7 +40,7 @@ public boolean execute(CommandSender commandSender, String commandLabel, String[

Level level;
try {
level = BlockSourceMethods.getLevelForDimension(dimension);
level = FakeDimensions.getLevelForFakeId(dimension);
} catch (UnsupportedOperationException e) {
return false;
}
Expand Down
35 changes: 19 additions & 16 deletions src/main/java/com/reider745/entity/EntityMethod.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,11 @@
import com.reider745.event.EventListener;
import com.reider745.hooks.entity.EntityOverrides;
import com.reider745.hooks.item.ItemUtils;
import com.reider745.world.BlockSourceMethods;
import com.reider745.world.FakeDimensions;
import com.zhekasmirnov.apparatus.minecraft.enums.GameEnums;
import com.zhekasmirnov.horizon.runtime.logger.Logger;
import com.zhekasmirnov.innercore.api.NativeItemInstanceExtra;
import com.zhekasmirnov.innercore.api.constants.EntityType;
import org.innercore.icstd.inventory.ItemInstanceExtra;
import org.innercore.icstd.region.BlockSource;
import org.jetbrains.annotations.Nullable;

import java.util.*;
Expand Down Expand Up @@ -208,8 +207,12 @@ public static void setPositionAxis(long entityUid, int axis, float val) {
}

public static void playSoundEnt(long entityUid, String name, float volume, float pitch) {
validateThen(entityUid, entity -> BlockSourceMethods.playSound(entity.getLevel(), name, (int) entity.x,
(int) entity.y, (int) entity.z, volume, pitch, null));
validateThen(entityUid, entity -> {
BlockSource blockSource = BlockSource.getDefaultForDimension(FakeDimensions.getFakeIdForLevel(entity.level));
if(blockSource != null) {
blockSource.playSound((float) entity.x, (float) entity.y, (float) entity.z, name, volume, pitch);
}
});
}

public static int getHealth(long entityUid) {
Expand Down Expand Up @@ -243,23 +246,23 @@ public static Item getEntityArmor(long entityUid, int slot) {

public static void setEntityCarriedItem(long entityUid, int id, int count, int data,
Item extra) {
setEntityCarriedItem(entityUid, id, count, data, NativeItemInstanceExtra.getExtraOrNull(extra));
setEntityCarriedItem(entityUid, id, count, data, ItemInstanceExtra.getExtraOrNull(extra));
}

public static void setEntityCarriedItem(long entityUid, int id, int count, int data,
NativeItemInstanceExtra extra) {
ItemInstanceExtra extra) {
// TODO: Human actually player, there is no way to check/replace
// TODO: regular entity, properties hardcoded at spawn.
validateInventoryThen(entityUid, (enity, inv) -> inv.setItemInHand(ItemUtils.get(id, count, data, extra)), null);
}

public static void setEntityOffhandItem(long entityUid, int id, int count, int data,
Item extra) {
setEntityOffhandItem(entityUid, id, count, data, NativeItemInstanceExtra.getExtraOrNull(extra));
setEntityOffhandItem(entityUid, id, count, data, ItemInstanceExtra.getExtraOrNull(extra));
}

public static void setEntityOffhandItem(long entityUid, int id, int count, int data,
NativeItemInstanceExtra extra) {
ItemInstanceExtra extra) {
// TODO: Human actually player, there is no way to check/replace
// TODO: regular entity, properties hardcoded at spawn.

Expand All @@ -268,11 +271,11 @@ public static void setEntityOffhandItem(long entityUid, int id, int count, int d

public static void setEntityArmor(long entityUid, int slot, int id, int count, int data,
Item extra) {
setEntityArmor(entityUid, slot, id, count, data, NativeItemInstanceExtra.getExtraOrNull(extra));
setEntityArmor(entityUid, slot, id, count, data, ItemInstanceExtra.getExtraOrNull(extra));
}

public static void setEntityArmor(long entityUid, int slot, int id, int count, int data,
NativeItemInstanceExtra extra) {
ItemInstanceExtra extra) {
// TODO: Human actually player, there is no way to check/replace
// TODO: regular entity, properties hardcoded at spawn.
validateInventoryThen(entityUid, (enity, inv) -> inv.setArmorItem(slot, ItemUtils.get(id, count, data, extra)), null);
Expand Down Expand Up @@ -338,10 +341,10 @@ public static Item getItemFromProjectile(long entityUid) {
}

public static void setItemToDrop(long entityUid, int id, int count, int data, Item extra) {
setItemToDrop(entityUid, id, count, data, NativeItemInstanceExtra.getExtraOrNull(extra));
setItemToDrop(entityUid, id, count, data, ItemInstanceExtra.getExtraOrNull(extra));
}

public static void setItemToDrop(long entityUid, int id, int count, int data, NativeItemInstanceExtra extra) {
public static void setItemToDrop(long entityUid, int id, int count, int data, ItemInstanceExtra extra) {
// TODO: It will actually doesn't update item, hardcode again.
validateThen(entityUid, entity -> {
if (entity instanceof EntityItem drop) {
Expand Down Expand Up @@ -558,11 +561,11 @@ public static void dealDamage(long entityUid, int damage, int cause, long attack

public static void invokeUseItemOn(int id, int count, int data, Item extra, int x, int y, int z,
int side, float vx, float vy, float vz, long entityUid) {
invokeUseItemOn(id, count, data, NativeItemInstanceExtra.getExtraOrNull(extra), x, y, z, side, vx, vy, vz,
invokeUseItemOn(id, count, data, ItemInstanceExtra.getExtraOrNull(extra), x, y, z, side, vx, vy, vz,
entityUid);
}

public static void invokeUseItemOn(int id, int count, int data, NativeItemInstanceExtra extra, int x, int y, int z,
public static void invokeUseItemOn(int id, int count, int data, ItemInstanceExtra extra, int x, int y, int z,
int side, float vx, float vy, float vz, long entityUid) {
validateThen(entityUid, entity -> {
synchronized (EventListener.DEALING_LOCK) {
Expand All @@ -576,7 +579,7 @@ public static void invokeUseItemOn(int id, int count, int data, NativeItemInstan

public static void transferToDimension(long entityUid, int dimension) {
validateThen(entityUid, entity -> entity
.setPosition(entity.getPosition().setLevel(BlockSourceMethods.getLevelForDimension(dimension))));
.setPosition(entity.getPosition().setLevel(FakeDimensions.getLevelForFakeId(dimension))));
}

public static int getExperienceOrbValue(long entityUid) {
Expand Down
18 changes: 9 additions & 9 deletions src/main/java/com/reider745/entity/PlayerActorMethods.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
import com.reider745.event.EventListener;
import com.reider745.hooks.item.ItemUtils;
import com.reider745.world.FakeDimensions;
import com.zhekasmirnov.innercore.api.NativeItemInstanceExtra;
import org.innercore.icstd.inventory.ItemInstanceExtra;

public class PlayerActorMethods {
public static boolean isValid(Player player, boolean checkOnline) {
Expand All @@ -32,10 +32,10 @@ public static boolean isValid(Player player, boolean checkOnline) {
}

public static void invokeUseItemNoTarget(Player player, int id, int count, int data, Item extra) {
invokeUseItemNoTarget(player, id, count, data, NativeItemInstanceExtra.getExtraOrNull(extra));
invokeUseItemNoTarget(player, id, count, data, ItemInstanceExtra.getExtraOrNull(extra));
}

public static void invokeUseItemNoTarget(Player player, int id, int count, int data, NativeItemInstanceExtra extra) {
public static void invokeUseItemNoTarget(Player player, int id, int count, int data, ItemInstanceExtra extra) {
if (!isValid(player, false)) {
return;
}
Expand Down Expand Up @@ -88,10 +88,10 @@ public static void invokeUseItemNoTarget(Player player, int id, int count, int d
}

public static void addItemToInventory(Player player, int id, int count, int data, Item extra, boolean dropLeft) {
addItemToInventory(player, id, count, data, NativeItemInstanceExtra.getExtraOrNull(extra), dropLeft);
addItemToInventory(player, id, count, data, ItemInstanceExtra.getExtraOrNull(extra), dropLeft);
}

public static void addItemToInventory(Player player, int id, int count, int data, NativeItemInstanceExtra extra, boolean dropLeft) {
public static void addItemToInventory(Player player, int id, int count, int data, ItemInstanceExtra extra, boolean dropLeft) {
if (!isValid(player, false)) {
return;
}
Expand Down Expand Up @@ -210,21 +210,21 @@ public static int getSelectedSlot(Player player) {
}

public static void setInventorySlot(Player player, int slot, int id, int count, int data, Item extra) {
setInventorySlot(player, slot, id, count, data, NativeItemInstanceExtra.getExtraOrNull(extra));
setInventorySlot(player, slot, id, count, data, ItemInstanceExtra.getExtraOrNull(extra));
}

public static void setInventorySlot(Player player, int slot, int id, int count, int data, NativeItemInstanceExtra extra) {
public static void setInventorySlot(Player player, int slot, int id, int count, int data, ItemInstanceExtra extra) {
if (!isValid(player, false)) {
return;
}
player.getInventory().setItem(slot, ItemUtils.get(id, count, data, extra));
}

public static void setArmor(Player player, int slot, int id, int count, int data, Item extra) {
setArmor(player, slot, id, count, data, NativeItemInstanceExtra.getExtraOrNull(extra));
setArmor(player, slot, id, count, data, ItemInstanceExtra.getExtraOrNull(extra));
}

public static void setArmor(Player player, int slot, int id, int count, int data, NativeItemInstanceExtra extra) {
public static void setArmor(Player player, int slot, int id, int count, int data, ItemInstanceExtra extra) {
if (!isValid(player, false)) {
return;
}
Expand Down
Loading
Loading