• Chào bạn, hãy đăng ký hoặc đăng nhập để tham gia cùng bọn mình và sử dụng được đầy đủ chức năng của diễn đàn :).
anhcraft

Hướng dẫn Sửa một số lỗi của plugin/spigot [Stacktrace]

anhcraft

Thành viên BQT
DEVELOPER
THÀNH VIÊN
Tham gia
18/09/2016
Bài viết
3,165
Mình thấy có rất nhìu bài viết hỏi lỗi này nọ, nói chung là cũng lặp đi lặp lại những cái quen thuộc...vì thế mình lập ra post này để giúp các chủ server (và cả coder) có thể biết lỗi mà fix.

1. Stacktrace là gì
Xem tại đây: minecraftvn.net

2. Sửa lỗi NullPointerException
- Nguyên nhân:
1. Ném null như kiểu nó là một giá trị Throwable.
Ví dụ: throw new Test(); (trong đó Test() trả về null)
2. Gọi một Instance method của một null object.
Ví dụ: new Test().method(); (trong đó Test() trả về null)
3. Truy cập hoặc tùy chỉnh trường giá trị của null object.
Ví dụ: array[0]; (trong đó array trả về mảng null)
4. Lấy độ dài của Null như một mảng.
5.Truy cập hoặc tùy chỉnh giá trị Null như kiểu một mảng.​
- Nhận dạng: ảnh mình lấy trên spigot (tưởng tượng trong console nhé :D)
54WJjFj.png

1. Khung đỏ:
- các lỗi bắt đầu vd như at org.bukkit, net.minecraft.server chính là nơi xảy ra lỗi (kiểu như bukkit đang đọc code bị dính), sắp xếp từ nơi xảy ra lỗi gần nhất đến xa nhất
- org.bukkit là của Bukkit nhé, net.minecraft.server còn gọi là NMS
2. Khung xanh
- lỗi xảy ra: java.lang.NullPointerException
3. Khung tím:
- vị trí code xảy ra lỗi (của plugin) vd như class onSelectGame, dòng 19
4. Khung cam
- event InventoryClickEvent :v xảy ra khi mở rương
5. Khung xanh lá
- tên của plugin kèm phiên bản​
- Cách sửa:
+ Do code của plugin:
a. Nếu bạn là chủ plugin, hãy kiểm tra lại xem có truy cập hay chỉnh sửa cái obj nào bị null không
b. Nếu là owner: liên hệ chủ plugin
+ Do config: kiểm tra lại kĩ config nhé, có thể do thiếu mục (vd plugin đã thêm mục prefix nhưng sv dùng config cũ ko có mục prefix nên bị)

3. Sửa lỗi PluginAlreadyInitialized
- Nguyên nhân:
1. Plugin có nhiều hơn 1 class extends JavaPlugin
2. Trong class extends JavaPlugin bạn còn implements CommandExecutor
3. Bạn cố gắng gọi class extends JavaPlugin
- Nhận dạng: ảnh mình lấy trên forum bukkit (tưởng tượng trong console nhé :D)
8vlMa9R.png

1. Khung xanh lá:
- java.lang.IllegalArgumentException: Plugin already initialized! cho biết plugin bị lỗi này
2. Khung xanh:
- org.bukkit là của bukkit nhé :v
3. Khung vàng:
- lỗi này không có hiện tên plugin nên bạn phải xác định nó của plugin nào dựa vào package​
- Cách sửa:
+ Do code của plugin:
a. Nếu bạn là chủ plugin, hãy kiểm tra & chắc chắn rằng plguin chỉ có duy nhất 1 class extends JavaPlugin, bỏ implements CommandExecutor trong class extends JavaPlugin & đừng gọi class class extends JavaPlugin
b. Nếu là owner: liên hệ chủ plugin

4. Sửa lỗi NumberFormatException
- Nguyên nhân:
Định dạng số không đúng vd khi bạn chuyển string (chuỗi) sang số (numberic)
- VD 123 là 1 số đúng định dạng
- VD xyz là 1 số không đúng định dạng​
- Nhận dạng: ảnh mình lấy trên pastebin.com (tưởng tượng trong console nhé :D)

