Hepinize merhabalar, bugün Hippo eklentisi hakkında konuşacağım. Bu eklentiyi yapan kişi aynı zamanda SkPapi ve Fancy Workbenchi yaptı, büyük ihtimalle oradan tanırsınız.
Hippo eklentisi sayesinde skriptin içinde java classları compile edebiliyoruz.
Gereksinimler
Skript 2.6+
skript-reflect 2.2.3+
Yüksek java bilgisi
Hippo eklentisini indirip plugins dosyamıza koyarak başlayabiliriz.
Preimport
Hippo eklentisi hakkında öğrenmeniz gereken ilk şey preimport sistemidir. Hippo ile daha oluşturulmamış classları importlayacağımız için preimport kullanmamız gerekir.
örnek:
Class Oluşturmak
Javadaki gibi public, private, protected, final, static, abstract, transient, synchronized, volatile, native, strictfp ve default modifierları kullanabilirsiniz. Default modifierı Hippo tarafından eklendi ve package-protected yetki için kullanılabilir.
Class Türleri
class, interface, record, enum ve annotation
örnek:
Static Blok
Static bloğun içindeki kod class başlatıldığında çalışan kodtur. Javadakiyle aynı şekilde çalışır.
örnek:
Türler
Hippoda boolean, char, byte, short, int, float, long, double ve void kullanabilirsiniz. Hepsi javadakiyle aynı şekilde çalışır.
Tek karakterler için Hippo "character" adında yeni bir tür ekler, örneğin 'A' yazarak kullanabilirsiniz.
Array oluşturmak için herhangi bir türün sonuna [] ekleyebilirsiniz. Multi-dimensional array için [][] ekleyebilirsiniz. (int[], Integer[], Integer[][] gibi)
örnek:
Methodlar
Aynı javadaki gibi methodların modifierları, ismi ve türünü belirtmeniz gerekir. İsterseniz methodlar için argümanlar ekleyebilirsiniz. Bir argümanı kod içinde kullanmak için aynı komutlardaki gibi arg-1 expressionunu kullanabilirsiniz.
Eğer bir methodta şuanki objeyi referans etmek istiyorsanız "this" expressionunu kullanabilirsiniz. Static methodlarda kullanılamaz.
Eğer bir methodun birşey geri döndürmesini istiyorsanız "return" kullanabilirsiniz.
örnek:
Constructor
Temel bilgilerde son olarak constructorler var. Her bir constructorün modifierı olması gerekli ve isteğe bağlı parametreleri olabilir.
örnek:
Hippo eklentisi sayesinde skriptin içinde java classları compile edebiliyoruz.
Gereksinimler
Skript 2.6+
skript-reflect 2.2.3+
Yüksek java bilgisi
Hippo eklentisini indirip plugins dosyamıza koyarak başlayabiliriz.
Preimport
Hippo eklentisi hakkında öğrenmeniz gereken ilk şey preimport sistemidir. Hippo ile daha oluşturulmamış classları importlayacağımız için preimport kullanmamız gerekir.
örnek:
Kod:
preimport:
org.blub.Blub
org.blub.Bleb as MyBleb
Class Oluşturmak
Javadaki gibi public, private, protected, final, static, abstract, transient, synchronized, volatile, native, strictfp ve default modifierları kullanabilirsiniz. Default modifierı Hippo tarafından eklendi ve package-protected yetki için kullanılabilir.
Class Türleri
class, interface, record, enum ve annotation
örnek:
Kod:
preimport:
org.blub.Blub
org.blub.Bleb
public skript class org.blub.Blub:
public skript class org.blub.Bleb:
Static Blok
Static bloğun içindeki kod class başlatıldığında çalışan kodtur. Javadakiyle aynı şekilde çalışır.
örnek:
Kod:
preimport:
org.blub.Blub
public skript class org.blub.Blub:
static:
broadcast "%Blub.class% exists!!"
on load:
set {_blub} to new Blub()
Türler
Hippoda boolean, char, byte, short, int, float, long, double ve void kullanabilirsiniz. Hepsi javadakiyle aynı şekilde çalışır.
Tek karakterler için Hippo "character" adında yeni bir tür ekler, örneğin 'A' yazarak kullanabilirsiniz.
Array oluşturmak için herhangi bir türün sonuna [] ekleyebilirsiniz. Multi-dimensional array için [][] ekleyebilirsiniz. (int[], Integer[], Integer[][] gibi)
örnek:
Kod:
import:
java.lang.Integer
java.lang.String
preimport:
org.blub.Blub
public skript class org.blub.Blub:
public String name = "Blub"
protected char blubSymbol = 'B'
public and static Integer[] IDs
on load:
set {_name} to new Blub().name
broadcast "%{_name}%"
Methodlar
Aynı javadaki gibi methodların modifierları, ismi ve türünü belirtmeniz gerekir. İsterseniz methodlar için argümanlar ekleyebilirsiniz. Bir argümanı kod içinde kullanmak için aynı komutlardaki gibi arg-1 expressionunu kullanabilirsiniz.
Eğer bir methodta şuanki objeyi referans etmek istiyorsanız "this" expressionunu kullanabilirsiniz. Static methodlarda kullanılamaz.
Eğer bir methodun birşey geri döndürmesini istiyorsanız "return" kullanabilirsiniz.
örnek:
Kod:
import:
java.lang.Integer
java.lang.String
preimport:
org.blub.Blub
public skript class org.blub.Blub:
private String name = "Blub"
private and static Integer size = 10
public String getName():
return this.name
public and static void setSize(Integer size):
set Blub.size to arg-1
on load:
set {_blub} to new Blub()
broadcast join "Name: " and {_blub}.getName()
Blub.setSize(20)
Constructor
Temel bilgilerde son olarak constructorler var. Her bir constructorün modifierı olması gerekli ve isteğe bağlı parametreleri olabilir.
örnek:
Kod:
import:
java.lang.String
preimport:
org.blub.Blub
public skript class org.blub.Blub:
private String name
public Blub(String name) super():
postinit:
set this.name to arg-1 ? "Blub"
public String getName():
return this.name
on load:
set {_blub} to new Blub("Blob")
broadcast join "Name: " and {_blub}.getName()