---
title: CommandOnCommand – Ghi đè lệnh
description: "## Giới thiệu Đã bao giờ bạn muốn \"Việt hoá\" những lệnh như /home thành /venha Hoặc /island /is thành /daotrenkhong hay gì đó tương tự?. Hay nói cách khác, bạn muốn khi player chạy lệnh /A thì server sẽ…"
url: "https://mankaistep.com/docs/tat-tan-tat-ve-commandoncommand/"
updated: "2022-09-11"
category: Minecraft Plugins
---

# CommandOnCommand – Ghi đè lệnh

## Giới thiệu

Đã bao giờ bạn muốn "Việt hoá" những lệnh như /home thành /venha Hoặc /island /is thành /daotrenkhong hay gì đó tương tự?. Hay nói cách khác, bạn muốn khi player chạy lệnh /A thì server sẽ chạy hoặc khiến player chạy lệnh /B?

**CommandOnCommand** là plugin hoàn toàn có thể đáp ứng nhu cầu này, thậm chí hơn cả thế. Với tính năng ghi đè command của player, bạn có thể **tuỳ chỉnh tuỳ ý những command sẽ được thực thi khi player thực hiện một lệnh gì đó**.

![](https://mankaistep.com/wp-content/uploads/2022/09/coc_2.gif)
*Config của cái này ở dưới*

## Lệnh trong game

Yêu cầu permission **coc.admin** để dùng lệnh

```yaml
/coc reload: Reload plugin
# /coc hoặc /commandoncommand đều được
```

## Hướng dẫn Config

### config.yml

```yaml
fake-commands: true # Khiến cho lệnh không tồn tại (ví dụ: /chetao) không bị đỏ

command-on-command:
  0: #Các số phải để theo thứ tự 0, 1, 2, 3, 4,...
    cancel: true #cancel: true là sẽ huỷ lệnh của player, false thì sẽ không huỷ
    permission: 'cocperm.perm' # Permission yêu cầu để được thay thế lệnh
    catches: #Những lệnh mà player sử dụng sẽ được check, có thể điền nhiều
      - 'chetao'
    commands: #Những lệnh sẽ thực hiện khi player dùng lệnh ở catches
      - '[consolecmd] crafts gui menu %player% main_1'

  1: # Không yêu cầu permission nên không cần có field này
    cancel: true
    catches:
      - 'spawn'
    commands:
      - '{30} [title] &a;&f&lỒ bạn định về spawn sao?;0;40;0' # Delay 30 tick mới thực hiện lệnh
      - '{60} [title] &a;&f&lOk nếu bạn muốn;0;40;0'
      - '{90} [title] &a3;&f&lChuẩn bị dịch chuyển;0;40;0'
      - '{95} [title] &a3;&f&lChuẩn bị dịch chuyển.;0;40;0'
      - '{100} [title] &a3;&f&lChuẩn bị dịch chuyển..;0;40;0'
      - '{105} [title] &a3;&f&lChuẩn bị dịch chuyển...;0;40;0'
      - '{110} [title] &a2;&f&lChuẩn bị dịch chuyển....;0;40;0'
      - '{115} [title] &a2;&f&lChuẩn bị dịch chuyển;0;40;0'
      - '{120} [title] &a2;&f&lChuẩn bị dịch chuyển.;0;40;0'
      - '{125} [title] &a2;&f&lChuẩn bị dịch chuyển..;0;40;0'
      - '{130} [title] &a1;&f&lChuẩn bị dịch chuyển...;0;40;0'
      - '{135} [title] &a1;&f&lChuẩn bị dịch chuyển....;0;40;0'
      - '{140} [title] &a1;&f&lChuẩn bị dịch chuyển.;0;40;0'
      - '{145} [title] &a1;&f&lChuẩn bị dịch chuyển..;0;40;0'
      - '{146} [consolecmd] spawn %player%'
      - '{150} [title] &6Woooo;&f&lVề spawn rồi nè!'
      - '{150} [sound] ENTITY_FIREWORK_ROCKET_LAUNCH;1;1'
```

CommandOnCommand có duy nhất 1 file config.yml, bên trên là config mẫu mình đã làm sẵn. Khi config như trên thì sẽ có kết quả như sau:

Với 0, khi một player tên MankaiStep dùng lệnh /chetao (*catches*), plugin sẽ huỷ lệnh (*cancel: **true***) này của player và console sẽ chạy lệnh (*commands*, *[consolecmd]*) /crafts gui menu MankaiStep main_1

Với 1, khi một player tên MankaiStep dùng lệnh /spawn, plugin sẽ KHÔNG huỷ lệnh này - tức là player vẫn về spawn (*cancel: **false***) và:

- Player sẽ nhận được message "Đứng yên nào, bạn sẽ trở về spawn sau 5 giây nữa" (*[message]*)
- Màn hình player sẽ hiển thị title và subtitle "Teleport..." và "Đây là subtitle" (*[title]*)
- Sound của ENTITY_EXPERIENCE_ORB_PICKUP sẽ được phát cho player (*[sound]*)
- Thông báo "Player Mankaistep đang di chuyển về spawn" sẽ được gửi tới tất cả mọi người (*[broadcast]*)

### commands

Trong lúc setup command, bạn có thể dùng **%player%** để thay thế cho tên người chơi. Ví dụ như ở 1

Cấu trúc một command: {delay} [<loại command>] <command>. Ví dụ :

```
{20} [message] Chào bạn %player%, tôi là admin
```

Command này sẽ được 20 tick (~ 1 giây) rồi gửi tin nhắn Chào bạn MankaiStep, tôi là admin

Có 7 loại command cho bạn tuỳ chọn

##### [playercmd]

Khiến người chơi chạy một lệnh, ví dụ:

```
[playercmd] say Tôi là thằng ngu
```

##### [opplayercmd]

Khiến người chơi chạy một lệnh với tư cách op, ví dụ

```
[opplayercmd] kick all
```

##### [consolecmd]

Chạy một lệnh ở console, ví dụ:

```
[consolecmd] bc Chào cả nhà
```

##### [message]

Gửi một message tới người chơi hiện tại, ví dụ

```
[message] Chào %player% nhé, tôi là MankaiStep
```

##### [broadcast]

Gửi message tới tất cả member, ví dụ:

```
[broadcast] Chào cả nhà
```

##### [title]

Hiển thị title và sub title cho người chơi hiện tại.

Cú pháp: [title] <title>;<subtitle>;<tick xuất hiện>;<tick hiển thị>;<tick biến mất>. Trong đó <tick xuất hiện>;<tick hiển thị>;<tick biến mất> là không bắt buộc

Ví dụ

```
[title] Teleport...;Đây là subtitle;10;30;10
hoặc [title] Teleport...;Đây là subtitle
```

##### [sound]

Phát sound cho người chơi, cú pháp: [sound] <id_sound>;1;1. Trong đó 1;1 là không bắt buộc, ví dụ

```
[sound] ENTITY_EXPERIENCE_ORB_PICKUP;1;1
hoặc [sound] ENTITY_EXPERIENCE_ORB_PICKUP
```

Danh sách những sound có thể dùng được bạn lấy ở đây: [**Sounds**](https://helpch.at/docs/1.16.2/org/bukkit/Sound.html)

---

Plugin này làm bạn hứng thú và bạn mua hoặc trao đổi thêm về plugin này? Hãy liên hệ mình qua

Facebook (ưu tiên): [https://www.facebook.com/mankaistep/](https://www.facebook.com/mankaistep/)

Mail: [hhoang.mis.neu@gmail.com](mailto:hhoang.mis.neu@gmail.com)