4uOJPZU.png

1. Khung đỏ: nhận dạng lỗi NumberFormatException
2. Khung xanh: chuỗi mà bạn chuyển sang số
3. khung vàng: Class xảy ra lỗi (bạn có thể xác định tên plugin ở đây vd trong hình là AdvancedTags)​
- Cách sửa:
+ Do code của plugin:
a. Nếu bạn là chủ plugin, hãy kiểm tra chuỗi mà bạn xử lý có phải là số không, có thể lần theo class từ lỗi đó
b. Nếu là owner: liên hệ chủ plugin
+ Do config: kiểm tra lại kĩ config, có thể do bạn lỡ ghi chữ thay vì ghi số trong config, ngoài ra bạn nên nhớ
* giá trị được mở đóng bằng "" hay '' thì số ở trong vẫn coi là chuỗi, bạn phải xóa "" hoặc '' đi
* ví dụ: "3" là chuỗi nhưng 3 là số
 
Topic này được lập ra để giúp dev (lẫn owner lun nhé) có thể nhận dạng & fix một vài lỗi phổ biến của plugin <(")
Bác banbeucmas cũng có lập ra nhưng ko thấy update :v

1. Stacktrace là gì
Xem tại đây: minecraftvn.net

2. Sửa lỗi NullPointerException
- Nguyên nhân:
1. Ném null như kiểu nó là một giá trị Throwable.
2. Gọi một Instance method của một null object.
3. Truy cập hoặc tùy chỉnh trường giá trị của null object.
4. Lấy độ dài của Null như một mảng.
5.Truy cập hoặc tùy chỉnh giá trị Null như kiểu một mảng.​
- Nhận dạng: ảnh mình lấy trên spigot (tưởng tượng trong console nhé :D)
54WJjFj.png

1. Khung đỏ:
- các lỗi bắt đầu vd như at org.bukkit, net.minecraft.server chính là nơi xảy ra lỗi (kiểu như bukkit đang đọc code bị dính), sắp xếp từ nơi xảy ra lỗi gần nhất đến xa nhất
- org.buttkit là của Bukkit nhé, net.minecraft.server còn gọi là NMS
2. Khung xanh
- lỗi xảy ra: java.lang.NullPointerException
3. Khung tím:
- vị trí code xảy ra lỗi (của plugin) vd như class onSelectGame, dòng 19
4. Khung cam
- event InventoryClickEvent :v xảy ra khi mở rương
5. Khung xanh lá
- tên của plugin kèm phiên bản​
- Cách sửa:
+ Do code của plugin:
a. Nếu bạn là chủ plugin, hãy kiểm tra giá trị có khác null hay không
b. Nếu là owner: liên hệ chủ plugin
+ Do config: kiểm tra lại kĩ config nhé, có thể do thiếu mục (vd dev thêm mục prefix nhưng sv dùng config cũ ko có mục prefix nên bị)

3. Sửa lỗi PluginAlreadyInitialized
- Nguyên nhân:
1. Plugin có nhiều hơn 1 class extends JavaPlugin
2. Trong class extends JavaPlugin bạn còn implements thêm CommandExecutor
3. Bạn cố gắng gọi class extends JavaPlugin
- Nhận dạng: ảnh mình lấy trên forum bukkit (tưởng tượng trong console nhé :D)
8vlMa9R.png

1. Khung xanh lá:
- java.lang.IllegalArgumentException: Plugin already initialized! cho biết plugin bị lỗi này
2. Khung xanh:
- org.bukkit là của bukkit nhé :v
3. Khung vàng:
- lỗi này không có hiện tên plugin nên bạn phải xác định nó của plugin nào dựa vào package​
- Cách sửa:
+ Do code của plugin:
a. Nếu bạn là chủ plugin, hãy kiểm tra & chắc chắn rằng plguin chỉ có duy nhất 1 class extends JavaPlugin, bỏ implements CommandExecutor trong class extends JavaPlugin & đừng gọi class class extends JavaPlugin
b. Nếu là owner: liên hệ chủ plugin

4. Sửa lỗi NumberFormatException
- Nguyên nhân:
Định dạng số không đúng vd khi bạn chuyển string (chuỗi) sang số (numberic)
- VD 123 là 1 số đúng định dạng
- VD xyz là 1 số không đúng định dạng​
- Nhận dạng: ảnh mình lấy trên pastebin.com (tưởng tượng trong console nhé :D)

4uOJPZU.png

1. Khung đỏ: nhận dạng lỗi NumberFormatException
2. Khung xanh: chuỗi mà bạn chuyển sang số
3. khung vàng: Class xảy ra lỗi (bạn có thể xác định tên plugin ở đây vd trong hình là AdvancedTags)​
- Cách sửa:
+ Do code của plugin:
a. Nếu bạn là chủ plugin, hãy kiểm tra chuỗi có phải là số không
b. Nếu là owner: liên hệ chủ plugin
+ Do config: kiểm tra lại kĩ config, có thể do bạn lỡ ghi chữ thay vì ghi số trong config, ngoài ra bạn nên nhớ:
* giá trị được mở đóng bằng "" hay '' thì số ở trong đây vẫn coi là chuỗi, ab5n phải xóa "" hoặc '' đi
tks bác mặc dù mình chưa đọc :hd:
 
Tôi ko update vì nó khá đủ để bao quát r
Khỉ, đã dev thì phải học cách suy luận chứ ném sung vào miệng chả lên đc cái mẹ gì đâu
 
Tôi ko update vì nó khá đủ để bao quát r
Khỉ, đã dev thì phải học cách suy luận chứ ném sung vào miệng chả lên đc cái mẹ gì đâu
:v t bít tính m mà cái j cũng phải mò nhưng mà t lập ra cho owner xem ấy :v hỏi riết mấy lỗi quen thuộc thì.....
 
:v t bít tính m mà cái j cũng phải mò nhưng mà t lập ra cho owner xem ấy :v hỏi riết mấy lỗi quen thuộc thì.....
Đó lý do google tồn tại
Interface Exception nó có nhiều class Implements lắm
 
Could not pass event PlayerQuitEvent to FeatherBoard v3.17.2

org.bukkit.event.EventException

at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:36) ~[craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

at net.minecraft.server.v1_10_R1.PlayerList.disconnect(PlayerList.java:369) [craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

at net.minecraft.server.v1_10_R1.PlayerConnection.a(PlayerConnection.java:1034) [craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

at net.minecraft.server.v1_10_R1.NetworkManager.handleDisconnection(NetworkManager.java:306) [craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

at net.minecraft.server.v1_10_R1.ServerConnection.c(SourceFile:215) [craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:758) [craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:361) [craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:643) [craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:547) [craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

at java.lang.Thread.run(Thread.java:813) [?:1.8.0_192]

Caused by: java.lang.IllegalStateException: Cannot set scoreboard for invalid CraftPlayer

at org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer.setScoreboard(CraftPlayer.java:1256) ~[craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

at be.maximvdw.featherboardcore.k.b.b(SidebarWrapper.java:183) ~[?:?]

at be.maximvdw.featherboard.c.a.onLeave(PlayerListener.java:128) ~[?:?]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_192]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_192]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_192]

at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_192]

at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:300) ~[craftbukkit-1.10.2.jar:git-Bukkit-5e5cf84]

... 13 more



Bác nào đẹp Try cứu em cái, nó hiện nát cải bảng console rồi :(
 
sao tui ko vào dc spigot vậy
ai chỉ tui cách sửa lõi ko vào dc spigot với
 
Mình thấy có rất nhìu bài viết hỏi lỗi này nọ, nói chung là cũng lặp đi lặp lại những cái quen thuộc...vì thế mình lập ra post này để giúp các chủ server (và cả coder) có thể biết lỗi mà fix.

1. Stacktrace là gì
Xem tại đây: minecraftvn.net

2. Sửa lỗi NullPointerException
- Nguyên nhân:
1. Ném null như kiểu nó là một giá trị Throwable.​
Ví dụ: throw new Test(); (trong đó Test() trả về null)
2. Gọi một Instance method của một null object.​
Ví dụ: new Test().method(); (trong đó Test() trả về null)
3. Truy cập hoặc tùy chỉnh trường giá trị của null object.​
Ví dụ: array[0]; (trong đó array trả về mảng null)
4. Lấy độ dài của Null như một mảng.​
5.Truy cập hoặc tùy chỉnh giá trị Null như kiểu một mảng.​
- Nhận dạng: ảnh mình lấy trên spigot (tưởng tượng trong console nhé :D)
54WJjFj.png

1. Khung đỏ:​
- các lỗi bắt đầu vd như at org.bukkit, net.minecraft.server chính là nơi xảy ra lỗi (kiểu như bukkit đang đọc code bị dính), sắp xếp từ nơi xảy ra lỗi gần nhất đến xa nhất​
- org.bukkit là của Bukkit nhé, net.minecraft.server còn gọi là NMS​
2. Khung xanh​
- lỗi xảy ra: java.lang.NullPointerException
3. Khung tím:​
- vị trí code xảy ra lỗi (của plugin) vd như class onSelectGame, dòng 19​
4. Khung cam​
- event InventoryClickEvent :v xảy ra khi mở rương​
5. Khung xanh lá​
- tên của plugin kèm phiên bản​
- Cách sửa:
+ Do code của plugin:
a. Nếu bạn là chủ plugin, hãy kiểm tra lại xem có truy cập hay chỉnh sửa cái obj nào bị null không
b. Nếu là owner: liên hệ chủ plugin
+ Do config: kiểm tra lại kĩ config nhé, có thể do thiếu mục (vd plugin đã thêm mục prefix nhưng sv dùng config cũ ko có mục prefix nên bị)

3. Sửa lỗi PluginAlreadyInitialized
- Nguyên nhân:
1. Plugin có nhiều hơn 1 class extends JavaPlugin
2. Trong class extends JavaPlugin bạn còn implements CommandExecutor
3. Bạn cố gắng gọi class extends JavaPlugin
- Nhận dạng: ảnh mình lấy trên forum bukkit (tưởng tượng trong console nhé :D)
8vlMa9R.png

1. Khung xanh lá:​
- java.lang.IllegalArgumentException: Plugin already initialized! cho biết plugin bị lỗi này​
2. Khung xanh:​
- org.bukkit là của bukkit nhé :v
3. Khung vàng:​
- lỗi này không có hiện tên plugin nên bạn phải xác định nó của plugin nào dựa vào package​
- Cách sửa:
+ Do code của plugin:
a. Nếu bạn là chủ plugin, hãy kiểm tra & chắc chắn rằng plguin chỉ có duy nhất 1 class extends JavaPlugin, bỏ implements CommandExecutor trong class extends JavaPlugin & đừng gọi class class extends JavaPlugin
b. Nếu là owner: liên hệ chủ plugin

4. Sửa lỗi NumberFormatException
- Nguyên nhân:
Định dạng số không đúng vd khi bạn chuyển string (chuỗi) sang số (numberic)​
- VD 123 là 1 số đúng định dạng​
- VD xyz là 1 số không đúng định dạng​
- Nhận dạng: ảnh mình lấy trên pastebin.com (tưởng tượng trong console nhé :D)

4uOJPZU.png

1. Khung đỏ: nhận dạng lỗi NumberFormatException
2. Khung xanh: chuỗi mà bạn chuyển sang số​
3. khung vàng: Class xảy ra lỗi (bạn có thể xác định tên plugin ở đây vd trong hình là AdvancedTags)​
- Cách sửa:
+ Do code của plugin:
a. Nếu bạn là chủ plugin, hãy kiểm tra chuỗi mà bạn xử lý có phải là số không, có thể lần theo class từ lỗi đó
b. Nếu là owner: liên hệ chủ plugin
+ Do config: kiểm tra lại kĩ config, có thể do bạn lỡ ghi chữ thay vì ghi số trong config, ngoài ra bạn nên nhớ
* giá trị được mở đóng bằng "" hay '' thì số ở trong vẫn coi là chuỗi, bạn phải xóa "" hoặc '' đi
* ví dụ: "3" là chuỗi nhưng 3 là số
cam on nha :d
 
Similar content Most view Xem thêm
Back
Top Bottom