Stores without a location crash /shop create and /shop update location

Đang mở Phù hợp với người mới
#67 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
77/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
java
Lĩnh vực
backend

Hướng nghiên cứu

Bắt đầu bằng cách đọc CreateCommand và các biểu mẫu được dùng cho /shop update location, đặc biệt là các lời gọi getCuboidLocation().getWorld(). Chạy các bài kiểm thử hiện có tái hiện cả hai sự cố, sau đó bổ sung kiểm thử cho các cửa hàng chưa có vị trí. Công việc được xem là hoàn tất khi các cửa hàng đó được bỏ qua trong quá trình kiểm tra chồng lấn và update location sử dụng thế giới của người chơi hoặc hiển thị thông báo rõ ràng.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug

Problem

Stores without a location crash two commands. /shop create <name> makes a store with no location, which is the normal way to create a default store.

/shop create with coordinates: CreateCommand checks every store for overlap with currentCuboid.intersects(cuboid), and currentCuboid is null for a store with no location. Once one such store exists on the server, nobody can create a store with coordinates. The player sees "An internal error occurred" and the console logs a NullPointerException.

/shop update location: the forms that reuse the store's current world call store.getCuboidLocation().getWorld(), which throws a NullPointerException when the store has no location.

Both reproduced in tests.

Done when

  • Stores without a location are skipped by the overlap check.
  • /shop update location on a store with no location either uses the player's world or sends a clear message.
  • Tests cover both cases.
Ngôn ngữ chính
Java
Star
1
Fork
0
Merge trung bình
2 giờ 17 phút
Pull request đã merge (30 ngày)
13

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của BrendonButler/Shops

Tất cả issue của BrendonButler/Shops

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.